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

Side by Side Diff: chrome/browser/views/frame/opaque_browser_frame_view.h

Issue 27317: Support DWM switching.... (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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 unified diff | Download patch
Property Changes:
Added: svn:mergeinfo
Merged /branches/chrome_webkit_merge_branch/chrome/browser/views/frame/opaque_non_client_view.h:r69-2775
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_VIEWS_FRAME_OPAQUE_NON_CLIENT_VIEW_H_ 5 #ifndef CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_
6 #define CHROME_BROWSER_VIEWS_FRAME_OPAQUE_NON_CLIENT_VIEW_H_ 6 #define CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_
7 7
8 #include "chrome/browser/views/frame/opaque_frame.h" 8 #include "chrome/browser/views/frame/browser_frame.h"
9 #include "chrome/browser/views/tab_icon_view.h" 9 #include "chrome/browser/views/tab_icon_view.h"
10 #include "chrome/views/non_client_view.h" 10 #include "chrome/views/non_client_view.h"
11 #include "chrome/views/button.h" 11 #include "chrome/views/button.h"
12 12
13 class BrowserView; 13 class BrowserView;
14 class OpaqueFrame;
15 class TabContents; 14 class TabContents;
16 class TabStrip; 15 class TabStrip;
17 namespace views { 16 namespace views {
18 class WindowResources; 17 class WindowResources;
19 } 18 }
20 19
21 class OpaqueNonClientView : public views::NonClientView, 20 class OpaqueBrowserFrameView : public BrowserNonClientFrameView,
22 public views::BaseButton::ButtonListener, 21 public views::BaseButton::ButtonListener,
23 public TabIconView::TabIconViewModel { 22 public TabIconView::TabIconViewModel {
24 public: 23 public:
25 // Constructs a non-client view for an OpaqueFrame. |is_otr| specifies if the 24 // Constructs a non-client view for an BrowserFrame. |is_otr| specifies if the
26 // frame was created "off-the-record" and as such different bitmaps should be 25 // frame was created "off-the-record" and as such different bitmaps should be
27 // used to render the frame. 26 // used to render the frame.
28 OpaqueNonClientView(OpaqueFrame* frame, BrowserView* browser_view); 27 OpaqueBrowserFrameView(BrowserFrame* frame, BrowserView* browser_view);
29 virtual ~OpaqueNonClientView(); 28 virtual ~OpaqueBrowserFrameView();
30 29
31 // Retrieve the bounds of the window for the specified contents bounds. 30 // Overridden from BrowserNonClientFrameView:
32 gfx::Rect GetWindowBoundsForClientBounds(const gfx::Rect& client_bounds); 31 virtual gfx::Rect GetBoundsForTabStrip(TabStrip* tabstrip) const;
33 32 virtual void UpdateThrobber(bool running);
34 // Retrieve the bounds for the specified |tabstrip|, in the coordinate system
35 // of the non-client view (which whould be window coordinates).
36 gfx::Rect GetBoundsForTabStrip(TabStrip* tabstrip);
37
38 // Updates the window icon/throbber.
39 void UpdateWindowIcon();
40 33
41 protected: 34 protected:
42 // Overridden from views::NonClientView: 35 // Overridden from views::NonClientFrameView:
43 virtual gfx::Rect CalculateClientAreaBounds(int width, int height) const; 36 virtual gfx::Rect GetBoundsForClientView() const;
44 virtual gfx::Size CalculateWindowSizeForClientSize(int width, 37 virtual gfx::Rect GetWindowBoundsForClientBounds(
45 int height) const; 38 const gfx::Rect& client_bounds) const;
46 virtual gfx::Point GetSystemMenuPoint() const; 39 virtual gfx::Point GetSystemMenuPoint() const;
47 virtual int NonClientHitTest(const gfx::Point& point); 40 virtual int NonClientHitTest(const gfx::Point& point);
48 virtual void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask); 41 virtual void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask);
49 virtual void EnableClose(bool enable); 42 virtual void EnableClose(bool enable);
50 virtual void ResetWindowControls(); 43 virtual void ResetWindowControls();
51 44
52 // Overridden from views::View: 45 // Overridden from views::View:
53 virtual void Paint(ChromeCanvas* canvas); 46 virtual void Paint(ChromeCanvas* canvas);
54 virtual void Layout(); 47 virtual void Layout();
55 virtual views::View* GetViewForPoint(const gfx::Point& point, 48 virtual views::View* GetViewForPoint(const gfx::Point& point,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 void PaintOTRAvatar(ChromeCanvas* canvas); 100 void PaintOTRAvatar(ChromeCanvas* canvas);
108 void PaintRestoredClientEdge(ChromeCanvas* canvas); 101 void PaintRestoredClientEdge(ChromeCanvas* canvas);
109 102
110 // Layout various sub-components of this view. 103 // Layout various sub-components of this view.
111 void LayoutWindowControls(); 104 void LayoutWindowControls();
112 void LayoutDistributorLogo(); 105 void LayoutDistributorLogo();
113 void LayoutTitleBar(); 106 void LayoutTitleBar();
114 void LayoutOTRAvatar(); 107 void LayoutOTRAvatar();
115 void LayoutClientView(); 108 void LayoutClientView();
116 109
110 // Returns the bounds of the client area for the specified view size.
111 gfx::Rect CalculateClientAreaBounds(int width, int height) const;
112
117 // Returns the set of resources to use to paint this view. 113 // Returns the set of resources to use to paint this view.
118 views::WindowResources* resources() const { 114 views::WindowResources* resources() const {
119 return frame_->is_active() || paint_as_active() ? 115 return frame_->is_active() || paint_as_active() ?
120 current_active_resources_ : current_inactive_resources_; 116 current_active_resources_ : current_inactive_resources_;
121 } 117 }
122 118
123 // The layout rect of the title, if visible. 119 // The layout rect of the title, if visible.
124 gfx::Rect title_bounds_; 120 gfx::Rect title_bounds_;
125 121
126 // The layout rect of the distributor logo, if visible. 122 // The layout rect of the distributor logo, if visible.
127 gfx::Rect logo_bounds_; 123 gfx::Rect logo_bounds_;
128 124
129 // The layout rect of the OTR avatar icon, if visible. 125 // The layout rect of the OTR avatar icon, if visible.
130 gfx::Rect otr_avatar_bounds_; 126 gfx::Rect otr_avatar_bounds_;
131 127
132 // Window controls. 128 // Window controls.
133 views::Button* minimize_button_; 129 views::Button* minimize_button_;
134 views::Button* maximize_button_; 130 views::Button* maximize_button_;
135 views::Button* restore_button_; 131 views::Button* restore_button_;
136 views::Button* close_button_; 132 views::Button* close_button_;
137 133
138 // The Window icon. 134 // The Window icon.
139 TabIconView* window_icon_; 135 TabIconView* window_icon_;
140 136
141 // The frame that hosts this view. 137 // The frame that hosts this view.
142 OpaqueFrame* frame_; 138 BrowserFrame* frame_;
143 139
144 // The BrowserView hosted within this View. 140 // The BrowserView hosted within this View.
145 BrowserView* browser_view_; 141 BrowserView* browser_view_;
146 142
143 // The bounds of the ClientView.
144 gfx::Rect client_view_bounds_;
145
147 // The resources currently used to paint this view. 146 // The resources currently used to paint this view.
148 views::WindowResources* current_active_resources_; 147 views::WindowResources* current_active_resources_;
149 views::WindowResources* current_inactive_resources_; 148 views::WindowResources* current_inactive_resources_;
150 149
151 // The accessible name of this view. 150 // The accessible name of this view.
152 std::wstring accessible_name_; 151 std::wstring accessible_name_;
153 152
154 static void InitClass(); 153 static void InitClass();
155 static void InitAppWindowResources(); 154 static void InitAppWindowResources();
156 static SkBitmap* distributor_logo_; 155 static SkBitmap* distributor_logo_;
157 static views::WindowResources* active_resources_; 156 static views::WindowResources* active_resources_;
158 static views::WindowResources* inactive_resources_; 157 static views::WindowResources* inactive_resources_;
159 static views::WindowResources* active_otr_resources_; 158 static views::WindowResources* active_otr_resources_;
160 static views::WindowResources* inactive_otr_resources_; 159 static views::WindowResources* inactive_otr_resources_;
161 static ChromeFont title_font_; 160 static ChromeFont title_font_;
162 161
163 DISALLOW_EVIL_CONSTRUCTORS(OpaqueNonClientView); 162 DISALLOW_EVIL_CONSTRUCTORS(OpaqueBrowserFrameView);
164 }; 163 };
165 164
166 #endif // #ifndef CHROME_BROWSER_VIEWS_FRAME_OPAQUE_NON_CLIENT_VIEW_H_ 165 #endif // #ifndef CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_
167 166
OLDNEW
« no previous file with comments | « chrome/browser/views/frame/glass_browser_frame_view.cc ('k') | chrome/browser/views/frame/opaque_browser_frame_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698