blob: 97a8292ce6b9a47e3a84e50cc3cd8add86e8645c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
// 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_
#include <map>
#include "base/gfx/point.h"
#include "base/gfx/rect.h"
#include "chrome/views/accelerator.h"
class BookmarkBarView;
class Browser;
class BrowserList;
class BrowserView;
class GoButton;
class LocationBarView;
class Profile;
class StatusBubble;
class TabContents;
class TabStrip;
class ToolbarStarToggle;
namespace views {
class RootView;
}
////////////////////////////////////////////////////////////////////////////////
// BrowserWindow interface
// An interface implemented by the "view" of the Browser window.
//
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;
// 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;
// Updates internal state specifying whether the throbber is to be shown.
// If the throbber was shown, and should still be shown, the frame of the
// throbber is advanced.
// If necessary, the appropriate painting is scheduled.
virtual void ValidateThrobber() { }
// 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;
// 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__
|