Skip to content

Commit df227cd

Browse files
author
Dominic Rodemer
committed
Refactored preferences window
1 parent c5a4cbc commit df227cd

File tree

7 files changed

+249
-189
lines changed

7 files changed

+249
-189
lines changed

src/Caffeine.xcodeproj/project.pbxproj

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
/* Begin PBXBuildFile section */
1010
F22DBAB1285DFE1C0058AF1F /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F22DBAB0285DFE1C0058AF1F /* IOKit.framework */; };
11-
F22DBAB7285E1B8D0058AF1F /* CAPreferencesWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = F22DBAB6285E1B8D0058AF1F /* CAPreferencesWindow.m */; };
11+
F22DBAB7285E1B8D0058AF1F /* CAPreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F22DBAB6285E1B8D0058AF1F /* CAPreferencesWindowController.m */; };
12+
F287BAA3287C02B600299CC0 /* CAPreferencesWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F287BAA1287C02B600299CC0 /* CAPreferencesWindowController.xib */; };
1213
F2E26BFC280B072000B6F9B2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F2E26BFB280B072000B6F9B2 /* Assets.xcassets */; };
1314
F2E26BFF280B072000B6F9B2 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F2E26BFD280B072000B6F9B2 /* MainMenu.xib */; };
1415
F2E26C01280B072000B6F9B2 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F2E26C00280B072000B6F9B2 /* main.m */; };
@@ -21,8 +22,9 @@
2122

2223
/* Begin PBXFileReference section */
2324
F22DBAB0285DFE1C0058AF1F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
24-
F22DBAB5285E1B8D0058AF1F /* CAPreferencesWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CAPreferencesWindow.h; sourceTree = "<group>"; };
25-
F22DBAB6285E1B8D0058AF1F /* CAPreferencesWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CAPreferencesWindow.m; sourceTree = "<group>"; };
25+
F22DBAB5285E1B8D0058AF1F /* CAPreferencesWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CAPreferencesWindowController.h; sourceTree = "<group>"; };
26+
F22DBAB6285E1B8D0058AF1F /* CAPreferencesWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CAPreferencesWindowController.m; sourceTree = "<group>"; };
27+
F287BAA2287C02B600299CC0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Caffeine/Base.lproj/CAPreferencesWindowController.xib; sourceTree = SOURCE_ROOT; };
2628
F2E26BF5280B072000B6F9B2 /* Caffeine.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Caffeine.app; sourceTree = BUILT_PRODUCTS_DIR; };
2729
F2E26BFB280B072000B6F9B2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
2830
F2E26BFE280B072000B6F9B2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
@@ -57,6 +59,16 @@
5759
name = Frameworks;
5860
sourceTree = "<group>";
5961
};
62+
F287BAA0287BFD5A00299CC0 /* WindowController */ = {
63+
isa = PBXGroup;
64+
children = (
65+
F22DBAB5285E1B8D0058AF1F /* CAPreferencesWindowController.h */,
66+
F22DBAB6285E1B8D0058AF1F /* CAPreferencesWindowController.m */,
67+
F287BAA1287C02B600299CC0 /* CAPreferencesWindowController.xib */,
68+
);
69+
name = WindowController;
70+
sourceTree = "<group>";
71+
};
6072
F2E26BEC280B072000B6F9B2 = {
6173
isa = PBXGroup;
6274
children = (
@@ -89,8 +101,7 @@
89101
children = (
90102
F2E26C0A280B076300B6F9B2 /* CAAppDelegate.h */,
91103
F2E26C09280B076300B6F9B2 /* CAAppDelegate.m */,
92-
F22DBAB5285E1B8D0058AF1F /* CAPreferencesWindow.h */,
93-
F22DBAB6285E1B8D0058AF1F /* CAPreferencesWindow.m */,
104+
F287BAA0287BFD5A00299CC0 /* WindowController */,
94105
);
95106
path = Classes;
96107
sourceTree = "<group>";
@@ -99,8 +110,8 @@
99110
isa = PBXGroup;
100111
children = (
101112
F2E26C35280C089100B6F9B2 /* Images */,
102-
F2E26BFB280B072000B6F9B2 /* Assets.xcassets */,
103113
F2E26BFD280B072000B6F9B2 /* MainMenu.xib */,
114+
F2E26BFB280B072000B6F9B2 /* Assets.xcassets */,
104115
F2E26C5F280C4B3500B6F9B2 /* Info.plist */,
105116
F2E26C02280B072000B6F9B2 /* Caffeine.entitlements */,
106117
);
@@ -187,6 +198,7 @@
187198
F2E26C45280C089100B6F9B2 /* active.png in Resources */,
188199
F2E26C42280C089100B6F9B2 /* inactive.png in Resources */,
189200
F2E26BFF280B072000B6F9B2 /* MainMenu.xib in Resources */,
201+
F287BAA3287C02B600299CC0 /* CAPreferencesWindowController.xib in Resources */,
190202
F2E26C3E280C089100B6F9B2 /* [email protected] in Resources */,
191203
F2E26C3F280C089100B6F9B2 /* [email protected] in Resources */,
192204
);
@@ -200,14 +212,22 @@
200212
buildActionMask = 2147483647;
201213
files = (
202214
F2E26C0B280B076300B6F9B2 /* CAAppDelegate.m in Sources */,
203-
F22DBAB7285E1B8D0058AF1F /* CAPreferencesWindow.m in Sources */,
215+
F22DBAB7285E1B8D0058AF1F /* CAPreferencesWindowController.m in Sources */,
204216
F2E26C01280B072000B6F9B2 /* main.m in Sources */,
205217
);
206218
runOnlyForDeploymentPostprocessing = 0;
207219
};
208220
/* End PBXSourcesBuildPhase section */
209221

210222
/* Begin PBXVariantGroup section */
223+
F287BAA1287C02B600299CC0 /* CAPreferencesWindowController.xib */ = {
224+
isa = PBXVariantGroup;
225+
children = (
226+
F287BAA2287C02B600299CC0 /* Base */,
227+
);
228+
name = CAPreferencesWindowController.xib;
229+
sourceTree = "<group>";
230+
};
211231
F2E26BFD280B072000B6F9B2 /* MainMenu.xib */ = {
212232
isa = PBXVariantGroup;
213233
children = (
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="20037" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
3+
<dependencies>
4+
<deployment identifier="macosx"/>
5+
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="20037"/>
6+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
7+
</dependencies>
8+
<objects>
9+
<customObject id="-2" userLabel="File's Owner" customClass="CAPreferencesWindowController">
10+
<connections>
11+
<outlet property="activateAtLaunchButton" destination="3RL-Ce-4Gn" id="00q-3B-IoB"/>
12+
<outlet property="deactivateOnManualSleepButton" destination="laH-Bo-r5z" id="aao-yU-mz3"/>
13+
<outlet property="durationButton" destination="5cj-zy-gga" id="iA8-EZ-2is"/>
14+
<outlet property="showAtLaunchButton" destination="40I-47-yxv" id="vr2-og-AnV"/>
15+
<outlet property="window" destination="6od-XL-ffW" id="AWO-IB-Mln"/>
16+
</connections>
17+
</customObject>
18+
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
19+
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
20+
<window title="Welcome to Caffeine" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="6od-XL-ffW" userLabel="First Time/Preferences">
21+
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
22+
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
23+
<rect key="contentRect" x="441" y="384" width="533" height="294"/>
24+
<rect key="screenRect" x="0.0" y="0.0" width="3360" height="1865"/>
25+
<value key="minSize" type="size" width="213" height="107"/>
26+
<view key="contentView" id="5EL-vG-hXz">
27+
<rect key="frame" x="0.0" y="0.0" width="533" height="294"/>
28+
<autoresizingMask key="autoresizingMask"/>
29+
<subviews>
30+
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="378" translatesAutoresizingMaskIntoConstraints="NO" id="RV0-Xj-HDk">
31+
<rect key="frame" x="134" y="218" width="382" height="56"/>
32+
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
33+
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="justified" id="okL-UW-aSb">
34+
<font key="font" metaFont="system"/>
35+
<string key="title">Caffeine is now running. You can find its icon in the right side of your menu bar. Click it to disable automatic sleep, click it again to enable automatic sleep.</string>
36+
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
37+
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
38+
</textFieldCell>
39+
</textField>
40+
<button verticalHuggingPriority="750" fixedFrame="YES" imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="HJi-gs-V6e">
41+
<rect key="frame" x="425" y="13" width="96" height="32"/>
42+
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
43+
<buttonCell key="cell" type="push" title="Close" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="zdD-ka-2e9">
44+
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
45+
<font key="font" metaFont="system"/>
46+
<string key="keyEquivalent" base64-UTF8="YES">
47+
DQ
48+
</string>
49+
</buttonCell>
50+
<connections>
51+
<action selector="closeButtonAction:" target="-2" id="ckN-11-qKg"/>
52+
</connections>
53+
</button>
54+
<imageView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zq6-gW-FWJ">
55+
<rect key="frame" x="20" y="178" width="96" height="96"/>
56+
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
57+
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSApplicationIcon" id="f73-79-LDr"/>
58+
</imageView>
59+
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="372" translatesAutoresizingMaskIntoConstraints="NO" id="FpZ-Hk-5nW">
60+
<rect key="frame" x="134" y="173" width="376" height="37"/>
61+
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
62+
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="justified" title="Right-click (or ⌘-click) the menu bar icon to show the Caffeine menu." id="hB9-Sr-Xlz">
63+
<font key="font" metaFont="systemBold"/>
64+
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
65+
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
66+
</textFieldCell>
67+
</textField>
68+
<button verticalHuggingPriority="750" fixedFrame="YES" imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GVv-6R-uwK">
69+
<rect key="frame" x="13" y="13" width="96" height="32"/>
70+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
71+
<buttonCell key="cell" type="push" title="Quit" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8XO-ec-vKo">
72+
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
73+
<font key="font" metaFont="system"/>
74+
</buttonCell>
75+
<connections>
76+
<action selector="quitButtonAction:" target="-2" id="Cct-XU-teM"/>
77+
</connections>
78+
</button>
79+
<button fixedFrame="YES" imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="40I-47-yxv">
80+
<rect key="frame" x="134" y="59" width="374" height="18"/>
81+
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
82+
<buttonCell key="cell" type="check" title="Show this message when starting Caffeine" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="1QK-7q-0g7">
83+
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
84+
<font key="font" metaFont="system"/>
85+
</buttonCell>
86+
<connections>
87+
<action selector="showAtLaunchButtonAction:" target="-2" id="hS7-U3-RwO"/>
88+
</connections>
89+
</button>
90+
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="SOc-yV-C6m">
91+
<rect key="frame" x="134" y="128" width="112" height="17"/>
92+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
93+
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Default duration:" id="IN5-46-D02">
94+
<font key="font" metaFont="system"/>
95+
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
96+
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
97+
</textFieldCell>
98+
</textField>
99+
<button fixedFrame="YES" imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3RL-Ce-4Gn">
100+
<rect key="frame" x="134" y="103" width="374" height="18"/>
101+
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
102+
<buttonCell key="cell" type="check" title="Activate when starting Caffeine" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="ac9-VB-gb2">
103+
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
104+
<font key="font" metaFont="system"/>
105+
</buttonCell>
106+
<connections>
107+
<action selector="activateAtLaunchButtonAction:" target="-2" id="p2H-B2-qo4"/>
108+
</connections>
109+
</button>
110+
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5cj-zy-gga">
111+
<rect key="frame" x="249" y="122" width="119" height="26"/>
112+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
113+
<popUpButtonCell key="cell" type="push" title="Indefinitely" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="pjP-3i-AkI" id="sqS-6w-ldP">
114+
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
115+
<font key="font" metaFont="menu"/>
116+
<menu key="menu" title="OtherViews" id="Ii1-Ui-bHj">
117+
<items>
118+
<menuItem title="Indefinitely" state="on" id="pjP-3i-AkI">
119+
<modifierMask key="keyEquivalentModifierMask"/>
120+
</menuItem>
121+
<menuItem title="Short (testing)" tag="-1" hidden="YES" id="MNW-wS-RS4">
122+
<modifierMask key="keyEquivalentModifierMask" option="YES"/>
123+
</menuItem>
124+
<menuItem title="1 minute" tag="1" hidden="YES" id="2me-21-BrY">
125+
<modifierMask key="keyEquivalentModifierMask"/>
126+
</menuItem>
127+
<menuItem title="5 minutes" tag="5" id="P2M-rU-Sxe">
128+
<modifierMask key="keyEquivalentModifierMask"/>
129+
</menuItem>
130+
<menuItem title="10 minutes" tag="10" id="u24-a0-IQA">
131+
<modifierMask key="keyEquivalentModifierMask"/>
132+
</menuItem>
133+
<menuItem title="15 minutes" tag="15" id="nqB-IC-4j5">
134+
<modifierMask key="keyEquivalentModifierMask"/>
135+
</menuItem>
136+
<menuItem title="30 minutes" tag="30" id="FOf-Vt-CNm">
137+
<modifierMask key="keyEquivalentModifierMask"/>
138+
</menuItem>
139+
<menuItem title="1 hour" tag="60" id="hVt-Kz-aJC">
140+
<modifierMask key="keyEquivalentModifierMask"/>
141+
</menuItem>
142+
<menuItem title="2 hours" tag="120" id="I9v-fY-QqI">
143+
<modifierMask key="keyEquivalentModifierMask"/>
144+
</menuItem>
145+
<menuItem title="5 hours" tag="300" id="CfK-Nf-en1">
146+
<modifierMask key="keyEquivalentModifierMask"/>
147+
</menuItem>
148+
</items>
149+
</menu>
150+
</popUpButtonCell>
151+
<connections>
152+
<action selector="durationButtonAction:" target="-2" id="zej-vi-LIO"/>
153+
</connections>
154+
</popUpButton>
155+
<button fixedFrame="YES" imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="laH-Bo-r5z">
156+
<rect key="frame" x="134" y="81" width="374" height="18"/>
157+
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
158+
<buttonCell key="cell" type="check" title="Dectivate when device manually goes to sleep" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="zrA-k4-Kvx">
159+
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
160+
<font key="font" metaFont="system"/>
161+
</buttonCell>
162+
<connections>
163+
<action selector="deactivateOnManualSleepButtonAction:" target="-2" id="OJP-dD-1PC"/>
164+
</connections>
165+
</button>
166+
</subviews>
167+
</view>
168+
<point key="canvasLocation" x="-5243" y="-203"/>
169+
</window>
170+
</objects>
171+
<resources>
172+
<image name="NSApplicationIcon" width="32" height="32"/>
173+
</resources>
174+
</document>

0 commit comments

Comments
 (0)