1 // Copyright (c) 2012 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 UI_NATIVE_THEME_COMMON_THEME_H_ 6 #define UI_NATIVE_THEME_COMMON_THEME_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "ui/native_theme/native_theme.h" 10 11 class SkCanvas; 12 13 namespace gfx { 14 class Canvas; 15 } 16 17 namespace ui { 18 19 // Drawing code that is common for all platforms. 20 21 // Returns true and |color| if |color_id| is found, or false otherwise. 22 bool NATIVE_THEME_EXPORT CommonThemeGetSystemColor( 23 NativeTheme::ColorId color_id, 24 SkColor* color); 25 26 gfx::Size NATIVE_THEME_EXPORT CommonThemeGetPartSize( 27 NativeTheme::Part part, 28 NativeTheme::State state, 29 const NativeTheme::ExtraParams& extra); 30 31 void NATIVE_THEME_EXPORT CommonThemePaintComboboxArrow( 32 SkCanvas* canvas, 33 const gfx::Rect& rect); 34 35 void NATIVE_THEME_EXPORT CommonThemePaintMenuSeparator( 36 SkCanvas* canvas, 37 const gfx::Rect& rect, 38 const NativeTheme::MenuSeparatorExtraParams& extra); 39 40 void NATIVE_THEME_EXPORT CommonThemePaintMenuGutter(SkCanvas* canvas, 41 const gfx::Rect& rect); 42 43 void NATIVE_THEME_EXPORT CommonThemePaintMenuBackground(SkCanvas* canvas, 44 const gfx::Rect& rect); 45 46 void NATIVE_THEME_EXPORT CommonThemePaintMenuItemBackground( 47 SkCanvas* canvas, 48 NativeTheme::State state, 49 const gfx::Rect& rect); 50 51 // Creates a gfx::Canvas wrapping an SkCanvas. 52 scoped_ptr<gfx::Canvas> NATIVE_THEME_EXPORT CommonThemeCreateCanvas( 53 SkCanvas* sk_canvas); 54 55 } // namespace ui 56 57 #endif // UI_NATIVE_THEME_COMMON_THEME_H_ 58