Chromium Code Reviews| 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..5291a1ec389b349ade65595d5a61cb40016cb3f1 100644 |
| --- a/ui/gfx/sys_color_change_listener.cc |
| +++ b/ui/gfx/sys_color_change_listener.cc |
| @@ -9,12 +9,15 @@ |
| #endif |
| #include "base/basictypes.h" |
| +#include "base/bind.h" |
| +#include "base/bind_helpers.h" |
| +#include "base/memory/scoped_ptr.h" |
| #include "base/memory/singleton.h" |
| #include "base/observer_list.h" |
| #include "ui/gfx/color_utils.h" |
| #if defined(OS_WIN) |
| -#include "ui/gfx/win/singleton_hwnd.h" |
| +#include "ui/gfx/win/singleton_hwnd_observer.h" |
| #endif |
| namespace gfx { |
| @@ -49,7 +52,7 @@ bool IsInvertedColorScheme() { |
| } |
| #if defined(OS_WIN) |
| -class SysColorChangeObserver : public gfx::SingletonHwnd::Observer { |
| +class SysColorChangeObserver { |
| public: |
| static SysColorChangeObserver* GetInstance(); |
| @@ -62,12 +65,10 @@ class SysColorChangeObserver : public gfx::SingletonHwnd::Observer { |
| SysColorChangeObserver(); |
| virtual ~SysColorChangeObserver(); |
| - void OnWndProc(HWND hwnd, |
| - UINT message, |
| - WPARAM wparam, |
| - LPARAM lparam) override; |
| + void OnWndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam); |
| ObserverList<SysColorChangeListener> listeners_; |
| + scoped_ptr<gfx::SingletonHwndObserver> singleton_hwnd_observer_; |
|
Alexei Svitkine (slow)
2015/05/04 15:44:29
Drive-by:
Is there a reason these members are sco
robliao
2015/05/04 17:03:12
See
https://codereview.chromium.org/1092183005/#ms
|
| }; |
| // static |
| @@ -75,13 +76,12 @@ SysColorChangeObserver* SysColorChangeObserver::GetInstance() { |
| return Singleton<SysColorChangeObserver>::get(); |
| } |
| -SysColorChangeObserver::SysColorChangeObserver() { |
| - gfx::SingletonHwnd::GetInstance()->AddObserver(this); |
| -} |
| +SysColorChangeObserver::SysColorChangeObserver() |
| + : singleton_hwnd_observer_(new SingletonHwndObserver( |
| + base::Bind(&SysColorChangeObserver::OnWndProc, |
| + base::Unretained(this)))) {} |
| -SysColorChangeObserver::~SysColorChangeObserver() { |
| - gfx::SingletonHwnd::GetInstance()->RemoveObserver(this); |
| -} |
| +SysColorChangeObserver::~SysColorChangeObserver() {} |
| void SysColorChangeObserver::AddListener(SysColorChangeListener* listener) { |
| listeners_.AddObserver(listener); |