diff options
| author | Teddy Wing | 2016-12-02 17:02:10 -0500 |
|---|---|---|
| committer | Teddy Wing | 2016-12-02 17:02:10 -0500 |
| commit | 0c796e9e499db506c142b6b0e3ae6ef8b20d9ec8 (patch) | |
| tree | 95a486b4c5e4e1a9238c4d51a5305fb7534e5f3e | |
| parent | 8de5b8fc6a3d32a6900b5e010cc3b173ec5ecad6 (diff) | |
| download | Low-Battery-Yup-0c796e9e499db506c142b6b0e3ae6ef8b20d9ec8.tar.bz2 | |
Add a button to launch & quit the daemon
Add a new button to the UI that either launches or quits the daemon
depending on whether it's currently running.
The button is set as a "Toggle" type that will cycle between "Launch
Application" and "Quit Application" labels when clicked.
Depending on the button's state (0 or 1), it will either launch or quit
the daemon.
The button's initial state is set on the UI application's launch to
determine how it should read & what it should do.
| -rw-r--r-- | Low Battery Yup/AppDelegate.h | 2 | ||||
| -rw-r--r-- | Low Battery Yup/AppDelegate.m | 11 | ||||
| -rw-r--r-- | Low Battery Yup/en.lproj/MainMenu.xib | 99 |
3 files changed, 94 insertions, 18 deletions
diff --git a/Low Battery Yup/AppDelegate.h b/Low Battery Yup/AppDelegate.h index b120b65..0504102 100644 --- a/Low Battery Yup/AppDelegate.h +++ b/Low Battery Yup/AppDelegate.h @@ -16,6 +16,7 @@ IBOutlet NSWindow *window; IBOutlet ShortcutView *_shortcut_view; IBOutlet NSButton *_start_at_login; + IBOutlet NSButton *_launch_app; LaunchAgentManager *_launchagent; DaemonLauncher *_daemon_launcher; @@ -23,5 +24,6 @@ - (void)initializeShortcutView; - (IBAction)performStartAtLogin:(id)sender; +- (IBAction)launchOrQuitDaemon:(id)sender; @end diff --git a/Low Battery Yup/AppDelegate.m b/Low Battery Yup/AppDelegate.m index 9cbfade..69081ca 100644 --- a/Low Battery Yup/AppDelegate.m +++ b/Low Battery Yup/AppDelegate.m @@ -32,6 +32,7 @@ { [self initializeShortcutView]; [self performStartAtLogin:self]; + [_launch_app setState:[_daemon_launcher isRunning]]; } - (void)initializeShortcutView @@ -50,10 +51,18 @@ { if ([_start_at_login state] == NSOnState) { [_launchagent install]; - [_daemon_launcher launch]; } else { [_launchagent uninstall]; + } +} + +- (IBAction)launchOrQuitDaemon:(id)sender +{ + if ([_launch_app state]) { + [_daemon_launcher launch]; + } + else { [_daemon_launcher quit]; } } diff --git a/Low Battery Yup/en.lproj/MainMenu.xib b/Low Battery Yup/en.lproj/MainMenu.xib index 54cde7c..f8f0d64 100644 --- a/Low Battery Yup/en.lproj/MainMenu.xib +++ b/Low Battery Yup/en.lproj/MainMenu.xib @@ -1311,7 +1311,7 @@ <object class="NSCustomView" id="489226571"> <reference key="NSNextResponder" ref="439893737"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{84, 83}, {313, 19}}</string> + <string key="NSFrame">{{84, 100}, {313, 19}}</string> <reference key="NSSuperview" ref="439893737"/> <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="1065652370"/> @@ -1324,14 +1324,14 @@ <string key="NSFrame">{{82, 32}, {104, 18}}</string> <reference key="NSSuperview" ref="439893737"/> <reference key="NSWindow"/> - <reference key="NSNextKeyView"/> + <reference key="NSNextKeyView" ref="452223334"/> <string key="NSReuseIdentifierKey">_NS:9</string> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="508243847"> <int key="NSCellFlags">-2080374784</int> <int key="NSCellFlags2">268435456</int> <string key="NSContents">Start at login</string> - <object class="NSFont" key="NSSupport"> + <object class="NSFont" key="NSSupport" id="380350173"> <string key="NSName">LucidaGrande</string> <double key="NSSize">13</double> <int key="NSfFlags">1044</int> @@ -1354,6 +1354,31 @@ </object> <bool key="NSAllowsLogicalLayoutDirection">NO</bool> </object> + <object class="NSButton" id="452223334"> + <reference key="NSNextResponder" ref="439893737"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{242, 24}, {161, 32}}</string> + <reference key="NSSuperview" ref="439893737"/> + <reference key="NSWindow"/> + <reference key="NSNextKeyView"/> + <string key="NSReuseIdentifierKey">_NS:9</string> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="622792239"> + <int key="NSCellFlags">67108864</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">Launch Application</string> + <reference key="NSSupport" ref="380350173"/> + <string key="NSCellIdentifier">_NS:9</string> + <reference key="NSControlView" ref="452223334"/> + <int key="NSButtonFlags">-930988032</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents">Quit Application</string> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + <bool key="NSAllowsLogicalLayoutDirection">NO</bool> + </object> </array> <string key="NSFrameSize">{480, 185}</string> <reference key="NSSuperview"/> @@ -1371,7 +1396,7 @@ <object class="NSCustomObject" id="755631768"> <string key="NSClassName">NSFontManager</string> </object> - <object class="NSUserDefaultsController" id="152817957"> + <object class="NSUserDefaultsController" id="453441597"> <bool key="NSSharedInstance">YES</bool> </object> </array> @@ -2082,13 +2107,29 @@ <int key="connectionID">545</int> </object> <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">launchOrQuitDaemon:</string> + <reference key="source" ref="976324537"/> + <reference key="destination" ref="452223334"/> + </object> + <int key="connectionID">555</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">_launch_app</string> + <reference key="source" ref="976324537"/> + <reference key="destination" ref="452223334"/> + </object> + <int key="connectionID">556</int> + </object> + <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> <string key="label">value: values.StartAtLogin</string> <reference key="source" ref="1065652370"/> - <reference key="destination" ref="152817957"/> + <reference key="destination" ref="453441597"/> <object class="NSNibBindingConnector" key="connector"> <reference key="NSSource" ref="1065652370"/> - <reference key="NSDestination" ref="152817957"/> + <reference key="NSDestination" ref="453441597"/> <string key="NSLabel">value: values.StartAtLogin</string> <string key="NSBinding">value</string> <string key="NSKeyPath">values.StartAtLogin</string> @@ -2622,8 +2663,9 @@ <int key="objectID">372</int> <reference key="object" ref="439893737"/> <array class="NSMutableArray" key="children"> - <reference ref="489226571"/> <reference ref="1065652370"/> + <reference ref="489226571"/> + <reference ref="452223334"/> </array> <reference key="parent" ref="972006081"/> </object> @@ -3120,9 +3162,22 @@ </object> <object class="IBObjectRecord"> <int key="objectID">546</int> - <reference key="object" ref="152817957"/> + <reference key="object" ref="453441597"/> <reference key="parent" ref="0"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">553</int> + <reference key="object" ref="452223334"/> + <array class="NSMutableArray" key="children"> + <reference ref="622792239"/> + </array> + <reference key="parent" ref="439893737"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">554</int> + <reference key="object" ref="622792239"/> + <reference key="parent" ref="452223334"/> + </object> </array> </object> <dictionary class="NSMutableDictionary" key="flattenedProperties"> @@ -3272,6 +3327,8 @@ <string key="542.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="543.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="546.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="553.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="554.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="56.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="57.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -3291,25 +3348,29 @@ <nil key="activeLocalization"/> <dictionary class="NSMutableDictionary" key="localizations"/> <nil key="sourceID"/> - <int key="maxID">552</int> + <int key="maxID">559</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <array class="NSMutableArray" key="referencedPartialClassDescriptions"> <object class="IBPartialClassDescription"> <string key="className">AppDelegate</string> <string key="superclassName">NSObject</string> - <object class="NSMutableDictionary" key="actions"> - <string key="NS.key.0">performStartAtLogin:</string> - <string key="NS.object.0">id</string> - </object> - <object class="NSMutableDictionary" key="actionInfosByName"> - <string key="NS.key.0">performStartAtLogin:</string> - <object class="IBActionInfo" key="NS.object.0"> + <dictionary class="NSMutableDictionary" key="actions"> + <string key="launchOrQuitDaemon:">id</string> + <string key="performStartAtLogin:">id</string> + </dictionary> + <dictionary class="NSMutableDictionary" key="actionInfosByName"> + <object class="IBActionInfo" key="launchOrQuitDaemon:"> + <string key="name">launchOrQuitDaemon:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo" key="performStartAtLogin:"> <string key="name">performStartAtLogin:</string> <string key="candidateClassName">id</string> </object> - </object> + </dictionary> <dictionary class="NSMutableDictionary" key="outlets"> + <string key="_launch_app">NSButton</string> <string key="_shortcut_view">ShortcutView</string> <string key="_start_at_login">NSButton</string> <string key="customShortcutView">MASShortcutView</string> @@ -3317,6 +3378,10 @@ <string key="window">NSWindow</string> </dictionary> <dictionary class="NSMutableDictionary" key="toOneOutletInfosByName"> + <object class="IBToOneOutletInfo" key="_launch_app"> + <string key="name">_launch_app</string> + <string key="candidateClassName">NSButton</string> + </object> <object class="IBToOneOutletInfo" key="_shortcut_view"> <string key="name">_shortcut_view</string> <string key="candidateClassName">ShortcutView</string> |
