• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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   virtual ~ThemeHelperMac();
37 
38   // Overridden from NotificationObserver:
39   virtual 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_
51