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

Side by Side Diff: ash/wm/header_painter.h

Issue 37733003: Make GetRootWindow() return a Window instead of a RootWindow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « ash/wm/gestures/long_press_affordance_handler.cc ('k') | ash/wm/header_painter.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 ASH_WM_HEADER_PAINTER_H_ 5 #ifndef ASH_WM_HEADER_PAINTER_H_
6 #define ASH_WM_HEADER_PAINTER_H_ 6 #define ASH_WM_HEADER_PAINTER_H_
7 7
8 #include "ash/ash_export.h" 8 #include "ash/ash_export.h"
9 #include "ash/wm/window_state_observer.h" 9 #include "ash/wm/window_state_observer.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h" // OVERRIDE 11 #include "base/compiler_specific.h" // OVERRIDE
12 #include "base/gtest_prod_util.h" 12 #include "base/gtest_prod_util.h"
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "ui/aura/window_observer.h" 14 #include "ui/aura/window_observer.h"
15 #include "ui/gfx/animation/animation_delegate.h" 15 #include "ui/gfx/animation/animation_delegate.h"
16 #include "ui/gfx/rect.h" 16 #include "ui/gfx/rect.h"
17 17
18 namespace aura { 18 namespace aura {
19 class RootWindow;
20 class Window; 19 class Window;
21 } 20 }
22 namespace gfx { 21 namespace gfx {
23 class Canvas; 22 class Canvas;
24 class Font; 23 class Font;
25 class ImageSkia; 24 class ImageSkia;
26 class Point; 25 class Point;
27 class Size; 26 class Size;
28 class SlideAnimation; 27 class SlideAnimation;
29 } 28 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 void Init(views::Widget* frame, 61 void Init(views::Widget* frame,
63 views::View* header_view, 62 views::View* header_view,
64 views::View* window_icon, 63 views::View* window_icon,
65 FrameCaptionButtonContainerView* caption_button_container); 64 FrameCaptionButtonContainerView* caption_button_container);
66 65
67 // Enable/Disable the solo-window transparent header appearance feature. 66 // Enable/Disable the solo-window transparent header appearance feature.
68 static void SetSoloWindowHeadersEnabled(bool enabled); 67 static void SetSoloWindowHeadersEnabled(bool enabled);
69 68
70 // Updates the solo-window transparent header appearance for all windows 69 // Updates the solo-window transparent header appearance for all windows
71 // using frame painters in |root_window|. 70 // using frame painters in |root_window|.
72 static void UpdateSoloWindowHeader(aura::RootWindow* root_window); 71 static void UpdateSoloWindowHeader(aura::Window* root_window);
73 72
74 // Returns the bounds of the client view for a window with |header_height| 73 // Returns the bounds of the client view for a window with |header_height|
75 // and |window_bounds|. The return value and |window_bounds| are in the 74 // and |window_bounds|. The return value and |window_bounds| are in the
76 // views::NonClientView's coordinates. 75 // views::NonClientView's coordinates.
77 static gfx::Rect GetBoundsForClientView(int header_height, 76 static gfx::Rect GetBoundsForClientView(int header_height,
78 const gfx::Rect& window_bounds); 77 const gfx::Rect& window_bounds);
79 78
80 // Returns the bounds of the window given |header_height| and |client_bounds|. 79 // Returns the bounds of the window given |header_height| and |client_bounds|.
81 // The return value and |client_bounds| are in the views::NonClientView's 80 // The return value and |client_bounds| are in the views::NonClientView's
82 // coordinates. 81 // coordinates.
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 // Returns the radius of the header's top corners. 190 // Returns the radius of the header's top corners.
192 int GetHeaderCornerRadius() const; 191 int GetHeaderCornerRadius() const;
193 192
194 // Returns true if |window_->GetRootWindow()| should be drawing transparent 193 // Returns true if |window_->GetRootWindow()| should be drawing transparent
195 // window headers. 194 // window headers.
196 bool UseSoloWindowHeader() const; 195 bool UseSoloWindowHeader() const;
197 196
198 // Returns true if |root_window| has exactly one visible, normal-type window. 197 // Returns true if |root_window| has exactly one visible, normal-type window.
199 // It ignores |ignore_window| while calculating the number of windows. 198 // It ignores |ignore_window| while calculating the number of windows.
200 // Pass NULL for |ignore_window| to consider all windows. 199 // Pass NULL for |ignore_window| to consider all windows.
201 static bool UseSoloWindowHeaderInRoot(aura::RootWindow* root_window, 200 static bool UseSoloWindowHeaderInRoot(aura::Window* root_window,
202 aura::Window* ignore_window); 201 aura::Window* ignore_window);
203 202
204 // Updates the solo-window transparent header appearance for all windows in 203 // Updates the solo-window transparent header appearance for all windows in
205 // |root_window|. If |ignore_window| is not NULL it is ignored for when 204 // |root_window|. If |ignore_window| is not NULL it is ignored for when
206 // counting visible windows. This is useful for updates when a window is about 205 // counting visible windows. This is useful for updates when a window is about
207 // to be closed or is moving to another root. If the solo window status 206 // to be closed or is moving to another root. If the solo window status
208 // changes it schedules paints as necessary. 207 // changes it schedules paints as necessary.
209 static void UpdateSoloWindowInRoot(aura::RootWindow* root_window, 208 static void UpdateSoloWindowInRoot(aura::Window* root_window,
210 aura::Window* ignore_window); 209 aura::Window* ignore_window);
211 210
212 // Schedules a paint for the header. Used when transitioning from no header to 211 // Schedules a paint for the header. Used when transitioning from no header to
213 // a header (or other way around). 212 // a header (or other way around).
214 void SchedulePaintForHeader(); 213 void SchedulePaintForHeader();
215 214
216 // Get the bounds for the title. The provided |title_font| is used to 215 // Get the bounds for the title. The provided |title_font| is used to
217 // determine the correct dimensions. 216 // determine the correct dimensions.
218 gfx::Rect GetTitleBounds(const gfx::Font& title_font); 217 gfx::Rect GetTitleBounds(const gfx::Font& title_font);
219 218
(...skipping 25 matching lines...) Expand all
245 int crossfade_opacity_; 244 int crossfade_opacity_;
246 245
247 scoped_ptr<gfx::SlideAnimation> crossfade_animation_; 246 scoped_ptr<gfx::SlideAnimation> crossfade_animation_;
248 247
249 DISALLOW_COPY_AND_ASSIGN(HeaderPainter); 248 DISALLOW_COPY_AND_ASSIGN(HeaderPainter);
250 }; 249 };
251 250
252 } // namespace ash 251 } // namespace ash
253 252
254 #endif // ASH_WM_HEADER_PAINTER_H_ 253 #endif // ASH_WM_HEADER_PAINTER_H_
OLDNEW
« no previous file with comments | « ash/wm/gestures/long_press_affordance_handler.cc ('k') | ash/wm/header_painter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698