summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimich@chromium.org <dimich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-16 20:52:02 +0000
committerdimich@chromium.org <dimich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-16 20:52:02 +0000
commitc59aa47960369c63ac773d5cf4b2d1052d4a69c3 (patch)
tree01f73ebabf298fce6d121f366e76903cd704625c
parentc5f785c5b4ccf4869e2ee56d04549934622c3ad4 (diff)
downloadchromium_src-c59aa47960369c63ac773d5cf4b2d1052d4a69c3.zip
chromium_src-c59aa47960369c63ac773d5cf4b2d1052d4a69c3.tar.gz
chromium_src-c59aa47960369c63ac773d5cf4b2d1052d4a69c3.tar.bz2
Inherit Cocoa panel from NativePanel.
Delegate a few implemented BrowserWindow methods via NativePanel. In preparation to removing BrowserWindow inheritance on a native Panel implementation. Review URL: http://codereview.chromium.org/7192013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89394 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/panels/panel_browser_window_cocoa.h20
-rw-r--r--chrome/browser/ui/panels/panel_browser_window_cocoa.mm81
2 files changed, 88 insertions, 13 deletions
diff --git a/chrome/browser/ui/panels/panel_browser_window_cocoa.h b/chrome/browser/ui/panels/panel_browser_window_cocoa.h
index d08d621..f9a7e35 100644
--- a/chrome/browser/ui/panels/panel_browser_window_cocoa.h
+++ b/chrome/browser/ui/panels/panel_browser_window_cocoa.h
@@ -9,6 +9,7 @@
#include "base/gtest_prod_util.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/panels/native_panel.h"
class Browser;
class Panel;
@@ -18,12 +19,29 @@ class Panel;
// Bridges between C++ and the Cocoa NSWindow. Cross-platform code will
// interact with this object when it needs to manipulate the window.
-class PanelBrowserWindowCocoa : public BrowserWindow {
+class PanelBrowserWindowCocoa : public BrowserWindow, public NativePanel {
public:
PanelBrowserWindowCocoa(Browser* browser, Panel* panel);
virtual ~PanelBrowserWindowCocoa();
+ // Overridden from NativePanel
+ virtual void ShowPanel() OVERRIDE;
+ virtual void SetPanelBounds(const gfx::Rect& bounds) OVERRIDE;
+ virtual void MinimizePanel() OVERRIDE;
+ virtual void RestorePanel() OVERRIDE;
+ virtual void ClosePanel() OVERRIDE;
+ virtual void ActivatePanel() OVERRIDE;
+ virtual void DeactivatePanel() OVERRIDE;
+ virtual bool IsPanelActive() const OVERRIDE;
+ virtual gfx::NativeWindow GetNativePanelHandle() OVERRIDE;
+ virtual void UpdatePanelTitleBar() OVERRIDE;
+ virtual void ShowTaskManagerForPanel() OVERRIDE;
+ virtual void NotifyPanelOnUserChangedTheme() OVERRIDE;
+ virtual void FlashPanelFrame() OVERRIDE;
+ virtual void DestroyPanelBrowser() OVERRIDE;
+
// Overridden from BrowserWindow
+ // TODO(dimich): remove inheritance from BrowserWindow.
virtual void Show() OVERRIDE;
virtual void ShowInactive() OVERRIDE;
virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE;
diff --git a/chrome/browser/ui/panels/panel_browser_window_cocoa.mm b/chrome/browser/ui/panels/panel_browser_window_cocoa.mm
index 2e7ad33..7055218 100644
--- a/chrome/browser/ui/panels/panel_browser_window_cocoa.mm
+++ b/chrome/browser/ui/panels/panel_browser_window_cocoa.mm
@@ -32,7 +32,7 @@ bool PanelBrowserWindowCocoa::isClosed() {
return !controller_;
}
-void PanelBrowserWindowCocoa::Show() {
+void PanelBrowserWindowCocoa::ShowPanel() {
if (isClosed())
return;
@@ -45,17 +45,20 @@ void PanelBrowserWindowCocoa::Show() {
[nswindow() setFrame:finalFrame display:YES animate:YES];
}
-void PanelBrowserWindowCocoa::ShowInactive() {
+void PanelBrowserWindowCocoa::SetPanelBounds(const gfx::Rect& bounds) {
+ NSRect frame = ConvertCoordinatesToCocoa(bounds);
+ [nswindow() setFrame:frame display:YES animate:YES];
+}
+
+void PanelBrowserWindowCocoa::MinimizePanel() {
NOTIMPLEMENTED();
}
-void PanelBrowserWindowCocoa::SetBounds(const gfx::Rect& bounds) {
- NSRect frame = ConvertCoordinatesToCocoa(bounds);
- [nswindow() setFrame:frame display:YES animate:YES];
+void PanelBrowserWindowCocoa::RestorePanel() {
+ NOTIMPLEMENTED();
}
-// Callers assume that this doesn't immediately delete the Browser object.
-void PanelBrowserWindowCocoa::Close() {
+void PanelBrowserWindowCocoa::ClosePanel() {
if (isClosed())
return;
@@ -63,7 +66,63 @@ void PanelBrowserWindowCocoa::Close() {
frame.size.height = 0;
[nswindow() setFrame:frame display:YES animate:YES];
browser_->OnWindowClosing();
- DestroyBrowser(); // not immediately, though.
+ DestroyBrowser(); // not immediately, though.
+}
+
+void PanelBrowserWindowCocoa::ActivatePanel() {
+ NOTIMPLEMENTED();
+}
+
+void PanelBrowserWindowCocoa::DeactivatePanel() {
+ NOTIMPLEMENTED();
+}
+
+bool PanelBrowserWindowCocoa::IsPanelActive() const {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+gfx::NativeWindow PanelBrowserWindowCocoa::GetNativePanelHandle() {
+ return nswindow();
+}
+
+void PanelBrowserWindowCocoa::UpdatePanelTitleBar() {
+ NOTIMPLEMENTED();
+}
+
+void PanelBrowserWindowCocoa::ShowTaskManagerForPanel() {
+ NOTIMPLEMENTED();
+}
+
+void PanelBrowserWindowCocoa::NotifyPanelOnUserChangedTheme() {
+ NOTIMPLEMENTED();
+}
+
+void PanelBrowserWindowCocoa::FlashPanelFrame() {
+ NOTIMPLEMENTED();
+}
+
+void PanelBrowserWindowCocoa::DestroyPanelBrowser() {
+ [controller_ close];
+ [controller_ autorelease];
+ controller_ = NULL;
+}
+
+void PanelBrowserWindowCocoa::Show() {
+ ShowPanel(); // Delegate to NativePanel.
+}
+
+void PanelBrowserWindowCocoa::ShowInactive() {
+ NOTIMPLEMENTED();
+}
+
+void PanelBrowserWindowCocoa::SetBounds(const gfx::Rect& bounds) {
+ SetPanelBounds(bounds); // Delegate to NativePanel.
+}
+
+// Callers assume that this doesn't immediately delete the Browser object.
+void PanelBrowserWindowCocoa::Close() {
+ ClosePanel(); // Delegate to NativePanel.
}
void PanelBrowserWindowCocoa::Activate() {
@@ -84,7 +143,7 @@ void PanelBrowserWindowCocoa::FlashFrame() {
}
gfx::NativeWindow PanelBrowserWindowCocoa::GetNativeHandle() {
- return nswindow();
+ return GetNativePanelHandle(); // Delegate to NativePanel.
}
BrowserWindowTesting* PanelBrowserWindowCocoa::GetBrowserWindowTesting() {
@@ -368,9 +427,7 @@ WindowOpenDisposition PanelBrowserWindowCocoa::GetDispositionForPopupBounds(
}
void PanelBrowserWindowCocoa::DestroyBrowser() {
- [controller_ close];
- [controller_ autorelease];
- controller_ = NULL;
+ DestroyPanelBrowser(); // Delegate to NativePanel.
}
NSWindow* PanelBrowserWindowCocoa::nswindow() const {