|
@@ -19,6 +19,21 @@ const wchar_t kSystemPreferencesWindowClass[] =
|
|
|
|
|
|
namespace api {
|
|
|
|
|
|
+class SystemPreferencesColorChangeListener :
|
|
|
+ public gfx::SysColorChangeListener {
|
|
|
+ public:
|
|
|
+ explicit SystemPreferencesColorChangeListener(SystemPreferences* prefs):
|
|
|
+ prefs_(prefs) {
|
|
|
+ }
|
|
|
+
|
|
|
+ void OnSysColorChange() {
|
|
|
+ prefs_->OnColorChanged();
|
|
|
+ }
|
|
|
+
|
|
|
+ private:
|
|
|
+ SystemPreferences* prefs_;
|
|
|
+};
|
|
|
+
|
|
|
bool SystemPreferences::IsAeroGlassEnabled() {
|
|
|
return ui::win::IsAeroGlassEnabled();
|
|
|
}
|
|
@@ -59,6 +74,10 @@ void SystemPreferences::InitializeWindow() {
|
|
|
0, WS_POPUP, 0, 0, 0, 0, 0, 0, instance_, 0);
|
|
|
gfx::CheckWindowCreated(window_);
|
|
|
gfx::SetWindowUserData(window_, this);
|
|
|
+
|
|
|
+ color_change_listener_.reset(
|
|
|
+ new gfx::ScopedSysColorChangeListener(
|
|
|
+ new SystemPreferencesColorChangeListener(this)));
|
|
|
}
|
|
|
|
|
|
LRESULT CALLBACK SystemPreferences::WndProcStatic(HWND hwnd,
|
|
@@ -88,6 +107,14 @@ LRESULT CALLBACK SystemPreferences::WndProc(HWND hwnd,
|
|
|
return ::DefWindowProc(hwnd, message, wparam, lparam);
|
|
|
}
|
|
|
|
|
|
+void SystemPreferences::OnColorChanged() {
|
|
|
+ bool new_invertered_color_scheme = IsInvertedColorScheme();
|
|
|
+ if (new_invertered_color_scheme != invertered_color_scheme_) {
|
|
|
+ Emit("inverted-color-scheme-changed", new_invertered_color_scheme);
|
|
|
+ invertered_color_scheme_ = new_invertered_color_scheme;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
} // namespace api
|
|
|
|
|
|
} // namespace atom
|