Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ui / native_theme / native_theme_mac.h
1 // Copyright (c) 2013 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_NATIVE_THEME_MAC_H_
6 #define UI_NATIVE_THEME_NATIVE_THEME_MAC_H_
7
8 #include "ui/native_theme/fallback_theme.h"
9 #include "ui/native_theme/native_theme_export.h"
10
11 namespace ui {
12
13 // Mac implementation of native theme support.
14 // TODO(tapted): This should not use FallbackTheme. http://crbug.com/379086.
15 class NativeThemeMac : public FallbackTheme {
16  public:
17   static NativeThemeMac* instance();
18
19   // Overridden from NativeTheme:
20   SkColor GetSystemColor(ColorId color_id) const override;
21
22   // Overridden from NativeThemeBase:
23   void PaintScrollbarTrack(SkCanvas* canvas,
24                            Part part,
25                            State state,
26                            const ScrollbarTrackExtraParams& extra_params,
27                            const gfx::Rect& rect) const override;
28   void PaintScrollbarThumb(SkCanvas* sk_canvas,
29                            Part part,
30                            State state,
31                            const gfx::Rect& rect) const override;
32   void PaintScrollbarCorner(SkCanvas* canvas,
33                             State state,
34                             const gfx::Rect& rect) const override;
35   void PaintMenuPopupBackground(
36       SkCanvas* canvas,
37       const gfx::Size& size,
38       const MenuBackgroundExtraParams& menu_background) const override;
39   void PaintMenuItemBackground(
40       SkCanvas* canvas,
41       State state,
42       const gfx::Rect& rect,
43       const MenuListExtraParams& menu_list) const override;
44
45  private:
46   NativeThemeMac();
47   ~NativeThemeMac() override;
48
49   DISALLOW_COPY_AND_ASSIGN(NativeThemeMac);
50 };
51
52 }  // namespace ui
53
54 #endif  // UI_NATIVE_THEME_NATIVE_THEME_MAC_H_