[email protected] | b0988b2 | 2013-11-08 08:25:58 | [diff] [blame] | 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" |
[email protected] | 291857a | 2014-01-23 17:49:11 | [diff] [blame] | 11 | #include "third_party/WebKit/public/web/mac/WebScrollbarTheme.h" |
[email protected] | b0988b2 | 2013-11-08 08:25:58 | [diff] [blame] | 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 | |
[email protected] | 291857a | 2014-01-23 17:49:11 | [diff] [blame] | 21 | // Returns the value of +[NSScroller preferredScrollStyle] as expressed |
| 22 | // as the blink enum value. |
| 23 | static blink::ScrollerStyle GetPreferredScrollerStyle(); |
| 24 | |
[email protected] | b0988b2 | 2013-11-08 08:25:58 | [diff] [blame] | 25 | static void SendThemeChangeToAllRenderers( |
| 26 | float initial_button_delay, |
| 27 | float autoscroll_button_delay, |
| 28 | bool jump_on_track_click, |
[email protected] | 291857a | 2014-01-23 17:49:11 | [diff] [blame] | 29 | blink::ScrollerStyle preferred_scroller_style, |
[email protected] | b0988b2 | 2013-11-08 08:25:58 | [diff] [blame] | 30 | bool redraw); |
| 31 | |
| 32 | private: |
| 33 | friend struct DefaultSingletonTraits<ThemeHelperMac>; |
| 34 | |
| 35 | ThemeHelperMac(); |
dcheng | c2282aa | 2014-10-21 12:07:58 | [diff] [blame] | 36 | ~ThemeHelperMac() override; |
[email protected] | b0988b2 | 2013-11-08 08:25:58 | [diff] [blame] | 37 | |
| 38 | // Overridden from NotificationObserver: |
dcheng | c2282aa | 2014-10-21 12:07:58 | [diff] [blame] | 39 | void Observe(int type, |
| 40 | const NotificationSource& source, |
| 41 | const NotificationDetails& details) override; |
[email protected] | b0988b2 | 2013-11-08 08:25:58 | [diff] [blame] | 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_ |