Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / browser / theme_helper_mac.h
1 // Copyright 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 CONTENT_BROWSER_THEME_HELPER_MAC_H_
6 #define CONTENT_BROWSER_THEME_HELPER_MAC_H_
7
8 #include "base/memory/singleton.h"
9 #include "content/public/browser/notification_observer.h"
10 #include "content/public/browser/notification_registrar.h"
11 #include "third_party/WebKit/public/web/mac/WebScrollbarTheme.h"
12
13 namespace content {
14
15 class ThemeHelperMac : public NotificationObserver {
16  public:
17   // Return pointer to the singleton instance for the current process, or NULL
18   // if none.
19   static ThemeHelperMac* GetInstance();
20
21   // Returns the value of +[NSScroller preferredScrollStyle] as expressed
22   // as the blink enum value.
23   static blink::ScrollerStyle GetPreferredScrollerStyle();
24
25   static void SendThemeChangeToAllRenderers(
26       float initial_button_delay,
27       float autoscroll_button_delay,
28       bool jump_on_track_click,
29       blink::ScrollerStyle preferred_scroller_style,
30       bool redraw);
31
32  private:
33   friend struct DefaultSingletonTraits<ThemeHelperMac>;
34
35   ThemeHelperMac();
36   ~ThemeHelperMac() override;
37
38   // Overridden from NotificationObserver:
39   void Observe(int type,
40                const NotificationSource& source,
41                const NotificationDetails& details) override;
42
43   NotificationRegistrar registrar_;
44
45   DISALLOW_COPY_AND_ASSIGN(ThemeHelperMac);
46 };
47
48 }  // namespace content
49
50 #endif  // CONTENT_BROWSER_THEME_HELPER_MAC_H_