🍎 Add 'dark-mode-changed' event to app api
This commit is contained in:
parent
eaac67ac60
commit
c4049cb393
7 changed files with 31 additions and 1 deletions
|
@ -282,6 +282,12 @@ void App::OnGpuProcessCrashed(base::TerminationStatus exit_code) {
|
|||
Emit("gpu-process-crashed");
|
||||
}
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
void App::OnDarkModeChanged() {
|
||||
Emit("dark-mode-changed");
|
||||
}
|
||||
#endif
|
||||
|
||||
base::FilePath App::GetPath(mate::Arguments* args, const std::string& name) {
|
||||
bool succeed = false;
|
||||
base::FilePath path;
|
||||
|
@ -370,7 +376,8 @@ mate::ObjectTemplateBuilder App::GetObjectTemplateBuilder(
|
|||
#if defined(OS_MACOSX)
|
||||
.SetMethod("hide", base::Bind(&Browser::Hide, browser))
|
||||
.SetMethod("show", base::Bind(&Browser::Show, browser))
|
||||
.SetMethod("isDarkModeEnabled", base::Bind(&Browser::IsDarkModeEnabled, browser))
|
||||
.SetMethod("isDarkModeEnabled",
|
||||
base::Bind(&Browser::IsDarkModeEnabled, browser))
|
||||
#endif
|
||||
#if defined(OS_WIN)
|
||||
.SetMethod("setUserTasks",
|
||||
|
|
|
@ -71,6 +71,10 @@ class App : public AtomBrowserClient::Delegate,
|
|||
// content::GpuDataManagerObserver:
|
||||
void OnGpuProcessCrashed(base::TerminationStatus exit_code) override;
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
void OnDarkModeChanged() override;
|
||||
#endif
|
||||
|
||||
// mate::Wrappable:
|
||||
mate::ObjectTemplateBuilder GetObjectTemplateBuilder(
|
||||
v8::Isolate* isolate) override;
|
||||
|
|
|
@ -181,4 +181,8 @@ void Browser::OnWindowAllClosed() {
|
|||
FOR_EACH_OBSERVER(BrowserObserver, observers_, OnWindowAllClosed());
|
||||
}
|
||||
|
||||
void Browser::DarkModeChanged() {
|
||||
FOR_EACH_OBSERVER(BrowserObserver, observers_, OnDarkModeChanged());
|
||||
}
|
||||
|
||||
} // namespace atom
|
||||
|
|
|
@ -145,6 +145,8 @@ class Browser : public WindowListObserver {
|
|||
// Request basic auth login.
|
||||
void RequestLogin(LoginHandler* login_handler);
|
||||
|
||||
void DarkModeChanged();
|
||||
|
||||
void AddObserver(BrowserObserver* obs) {
|
||||
observers_.AddObserver(obs);
|
||||
}
|
||||
|
|
|
@ -45,6 +45,8 @@ class BrowserObserver {
|
|||
// The browser requests HTTP login.
|
||||
virtual void OnLogin(LoginHandler* login_handler) {}
|
||||
|
||||
virtual void OnDarkModeChanged() {}
|
||||
|
||||
protected:
|
||||
virtual ~BrowserObserver() {}
|
||||
};
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
// Don't add the "Enter Full Screen" menu item automatically.
|
||||
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSFullScreenMenuItemEverywhere"];
|
||||
|
||||
// Add observer to monitor the system's Dark Mode theme.
|
||||
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(darkModeChanged:) name:@"AppleInterfaceThemeChangedNotification" object:nil];
|
||||
|
||||
atom::Browser::Get()->WillFinishLaunching();
|
||||
}
|
||||
|
||||
|
@ -59,4 +62,8 @@
|
|||
return flag;
|
||||
}
|
||||
|
||||
- (void)darkModeChanged:(NSNotification *)notify {
|
||||
atom::Browser::Get()->DarkModeChanged();
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -228,6 +228,10 @@ app.on('login', function(event, webContents, request, authInfo, callback) {
|
|||
|
||||
Emitted when the gpu process crashes.
|
||||
|
||||
### Event: 'dark-mode-changed' _OS X_
|
||||
|
||||
Emitted when the system's Dark Mode theme is toggled.
|
||||
|
||||
## Methods
|
||||
|
||||
The `app` object has the following methods:
|
||||
|
|
Loading…
Reference in a new issue