Add inverted-color-scheme-changed event

This commit is contained in:
Kevin Sawicki 2016-10-07 09:38:19 -07:00
parent 223e9d97a0
commit 8b16b82ce9
3 changed files with 45 additions and 3 deletions

View file

@ -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