Index: ui/gfx/sys_color_change_listener.cc |
diff --git a/ui/gfx/sys_color_change_listener.cc b/ui/gfx/sys_color_change_listener.cc |
index 0e5008a66e08a1e0607f08518656829f74b93315..6a0c3aabebcc57363353ab22b96a5bac857f36d2 100644 |
--- a/ui/gfx/sys_color_change_listener.cc |
+++ b/ui/gfx/sys_color_change_listener.cc |
@@ -9,6 +9,8 @@ |
#endif |
#include "base/basictypes.h" |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
#include "base/memory/singleton.h" |
#include "base/observer_list.h" |
#include "ui/gfx/color_utils.h" |
@@ -49,7 +51,7 @@ bool IsInvertedColorScheme() { |
} |
#if defined(OS_WIN) |
-class SysColorChangeObserver : public gfx::SingletonHwnd::Observer { |
+class SysColorChangeObserver { |
public: |
static SysColorChangeObserver* GetInstance(); |
@@ -62,12 +64,10 @@ class SysColorChangeObserver : public gfx::SingletonHwnd::Observer { |
SysColorChangeObserver(); |
virtual ~SysColorChangeObserver(); |
- void OnWndProc(HWND hwnd, |
- UINT message, |
- WPARAM wparam, |
- LPARAM lparam) override; |
+ void OnSysColorChange(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam); |
ObserverList<SysColorChangeListener> listeners_; |
+ gfx::SingletonHwnd::Observer singletonHwndObserver_; |
}; |
// static |
@@ -76,12 +76,12 @@ SysColorChangeObserver* SysColorChangeObserver::GetInstance() { |
} |
SysColorChangeObserver::SysColorChangeObserver() { |
- gfx::SingletonHwnd::GetInstance()->AddObserver(this); |
+ singletonHwndObserver_.SetWndProc( |
+ base::Bind(&SysColorChangeObserver::OnSysColorChange, |
+ base::Unretained(this))); |
} |
-SysColorChangeObserver::~SysColorChangeObserver() { |
- gfx::SingletonHwnd::GetInstance()->RemoveObserver(this); |
-} |
+SysColorChangeObserver::~SysColorChangeObserver() {} |
void SysColorChangeObserver::AddListener(SysColorChangeListener* listener) { |
listeners_.AddObserver(listener); |
@@ -91,10 +91,10 @@ void SysColorChangeObserver::RemoveListener(SysColorChangeListener* listener) { |
listeners_.RemoveObserver(listener); |
} |
-void SysColorChangeObserver::OnWndProc(HWND hwnd, |
- UINT message, |
- WPARAM wparam, |
- LPARAM lparam) { |
+void SysColorChangeObserver::OnSysColorChange(HWND hwnd, |
+ UINT message, |
+ WPARAM wparam, |
+ LPARAM lparam) { |
if (message == WM_SYSCOLORCHANGE || |
(message == WM_SETTINGCHANGE && wparam == SPI_SETHIGHCONTRAST)) { |
UpdateInvertedColorScheme(); |