| // Copyright (c) 2006-2008 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_BROWSER_WINDOW_H_ |
| #define CHROME_BROWSER_BROWSER_WINDOW_H_ |
| |
| class BookmarkBarView; |
| class Browser; |
| class BrowserList; |
| class BrowserView; |
| class GoButton; |
| class LocationBarView; |
| class HtmlDialogContentsDelegate; |
| class Profile; |
| class StatusBubble; |
| class TabContents; |
| class TabStrip; |
| class ToolbarStarToggle; |
| |
| namespace gfx { |
| class Rect; |
| } |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // BrowserWindow interface |
| // An interface implemented by the "view" of the Browser window. |
| // |
| // NOTE: all getters, save GetTabStrip(), may return NULL. |
| class BrowserWindow { |
| public: |
| // Initialize the frame. |
| virtual void Init() = 0; |
| |
| // Show the window, or activates it if it's already visible. |
| virtual void Show() = 0; |
| |
| // Sets the window's size and position to the specified values. |
| virtual void SetBounds(const gfx::Rect& bounds) = 0; |
| |
| // Closes the frame as soon as possible. If the frame is not in a drag |
| // session, it will close immediately; otherwise, it will move offscreen (so |
| // events are still fired) until the drag ends, then close. |
| virtual void Close() = 0; |
| |
| // Activates (brings to front) the window. Restores the window from minimized |
| // state if necessary. |
| virtual void Activate() = 0; |
| |
| // Flashes the taskbar item associated with this frame. |
| virtual void FlashFrame() = 0; |
| |
| // Return a platform dependent identifier for this frame. On Windows, this |
| // returns an HWND. DO NOT USE IN CROSS PLATFORM CODE. |
| virtual void* GetNativeHandle() = 0; |
| |
| // TODO(beng): REMOVE (obtain via BrowserFrame). |
| // Return the TabStrip associated with the frame. |
| virtual TabStrip* GetTabStrip() const = 0; |
| |
| // Return the status bubble associated with the frame |
| virtual StatusBubble* GetStatusBubble() = 0; |
| |
| // Inform the receiving frame that an animation has progressed in the |
| // selected tab. |
| // TODO(beng): Remove. Infobars/Boomarks bars should talk directly to |
| // BrowserView. |
| virtual void SelectedTabToolbarSizeChanged(bool is_animating) = 0; |
| |
| // Inform the frame that the selected tab favicon or title has changed. Some |
| // frames may need to refresh their title bar. |
| // TODO(beng): make this pure virtual after XPFrame/VistaFrame retire. |
| virtual void UpdateTitleBar() = 0; |
| |
| // Update any loading animations running in the window. |should_animate| is |
| // true if there are tabs loading and the animations should continue, false |
| // if there are no active loads and the animations should end. |
| virtual void UpdateLoadingAnimations(bool should_animate) = 0; |
| |
| // TODO(beng): RENAME (GetRestoredBounds) |
| // Returns the nonmaximized bounds of the frame (even if the frame is |
| // currently maximized or minimized) in terms of the screen coordinates. |
| virtual gfx::Rect GetNormalBounds() const = 0; |
| |
| // TODO(beng): REMOVE? |
| // Returns true if the frame is maximized (aka zoomed). |
| virtual bool IsMaximized() = 0; |
| |
| // Returns the star button. |
| virtual ToolbarStarToggle* GetStarButton() const = 0; |
| |
| // Returns the location bar. |
| virtual LocationBarView* GetLocationBarView() const = 0; |
| |
| // Returns the go button. |
| virtual GoButton* GetGoButton() const = 0; |
| |
| // Returns the Bookmark Bar view. |
| virtual BookmarkBarView* GetBookmarkBarView() = 0; |
| |
| // Updates the toolbar with the state for the specified |contents|. |
| virtual void UpdateToolbar(TabContents* contents, |
| bool should_restore_state) = 0; |
| |
| // Focuses the toolbar (for accessibility). |
| virtual void FocusToolbar() = 0; |
| |
| // Returns whether the bookmark bar is visible or not. |
| virtual bool IsBookmarkBarVisible() const = 0; |
| |
| // Shows or hides the bookmark bar depending on its current visibility. |
| virtual void ToggleBookmarkBar() = 0; |
| |
| // Shows the About Chrome dialog box. |
| virtual void ShowAboutChromeDialog() = 0; |
| |
| // Shows the Bookmark Manager window. |
| virtual void ShowBookmarkManager() = 0; |
| |
| // Shows the Report a Bug dialog box. |
| virtual void ShowReportBugDialog() = 0; |
| |
| // Shows the Clear Browsing Data dialog box. |
| virtual void ShowClearBrowsingDataDialog() = 0; |
| |
| // Shows the Import Bookmarks & Settings dialog box. |
| virtual void ShowImportDialog() = 0; |
| |
| // Shows the Search Engines dialog box. |
| virtual void ShowSearchEnginesDialog() = 0; |
| |
| // Shows the Password Manager dialog box. |
| virtual void ShowPasswordManager() = 0; |
| |
| // Shows a dialog box with HTML content, e.g. for Gears. |parent_window| is |
| // the window the dialog should be opened modal to and is a native window |
| // handle. |
| virtual void ShowHTMLDialog(HtmlDialogContentsDelegate* delegate, |
| void* parent_window) = 0; |
| |
| // Construct a BrowserWindow implementation for the specified |browser|. |
| static BrowserWindow* CreateBrowserWindow(Browser* browser); |
| |
| protected: |
| friend class BrowserList; |
| friend class BrowserView; |
| virtual void DestroyBrowser() = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_BROWSER_WINDOW_H__ |