diff options
author | dimich@chromium.org <dimich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-16 20:52:02 +0000 |
---|---|---|
committer | dimich@chromium.org <dimich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-16 20:52:02 +0000 |
commit | c59aa47960369c63ac773d5cf4b2d1052d4a69c3 (patch) | |
tree | 01f73ebabf298fce6d121f366e76903cd704625c | |
parent | c5f785c5b4ccf4869e2ee56d04549934622c3ad4 (diff) | |
download | chromium_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.h | 20 | ||||
-rw-r--r-- | chrome/browser/ui/panels/panel_browser_window_cocoa.mm | 81 |
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 { |