1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef ASH_FRAME_HEADER_PAINTER_UTIL_H_ 6 #define ASH_FRAME_HEADER_PAINTER_UTIL_H_ 7 8 #include "ash/ash_export.h" 9 #include "base/macros.h" 10 11 namespace gfx { 12 class FontList; 13 class Rect; 14 } 15 namespace views { 16 class View; 17 class Widget; 18 } 19 20 namespace ash { 21 22 // Static-only helper class for functionality used accross multiple 23 // implementations of HeaderPainter. 24 class ASH_EXPORT HeaderPainterUtil { 25 public: 26 // Returns the radius of the header's corners when the window is restored. 27 static int GetTopCornerRadiusWhenRestored(); 28 29 // Returns the default distance between the left edge of the window and the 30 // leftmost view in the header. 31 static int GetDefaultLeftViewXInset(); 32 33 // Returns the amount that the frame background is inset from the left edge of 34 // the window. 35 static int GetThemeBackgroundXInset(); 36 37 // Returns the bounds for the header's title given the views to the left and 38 // right of the title, and the font used. 39 // |left_view| should be NULL if there is no view to the left of the title. 40 static gfx::Rect GetTitleBounds(const views::View* left_view, 41 const views::View* right_view, 42 const gfx::FontList& title_font_list); 43 44 // Returns true if the header for |widget| can animate to new visuals when the 45 // widget's activation changes. Returns false if the header should switch to 46 // new visuals instantaneously. 47 static bool CanAnimateActivation(views::Widget* widget); 48 49 private: 50 DISALLOW_IMPLICIT_CONSTRUCTORS(HeaderPainterUtil); 51 }; 52 53 } // namespace ash 54 55 #endif // ASH_FRAME_HEADER_PAINTER_UTIL_H_ 56