aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2016-12-02 17:02:10 -0500
committerTeddy Wing2016-12-02 17:02:10 -0500
commit0c796e9e499db506c142b6b0e3ae6ef8b20d9ec8 (patch)
tree95a486b4c5e4e1a9238c4d51a5305fb7534e5f3e
parent8de5b8fc6a3d32a6900b5e010cc3b173ec5ecad6 (diff)
downloadLow-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.h2
-rw-r--r--Low Battery Yup/AppDelegate.m11
-rw-r--r--Low Battery Yup/en.lproj/MainMenu.xib99
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>