Chromium Code Reviews| 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_ |