Re-subimission of https://codereview.chromium.org/1041213003/
[chromium-blink-merge.git] / content / browser / theme_helper_mac.h
blob935ab3fe238bd09af9adc722490fba0c751800ab
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.
5 #ifndef CONTENT_BROWSER_THEME_HELPER_MAC_H_
6 #define CONTENT_BROWSER_THEME_HELPER_MAC_H_
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"
13 namespace content {
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();
21 // Returns the value of +[NSScroller preferredScrollStyle] as expressed
22 // as the blink enum value.
23 static blink::ScrollerStyle GetPreferredScrollerStyle();
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);
32 private:
33 friend struct DefaultSingletonTraits<ThemeHelperMac>;
35 ThemeHelperMac();
36 ~ThemeHelperMac() override;
38 // Overridden from NotificationObserver:
39 void Observe(int type,
40 const NotificationSource& source,
41 const NotificationDetails& details) override;
43 NotificationRegistrar registrar_;
45 DISALLOW_COPY_AND_ASSIGN(ThemeHelperMac);
48 } // namespace content
50 #endif // CONTENT_BROWSER_THEME_HELPER_MAC_H_