Browse Source

Add app.getLoginItemStatus API

Kevin Sawicki 8 years ago
parent
commit
b55f55cfc4
3 changed files with 14 additions and 0 deletions
  1. 2 0
      atom/browser/api/atom_api_app.cc
  2. 4 0
      atom/browser/browser.h
  3. 8 0
      atom/browser/browser_mac.mm

+ 2 - 0
atom/browser/api/atom_api_app.cc

@@ -529,6 +529,8 @@ void App::BuildPrototype(
                  base::Bind(&Browser::SetUserActivity, browser))
       .SetMethod("getLoginItemLaunchStatus",
                  base::Bind(&Browser::GetLoginItemLaunchStatus, browser))
+      .SetMethod("getLoginItemStatus",
+                 base::Bind(&Browser::GetLoginItemStatus, browser))
 #endif
 #if defined(OS_WIN)
       .SetMethod("setUserTasks", base::Bind(&Browser::SetUserTasks, browser))

+ 4 - 0
atom/browser/browser.h

@@ -135,7 +135,11 @@ class Browser : public WindowListObserver {
   // Set docks' icon.
   void DockSetIcon(const gfx::Image& image);
 
+  // Get login item status of current app launch
   v8::Local<v8::Value> GetLoginItemLaunchStatus(mate::Arguments* args);
+
+  // Get login item status of app
+  v8::Local<v8::Value> GetLoginItemStatus(mate::Arguments* args);
 #endif  // defined(OS_MACOSX)
 
 #if defined(OS_WIN)

+ 8 - 0
atom/browser/browser_mac.mm

@@ -158,6 +158,14 @@ v8::Local<v8::Value> Browser::GetLoginItemLaunchStatus(mate::Arguments* args) {
   return dict.GetHandle();
 }
 
+v8::Local<v8::Value> Browser::GetLoginItemStatus(mate::Arguments* args) {
+  bool hidden = false;
+  mate::Dictionary dict = mate::Dictionary::CreateEmpty(args->isolate());
+  dict.Set("loginItem", base::mac::CheckLoginItemStatus(&hidden));
+  dict.Set("hidden", hidden);
+  return dict.GetHandle();
+}
+
 std::string Browser::GetExecutableFileVersion() const {
   return brightray::GetApplicationVersion();
 }