sandbox/linux/bpf_dsl: eliminate implicit dependency on C++ compiler behavior
[chromium-blink-merge.git] / content / browser / theme_helper_mac.h
blobbe433a2a76afd5913330085de599cc897e5a2435
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,
31 bool scroll_animation_enabled,
32 blink::ScrollbarButtonsPlacement button_placement);
34 private:
35 friend struct DefaultSingletonTraits<ThemeHelperMac>;
37 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_