Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2121)

Unified Diff: chrome/browser/ui/panels/panel_browser_window.h

Issue 10411036: Separate BrowserWindow from Panel class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix mac unit_tests compile Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/panels/panel_browser_view.cc ('k') | chrome/browser/ui/panels/panel_browser_window.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « chrome/browser/ui/panels/panel_browser_view.cc ('k') | chrome/browser/ui/panels/panel_browser_window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698