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 11namespace gfx { 12class FontList; 13class Rect; 14} 15namespace views { 16class View; 17class Widget; 18} 19 20namespace ash { 21 22// Static-only helper class for functionality used accross multiple 23// implementations of HeaderPainter. 24class 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