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
11namespace ui {
12
13// Mac implementation of native theme support.
14// TODO(tapted): This should not use FallbackTheme. http://crbug.com/379086.
15class NativeThemeMac : public FallbackTheme {
16 public:
17  static NativeThemeMac* instance();
18
19  // Overridden from NativeTheme:
20  virtual SkColor GetSystemColor(ColorId color_id) const OVERRIDE;
21
22  // Overridden from NativeThemeBase:
23  virtual void PaintScrollbarTrack(
24      SkCanvas* canvas,
25      Part part,
26      State state,
27      const ScrollbarTrackExtraParams& extra_params,
28      const gfx::Rect& rect) const OVERRIDE;
29  virtual void PaintScrollbarThumb(SkCanvas* sk_canvas,
30                                   Part part,
31                                   State state,
32                                   const gfx::Rect& rect) const OVERRIDE;
33  virtual void PaintScrollbarCorner(SkCanvas* canvas,
34                                    State state,
35                                    const gfx::Rect& rect) const OVERRIDE;
36  virtual void PaintMenuPopupBackground(
37      SkCanvas* canvas,
38      const gfx::Size& size,
39      const MenuBackgroundExtraParams& menu_background) const OVERRIDE;
40  virtual void PaintMenuItemBackground(
41      SkCanvas* canvas,
42      State state,
43      const gfx::Rect& rect,
44      const MenuListExtraParams& menu_list) const OVERRIDE;
45
46 private:
47  NativeThemeMac();
48  virtual ~NativeThemeMac();
49
50  DISALLOW_COPY_AND_ASSIGN(NativeThemeMac);
51};
52
53}  // namespace ui
54
55#endif  // UI_NATIVE_THEME_NATIVE_THEME_MAC_H_
56