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