Index: chrome/browser/ui/panels/panel_browser_window.h |
diff --git a/chrome/browser/ui/panels/panel_browser_window.h b/chrome/browser/ui/panels/panel_browser_window.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2e0393f22209f9f47d876aad145cdbf24c555508 |
--- /dev/null |
+++ b/chrome/browser/ui/panels/panel_browser_window.h |
@@ -0,0 +1,175 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_UI_PANELS_PANEL_BROWSER_WINDOW_H_ |
+#define CHROME_BROWSER_UI_PANELS_PANEL_BROWSER_WINDOW_H_ |
+#pragma once |
+ |
+#include "chrome/browser/ui/browser_window.h" |
+#include "chrome/browser/ui/tabs/tab_strip_model_observer.h" |
+ |
+namespace extensions { |
+ class Extension; |
+} |
+ |
+class NativePanel; |
+class Panel; |
+ |
+// A platform independent implementation of BrowserWindow for Panels. This |
+// class gets the first crack at all the BrowserWindow calls for Panels and |
+// do one or more of the following: |
+// - Do nothing. The function is not relevant to Panels. |
+// - Throw an exception. The function shouldn't be called for Panels. |
+// - Instruct Panel to do panel-specific platform independent processing |
+// and then invoke the function on the platform specific BrowserWindow member. |
+// - Invoke the function on the platform specific BrowserWindow member direclty. |
+class PanelBrowserWindow : public BrowserWindow, |
Ben Goodger (Google)
2012/05/21 21:38:43
why do you need this?
jennb
2012/05/21 21:44:54
I haven't removed any logic that depends on Browse
|
+ public TabStripModelObserver { |
+ public: |
+ PanelBrowserWindow(Browser* browser, Panel* panel, NativePanel* native_panel); |
+ virtual ~PanelBrowserWindow(); |
+ |
+ // BaseWindow overrides. |
+ virtual bool IsActive() const OVERRIDE; |
+ virtual bool IsMaximized() const OVERRIDE; |
+ virtual bool IsMinimized() const OVERRIDE; |
+ virtual bool IsFullscreen() const OVERRIDE; |
+ virtual gfx::Rect GetRestoredBounds() const OVERRIDE; |
+ virtual gfx::Rect GetBounds() const OVERRIDE; |
+ virtual void Show() OVERRIDE; |
+ virtual void ShowInactive() OVERRIDE; |
+ virtual void Close() OVERRIDE; |
+ virtual void Activate() OVERRIDE; |
+ virtual void Deactivate() OVERRIDE; |
+ virtual void Maximize() OVERRIDE; |
+ virtual void Minimize() OVERRIDE; |
+ virtual void Restore() OVERRIDE; |
+ virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE; |
+ virtual void SetDraggableRegion(SkRegion* region) OVERRIDE; |
+ virtual void FlashFrame(bool flash) OVERRIDE; |
+ virtual bool IsAlwaysOnTop() const OVERRIDE; |
+ |
+ // BrowserWindow overrides. |
+ virtual gfx::NativeWindow GetNativeHandle() OVERRIDE; |
+ virtual BrowserWindowTesting* GetBrowserWindowTesting() OVERRIDE; |
+ virtual StatusBubble* GetStatusBubble() OVERRIDE; |
+ virtual void ToolbarSizeChanged(bool is_animating) OVERRIDE; |
+ virtual void UpdateTitleBar() OVERRIDE; |
+ virtual void BookmarkBarStateChanged( |
+ BookmarkBar::AnimateChangeType change_type) OVERRIDE; |
+ virtual void UpdateDevTools() OVERRIDE; |
+ virtual void SetDevToolsDockSide(DevToolsDockSide side) OVERRIDE; |
+ virtual void UpdateLoadingAnimations(bool should_animate) OVERRIDE; |
+ virtual void SetStarredState(bool is_starred) OVERRIDE; |
+ virtual void EnterFullscreen( |
+ const GURL& url, FullscreenExitBubbleType type) OVERRIDE; |
+ virtual void ExitFullscreen() OVERRIDE; |
+ virtual void UpdateFullscreenExitBubbleContent( |
+ const GURL& url, |
+ FullscreenExitBubbleType bubble_type) OVERRIDE; |
+ virtual bool IsFullscreenBubbleVisible() const OVERRIDE; |
+ virtual LocationBar* GetLocationBar() const OVERRIDE; |
+ virtual void SetFocusToLocationBar(bool select_all) OVERRIDE; |
+ virtual void UpdateReloadStopState(bool is_loading, bool force) OVERRIDE; |
+ virtual void UpdateToolbar(TabContentsWrapper* contents, |
+ bool should_restore_state) OVERRIDE; |
+ virtual void FocusToolbar() OVERRIDE; |
+ virtual void FocusAppMenu() OVERRIDE; |
+ virtual void FocusBookmarksToolbar() OVERRIDE; |
+ virtual void RotatePaneFocus(bool forwards) OVERRIDE; |
+ virtual bool IsBookmarkBarVisible() const OVERRIDE; |
+ virtual bool IsBookmarkBarAnimating() const OVERRIDE; |
+ virtual bool IsTabStripEditable() const OVERRIDE; |
+ virtual bool IsToolbarVisible() const OVERRIDE; |
+ virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; |
+ virtual bool IsPanel() const OVERRIDE; |
+ virtual void DisableInactiveFrame() OVERRIDE; |
+ virtual void ConfirmAddSearchProvider(TemplateURL* template_url, |
+ Profile* profile) OVERRIDE; |
+ virtual void ToggleBookmarkBar() OVERRIDE; |
+ virtual void ShowAboutChromeDialog() OVERRIDE; |
+ virtual void ShowUpdateChromeDialog() OVERRIDE; |
+ virtual void ShowTaskManager() OVERRIDE; |
+ virtual void ShowBackgroundPages() OVERRIDE; |
+ virtual void ShowBookmarkBubble( |
+ const GURL& url, bool already_bookmarked) OVERRIDE; |
+ virtual void ShowChromeToMobileBubble() OVERRIDE; |
+#if defined(ENABLE_ONE_CLICK_SIGNIN) |
+ virtual void ShowOneClickSigninBubble( |
+ const base::Closure& learn_more_callback, |
+ const base::Closure& advanced_callback) OVERRIDE; |
+#endif |
+ virtual bool IsDownloadShelfVisible() const OVERRIDE; |
+ virtual DownloadShelf* GetDownloadShelf() OVERRIDE; |
+ virtual void ConfirmBrowserCloseWithPendingDownloads() OVERRIDE; |
+ virtual void UserChangedTheme() OVERRIDE; |
+ virtual int GetExtraRenderViewHeight() const OVERRIDE; |
+ virtual void WebContentsFocused(content::WebContents* contents) OVERRIDE; |
+ virtual void ShowPageInfo(Profile* profile, |
+ const GURL& url, |
+ const content::SSLStatus& ssl, |
+ bool show_history) OVERRIDE; |
+ virtual void ShowWebsiteSettings(Profile* profile, |
+ TabContentsWrapper* tab_contents_wrapper, |
+ const GURL& url, |
+ const content::SSLStatus& ssl, |
+ bool show_history) OVERRIDE; |
+ virtual void ShowAppMenu() OVERRIDE; |
+ virtual bool PreHandleKeyboardEvent( |
+ const content::NativeWebKeyboardEvent& event, |
+ bool* is_keyboard_shortcut) OVERRIDE; |
+ virtual void HandleKeyboardEvent( |
+ const content::NativeWebKeyboardEvent& event) OVERRIDE; |
+ virtual void ShowCreateWebAppShortcutsDialog( |
+ TabContentsWrapper* tab_contents) OVERRIDE; |
+ virtual void ShowCreateChromeAppShortcutsDialog( |
+ Profile* profile, const extensions::Extension* app) OVERRIDE; |
+ virtual void Cut() OVERRIDE; |
+ virtual void Copy() OVERRIDE; |
+ virtual void Paste() OVERRIDE; |
+#if defined(OS_MACOSX) |
+ virtual void OpenTabpose() OVERRIDE; |
+ virtual void EnterPresentationMode( |
+ const GURL& url, |
+ FullscreenExitBubbleType bubble_type) OVERRIDE; |
+ virtual void ExitPresentationMode() OVERRIDE; |
+ virtual bool InPresentationMode() OVERRIDE; |
+#endif |
+ virtual void ShowInstant(TabContentsWrapper* preview) OVERRIDE; |
+ virtual void HideInstant() OVERRIDE; |
+ virtual gfx::Rect GetInstantBounds() OVERRIDE; |
+ virtual WindowOpenDisposition GetDispositionForPopupBounds( |
+ const gfx::Rect& bounds) OVERRIDE; |
+ virtual FindBar* CreateFindBar() OVERRIDE; |
+ virtual void ResizeDueToAutoResize(content::WebContents* web_contents, |
+ const gfx::Size& new_size) OVERRIDE; |
+ virtual void ShowAvatarBubble(content::WebContents* web_contents, |
+ const gfx::Rect& rect) OVERRIDE; |
+ virtual void ShowAvatarBubbleFromAvatarButton() OVERRIDE; |
+ |
+ // TabStripModelObserver overrides. |
+ virtual void TabInsertedAt(TabContentsWrapper* contents, |
+ int index, |
+ bool foreground) OVERRIDE; |
+ |
+ protected: |
+ virtual void DestroyBrowser() OVERRIDE; |
+ |
+ private: |
+ friend class BasePanelBrowserTest; |
+ friend class PanelBrowserWindowCocoaTest; |
+ Panel* panel() const { return panel_; } // only for tests |
+ |
+ Browser* browser_; // Weak, owned by native panel. |
+ |
+ Panel* panel_; // Weak pointer. Owns us. |
+ |
+ // Platform specifc implementation for panels. It'd be one of |
+ // PanelBrowserWindowGtk/PanelBrowserView/PanelBrowserWindowCocoa. |
+ NativePanel* native_panel_; // Weak, owns us (through ownership of Panel). |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PanelBrowserWindow); |
+}; |
+ |
+#endif // CHROME_BROWSER_UI_PANELS_PANEL_BROWSER_WINDOW_H_ |