• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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