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"
15 class ThemeHelperMac
: public NotificationObserver
{
17 // Return pointer to the singleton instance for the current process, or NULL
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
,
31 bool scroll_animation_enabled
,
32 blink::ScrollbarButtonsPlacement button_placement
);
35 friend struct DefaultSingletonTraits
<ThemeHelperMac
>;
38 ~ThemeHelperMac() override
;
40 // Overridden from NotificationObserver:
41 void Observe(int type
,
42 const NotificationSource
& source
,
43 const NotificationDetails
& details
) override
;
45 NotificationRegistrar registrar_
;
47 DISALLOW_COPY_AND_ASSIGN(ThemeHelperMac
);
50 } // namespace content
52 #endif // CONTENT_BROWSER_THEME_HELPER_MAC_H_