Chameleon Applications

Chameleon Applications Commit Details

Date:2010-01-21 00:08:37 (14 years 2 months ago)
Author:Rekursor
Commit:17
Parents: 16
Message:Better configuration management: now using a real preferences proplist saved in /Library/Preferences/com.chameleon.prefPane.plist, thus permitting to keep computer settings between to updates of the control panel. Necessary for further freeze functionalities. first increment for freeze has been achieved, but freeze is not yet fully implemented.
Changes:
M/trunk/ChameleonPrefPane/Sources/property_list.cpp
M/trunk/ChameleonPrefPane/Sources/ChameleonPrefPane.h
M/trunk/ChameleonPrefPane/Sources/ChameleonPrefPane.mm
M/trunk/ChameleonPrefPane/Sources/property_list.h
M/trunk/ChameleonPrefPane/English.lproj/Chameleon.xib
M/trunk/ChameleonPrefPane/README

File differences

trunk/ChameleonPrefPane/Sources/property_list.cpp
214214
215215
216216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
217233
218234
219235
......
225241
226242
227243
228
229
230
231
232
233
244
245
234246
235247
236248
......
250262
251263
252264
253
254
255
256
257
258
265
266
259267
260268
261269
if (_proplistRef) CFRelease(_proplistRef);
}
bool PropertyList::chmodFile(const char * path, const char * chmodMask,
AuthorizationRef auth, AuthorizationFlags flags)
{
if (!path || !*path) return false;
if (auth)
{ // give write temporary write rights to the file
std::string args = chmodMask;
args += ' ';
args += path;
if(!executePrivilegedCmd(auth, "/bin/chmod", args.c_str(), flags))
return false;
}
return true;
}
/****************************************************************************/
/**
if (!path || !*path) return false;
if (auth)
{ // give write temporary write rights to the file
std::string args = " 0777 "+ _propFilePath;
if(!executePrivilegedCmd(auth, "/bin/chmod", args.c_str(), flags))
return false;
}
// give write temporary write rights to the file
if (!chmodFile(path,"0777", auth, flags)) return false;
_propFilePath = path;
if (_proplistRef)
ret= true;
}
if (auth)
{ // give write temporary write rights to the file
std::string args = " 0644 "+ _propFilePath;
if(!executePrivilegedCmd(auth, "/bin/chmod", args.c_str(), flags))
ret= false;
}
// restore rights
ret= chmodFile(path,"0644", auth, flags);
return ret;
}
trunk/ChameleonPrefPane/Sources/ChameleonPrefPane.h
2323
2424
2525
26
27
2628
2729
28
2930
30
3131
3232
3333
......
4242
4343
4444
45
46
4547
4648
4749
......
5153
5254
5355
56
57
5458
55
59
5660
5761
5862
IBOutlet NSButton *mRestartButton;
IBOutlet NSButton *mSwapHD01;
IBOutlet NSButton *mSwapHD02;
IBOutlet NSButton *mFreezeParts;
IBOutlet NSButton *mInjectFrozenParts;
IBOutlet NSTextField*mStatusText;
IBOutlet NSBox*mOptions;
IBOutlet SFAuthorizationView *authView;
IBOutlet NSButton *touchButton;
NSImage *mMacOSXImage;
NSImage *mWindowsImage;
- (void)awakeFromNib;
- (void)initBootConfig;
- (id) getImageResource: (NSString *) str ofType: (NSString*) sType;
- (void) loadPreferences;
-(bool) savePreferences: (NSDictionary*) dict;
//- (void) mainViewDidLoad;
- (void)tableViewSelectionDidChange:(NSNotification *)notification;
- (IBAction)onShutdown: (id)sender;
- (IBAction)onSleep: (id)sender;
- (IBAction)onSwapHD: (id)sender;
- (IBAction)onUseFrozenParts: (id)sender;
- (IBAction)onInjectPartsToFreeze: (id)sender;
- (BOOL)isUnlocked;
- (bool)isUnlocked;
- (void) refreshLockStates;
- (void) doSwapHD: (int) val save: (bool) doSave src: (int)isrc dst: (int) idst;
- (void)tableViewSelectionDidChange:(NSNotification *)notification;
trunk/ChameleonPrefPane/Sources/ChameleonPrefPane.mm
2828
2929
3030
31
32
33
34
35
36
3137
3238
3339
......
6268
6369
6470
71
72
6573
6674
75
6776
68
77
6978
7079
7180
......
8089
8190
8291
83
92
93
94
8495
96
8597
86
87
88
89
90
91
92
98
9399
94
100
101
102
103
104
105
106
95107
96
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
97141
142
98143
99144
100145
......
108153
109154
110155
111
112
156
113157
114158
115159
......
121165
122166
123167
168
124169
125170
126171
......
152197
153198
154199
155
200
156201
157202
158203
......
192237
193238
194239
195
240
196241
197242
198243
199
244
200245
201246
202247
......
259304
260305
261306
262
263
264
265
266
267
268
269
307
308
309
310
311
270312
271313
272314
......
278320
279321
280322
281
282
323
324
283325
326
327
328
329
330
331
332
284333
285334
335
336
337
338
339
286340
287341
288342
static const char* const kDefaultPartition = "Default Partition";
static const char* const kHidePartition = "Hide Partition";
static const char* const kRenamePartition = "Rename Partition";
static const NSString* const kPreferencesFilePath = @"/Library/Preferences/com.chameleon.prefPane.plist";
static const NSString* const keyForceBootConfigPath = @"forceBootConfigPath";
static const NSString* const keySwapHD01 = @"swapHD01";
static const NSString* const keySwapHD02 = @"swapHD02";
static const NSString* const keyUseFrozenParts = @"useFrozenParts";
//--------------------------------------------------------------------------
// Static file variables
//--------------------------------------------------------------------------
[mSwapHD01 setEnabled:[self isUnlocked]];
[mSwapHD02 setEnabled:[self isUnlocked]];
[mStatusText setEnabled:[self isUnlocked]];
[mFreezeParts setEnabled:[self isUnlocked]];
[mInjectFrozenParts setEnabled:[self isUnlocked]];
}
//--------------------------------------------------------------------------
- (BOOL)isUnlocked
- (bool)isUnlocked
{
return [authView authorizationState] == SFAuthorizationViewUnlockedState;
}
img = [[NSImage alloc] initWithContentsOfFile: sRes];
return img;
}
- (bool) loadOptionsDict
//--------------------------------------------------------------------------
-(bool) savePreferences: (NSDictionary*) dict
{
std::string sPath = [kPreferencesFilePath UTF8String];
NSBundle * b = [NSBundle bundleForClass:[self class]];
if(mOptionsPlistPath !=nil)[mOptionsDict dealloc];
mOptionsPlistPath = [[NSString alloc] initWithString: [b pathForResource: @"Data" ofType:@"plist"]];
NSMutableDictionary * d = [NSMutableDictionary dictionaryWithContentsOfFile: mOptionsPlistPath];
if(mOptionsDict !=nil)[mOptionsDict dealloc];
mOptionsDict = [[NSMutableDictionary alloc] initWithCapacity:64 ];
[mOptionsDict addEntriesFromDictionary: d];
if(dict==nil || sPath.length()==0) return false;
//if (d != nil) [d dealloc];
AuthorizationRef auth = [self isUnlocked] ? [[authView authorization] authorizationRef] : NULL;
PropertyList::chmodFile(sPath.c_str(), "0777", auth);
[dict writeToFile:kPreferencesFilePath atomically:YES];
PropertyList::chmodFile(sPath.c_str(), "0644", auth);
return true;
}
return (mOptionsDict != nil) ? true : false;
//--------------------------------------------------------------------------
- (void) loadPreferences
{
id oldGlobalPreferences = [ [NSDictionary dictionaryWithContentsOfFile:
kPreferencesFilePath ] retain];
if (oldGlobalPreferences!=nil)
{
[mSwapHD01 setIntValue: [[oldGlobalPreferences objectForKey:keySwapHD01] intValue]];
[mSwapHD02 setIntValue: [[oldGlobalPreferences objectForKey:keySwapHD02] intValue]];
[mFreezeParts setIntValue: [[oldGlobalPreferences objectForKey: keyUseFrozenParts] intValue] ];
}
else
{ // Create a preference plist file with Defaults values
[mSwapHD01 setIntValue: 0];
[mSwapHD02 setIntValue: 0];
[mFreezeParts setIntValue: 0];
// Initialize defaults
oldGlobalPreferences = [[NSMutableDictionary alloc] init];
[oldGlobalPreferences setObject: [[NSNumber alloc] initWithBool: false] forKey: keySwapHD01];
[oldGlobalPreferences setObject: [[NSNumber alloc] initWithBool: false] forKey: keySwapHD02];
[oldGlobalPreferences setObject:[[NSNumber alloc] initWithBool: false] forKey: keyUseFrozenParts];
// Save the preferences file
[ self savePreferences:oldGlobalPreferences ];
}
mOptionsDict = [[NSMutableDictionary alloc] init];
[mOptionsDict addEntriesFromDictionary:oldGlobalPreferences];
[mOptionsDict retain];
[oldGlobalPreferences release];
}
//--------------------------------------------------------------------------
- (id) init
{
mUnknownImage = [self getImageResource: @"Chameleon" ofType: @"tiff"];
// Retrieve the Data.plist config
if (![self loadOptionsDict]) NSLog(@"Error reading plist: %@", mOptionsPlistPath);
// Retrieve the com.chameleon.prefPane.plist config
return self;
}
if(ft)
{
ft=false;
[self loadPreferences];
[self initBootConfig];
}
}
CFStringRef errorString=NULL;
bool cont =true;
id sForcedPath = [mOptionsDict valueForKey: @"forceBootConfigPath"];
id sForcedPath = [mOptionsDict valueForKey: keyForceBootConfigPath];
const char * szForcedPath = sForcedPath!=nil ? [sForcedPath UTF8String] : NULL;
if (szForcedPath && *szForcedPath)
{
partExtractor->renamedPartitions(prop->getStringForKey(kRenamePartition));
// partExtractor->resetSwapping();
id val = [mOptionsDict valueForKey:@"swapHD01"];
id val = [mOptionsDict valueForKey: keySwapHD01];
[mSwapHD01 setIntValue: [val intValue] ];
[self doSwapHD: [val boolValue] save: false src:0 dst:1];
val = [mOptionsDict valueForKey:@"swapHD02"];
val = [mOptionsDict valueForKey: keySwapHD02];
[mSwapHD02 setIntValue: [val intValue] ];
[self doSwapHD: [val boolValue] save: false src:0 dst:2];
if(doSave)
{
if ( [self loadOptionsDict] )
{
if (isrc==0 && idst==1)
[mOptionsDict setObject: [NSNumber numberWithBool: val ? true : false] forKey:@"swapHD01"];
if (isrc==0 && idst==2)
[mOptionsDict setObject: [NSNumber numberWithBool: val ? true : false] forKey:@"swapHD02"];
[mOptionsDict writeToFile:mOptionsPlistPath atomically:YES];
}
if (isrc==0 && idst==1)
[mOptionsDict setObject: [NSNumber numberWithBool: val ? true : false] forKey: keySwapHD01];
if (isrc==0 && idst==2)
[mOptionsDict setObject: [NSNumber numberWithBool: val ? true : false] forKey: keySwapHD02];
[ self savePreferences:mOptionsDict ];
}
[mPartitionsTable reloadData];
- (IBAction)onSwapHD: (id)sender
{
partExtractor->resetSwapping();
[self doSwapHD: !![mSwapHD01 intValue] save:true src:0 dst:1];
[self doSwapHD: !![mSwapHD02 intValue] save:true src:0 dst:2];
[self doSwapHD: [mSwapHD01 intValue] save:true src:0 dst:1];
[self doSwapHD: [mSwapHD02 intValue] save:true src:0 dst:2];
}
//--------------------------------------------------------------------------
- (IBAction)onUseFrozenParts: (id)sender
{
bool val = !![sender intValue];
[mOptionsDict setObject: [NSNumber numberWithBool: val] forKey: keyUseFrozenParts];
[self savePreferences :mOptionsDict];
}
//--------------------------------------------------------------------------
- (IBAction)onInjectPartsToFreeze: (id)sender
{
// TODO generate the parts list in preferences proplist
}
//--------------------------------------------------------------------------
// following DieBuch recommendation : using applescript and system events (thanks!):
- (IBAction)onRestart: (id)sender
{
trunk/ChameleonPrefPane/Sources/property_list.h
4343
4444
4545
46
47
4648
4749
4850
return _propFilePath.c_str();
}
static bool chmodFile(const char * path, const char * chmodMask,
AuthorizationRef auth, AuthorizationFlags flags=kAuthorizationFlagDefaults);
private:
CFPropertyListRef _proplistRef;
CFURLRef _CFURLRef;
trunk/ChameleonPrefPane/README
77
88
99
10
11
12
1013
1114
1215
13
16
1417
1518
1619
......
1821
1922
2023
21
22
23
24
Double click on the panel file to install the resource
Configuration:
The persistent configuration file is a all users level preferences property list
located in In /Library/Preferences/com.chameleon.prefPane.plist.
The swap diskk fix option might be use if your disk order from chameleon is different from what diskutil list returns
Idealy we should not need this fix, but as for now, I don't know another way to do it
In the bundle resources folder, in Data.plist
In /Library/Preferences/com.chameleon.prefPane.plist:
you can insert a 'forceBootConfigPath' key with your com.apple.Boot,plist file path:
So if automatic detection does not work, then force your com.apple.Boot.plist path here.
If the panel sees your com.apple.boot.plist in the status box, but the boot selection
seem to have no effect, it might be that you have more than one bootConfig file
and that the chameleon booter does not load the one that the panel selected,
see upper to force the bootConfig to match the one loaded by the chameleon booter.
see upper to force the bootConfig to match the one loaded by the chameleon booter.
trunk/ChameleonPrefPane/English.lproj/Chameleon.xib
11
2
2
33
44
5
6
7
8
5
6
7
8
9
10
11
12
913
1014
11
15
1216
1317
1418
......
1620
1721
1822
19
23
2024
2125
2226
......
3943
4044
4145
42
46
4347
4448
4549
4650
47
51
4852
4953
5054
......
6165
6266
6367
64
68
6569
6670
6771
6872
6973
7074
71
75
7276
7377
7478
7579
7680
7781
78
82
7983
8084
8185
......
8488
8589
8690
87
91
8892
8993
9094
......
9599
96100
97101
98
102
99103
100104
101105
102106
103
107
104108
105109
106110
107111
108112
109113
110
114
111115
112116
113117
......
116120
117121
118122
119
123
120124
121125
122126
......
131135
132136
133137
134
138
135139
136140
137141
......
161165
162166
163167
164
168
165169
166170
167171
......
174178
175179
176180
177
181
178182
179183
180184
181185
182186
183
184
185
187
188
189
186190
187191
188192
......
222226
223227
224228
225
226
227
229
230
231
228232
229233
230234
......
547551
548552
549553
550
551
552
554
555
556
553557
554558
555559
......
575579
576580
577581
578
579
580
582
583
584
581585
582586
583587
......
602606
603607
604608
605
606
609
610
607611
608612
609613
......
614618
615619
616620
617
621
618622
623
624
619625
620626
621627
622628
629
623630
624631
625
632
626633
627634
628635
......
636643
637644
638645
639
646
640647
641648
642649
......
646653
647654
648655
649
656
650657
651658
652659
......
664671
665672
666673
667
674
668675
669676
670677
......
678685
679686
680687
681
688
682689
683690
684691
......
698705
699706
700707
701
708
702709
703710
704711
......
716723
717724
718725
719
720
726
721727
722728
723729
......
726732
727733
728734
729
735
730736
731737
732738
......
745751
746752
747753
754
748755
749756
750757
751758
752
759
753760
754761
755762
......
770777
771778
772779
773
780
774781
782
775783
776784
777785
778786
779
787
780788
781789
782790
......
789797
790798
791799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
792844
793
845
794846
847
795848
796849
797
850
798851
799852
853
800854
801855
802856
......
821875
822876
823877
824
878
879
825880
826881
827882
828883
829884
830885
831
886
832887
833888
834889
835890
836891
837892
838
893
839894
840895
841896
......
844899
845900
846901
847
902
848903
849904
850905
......
10131068
10141069
10151070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
10161103
10171104
10181105
10191106
10201107
10211108
1022
1023
1024
1109
10251110
10261111
10271112
10281113
10291114
10301115
1031
1032
1116
1117
10331118
10341119
10351120
10361121
1037
1122
10381123
10391124
10401125
......
10441129
10451130
10461131
1047
1132
10481133
10491134
10501135
......
10601145
10611146
10621147
1063
1148
10641149
10651150
10661151
10671152
10681153
1069
1154
10701155
10711156
10721157
......
11021187
11031188
11041189
1190
11051191
1106
11071192
11081193
11091194
......
12691354
12701355
12711356
1357
1358
12721359
12731360
12741361
......
13281415
13291416
13301417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
13311446
13321447
13331448
13341449
1335
1450
13361451
1337
1338
13391452
13401453
13411454
......
13481461
13491462
13501463
1351
13521464
1465
13531466
13541467
13551468
......
13821495
13831496
13841497
1498
1499
1500
1501
1502
13851503
13861504
13871505
......
13981516
13991517
14001518
1401
1402
14031519
14041520
14051521
......
14101526
14111527
14121528
1529
14131530
1414
14151531
1416
1417
1418
1532
1533
1534
14191535
14201536
14211537
......
14371553
14381554
14391555
1440
1441
1556
14421557
14431558
14441559
......
14471562
14481563
14491564
1450
1451
1565
14521566
14531567
14541568
......
14741588
14751589
14761590
1591
1592
1593
1594
1595
1596
1597
1598
14771599
1478
1600
1601
1602
1603
1604
14791605
14801606
14811607
......
14891615
14901616
14911617
1492
1493
1494
1618
14951619
14961620
14971621
......
14991623
15001624
15011625
1502
1503
1504
1626
15051627
15061628
15071629
15081630
15091631
1510
1632
15111633
15121634
15131635
15141636
15151637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
15161657
15171658
15181659
15191660
1520
1661
15211662
1663
15221664
15231665
15241666
15251667
1668
15261669
15271670
15281671
......
15301673
15311674
15321675
1676
1677
15331678
15341679
15351680
15361681
1537
1682
15381683
15391684
15401685
1686
1687
15411688
15421689
15431690
......
15491696
15501697
15511698
1552
15531699
15541700
15551701
15561702
15571703
1704
1705
15581706
15591707
15601708
......
15661714
15671715
15681716
1569
15701717
15711718
15721719
1573
1574
1720
1721
15751722
15761723
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
15931724
15941725
15951726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
15961740
15971741
15981742
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1050</int>
<string key="IBDocument.SystemVersion">9L30</string>
<string key="IBDocument.InterfaceBuilderVersion">677</string>
<string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<string key="IBDocument.SystemVersion">10C540</string>
<string key="IBDocument.InterfaceBuilderVersion">740</string>
<string key="IBDocument.AppKitVersion">1038.25</string>
<string key="IBDocument.HIToolboxVersion">458.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">740</string>
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="6"/>
<integer value="203"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<object class="NSArray" key="dict.sortedKeys" id="0">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{176, 715}, {668, 368}}</string>
<int key="NSWTFlags">1081606144</int>
<string type="base64-UTF8" key="NSWindowTitle">PDwgZG8gbm90IGxvY2FsaXplID4+A</string>
<string key="NSWindowTitle">&lt;&lt; do not localize &gt;&gt;</string>
<string key="NSWindowClass">NSWindow</string>
<object class="NSMutableString" key="NSViewClass">
<characters key="NS.bytes">View</characters>
</object>
<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
<string key="NSWindowContentMinSize">{224.664, 10}</string>
<object class="NSView" key="NSWindowView" id="1037298196">
<reference key="NSNextResponder"/>
<object class="NSTabView" id="869599070">
<reference key="NSNextResponder" ref="1037298196"/>
<int key="NSvFlags">36</int>
<string key="NSFrame">{{-3.5, 53}, {674, 309}}</string>
<string key="NSFrame">{{-7, 53}, {683, 309}}</string>
<reference key="NSSuperview" ref="1037298196"/>
<object class="NSMutableArray" key="NSTabViewItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTabViewItem" id="210384195">
<string key="NSIdentifier">1</string>
<object class="NSView" key="NSView" id="389526238">
<reference key="NSNextResponder" ref="869599070"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTextField" id="372541434">
<reference key="NSNextResponder" ref="389526238"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{498, 224}, {147, 19}}</string>
<string key="NSFrame">{{498, 231}, {147, 19}}</string>
<reference key="NSSuperview" ref="389526238"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="98357325">
<string key="NSContents">V1.0 b8, by Rekursor</string>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">1.100000e+01</double>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<reference key="NSControlView" ref="372541434"/>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor" id="493236453">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4zODc1NDY5NiAwLjM5MDQ2NjI3IDAuNDEzMDQzNDcAA</bytes>
<bytes key="NSRGB">MC4zODc1NDY5NjczIDAuMzkwNDY2Mjc0MyAwLjQxMzA0MzQ3ODMAA</bytes>
</object>
</object>
</object>
<object class="NSButton" id="1064169092">
<reference key="NSNextResponder" ref="389526238"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{561, 34}, {91, 32}}</string>
<string key="NSFrame">{{560, 35}, {91, 32}}</string>
<reference key="NSSuperview" ref="389526238"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="80923813">
<string key="NSContents">Shutdown</string>
<object class="NSFont" key="NSSupport" id="930899267">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">1.300000e+01</double>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="1064169092"/>
<object class="NSTextField" id="756755885">
<reference key="NSNextResponder" ref="389526238"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{498, 76}, {147, 140}}</string>
<string key="NSFrame">{{498, 83}, {147, 140}}</string>
<reference key="NSSuperview" ref="389526238"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="622951162">
<object class="NSTableView" id="830282976">
<reference key="NSNextResponder" ref="729666351"/>
<int key="NSvFlags">8448</int>
<string key="NSFrameSize">{471, 215}</string>
<string key="NSFrameSize">{471, 221}</string>
<reference key="NSSuperview" ref="729666351"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="4756718">
<object class="_NSCornerView" key="NSCornerView" id="447791831">
<reference key="NSNextResponder" ref="303493593"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-26, 0}, {16, 17}}</string>
<string key="NSFrame">{{446, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="303493593"/>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="1059690284">
<double key="NSWidth">3.600000e+01</double>
<double key="NSMinWidth">1.000000e+01</double>
<double key="NSMaxWidth">3.402823e+38</double>
<double key="NSWidth">36</double>
<double key="NSMinWidth">10</double>
<double key="NSMaxWidth">3.4028234663852886e+38</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSTableView" ref="830282976"/>
</object>
<object class="NSTableColumn" id="415322677">
<double key="NSWidth">1.980000e+02</double>
<double key="NSMinWidth">4.000000e+01</double>
<double key="NSMaxWidth">1.000000e+03</double>
<double key="NSWidth">198</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">67110912</int>
<reference key="NSTableView" ref="830282976"/>
</object>
<object class="NSTableColumn" id="861957185">
<double key="NSWidth">8.400000e+01</double>
<double key="NSMinWidth">1.000000e+01</double>
<double key="NSMaxWidth">3.402823e+38</double>
<double key="NSWidth">84</double>
<double key="NSMinWidth">10</double>
<double key="NSMaxWidth">3.4028229999999999e+38</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">134219776</int>
<string key="NSHeaderToolTip">Name Displayed on the bootable partion during Chameleon boot</string>
</object>
<object class="NSTableColumn" id="484280519">
<double key="NSWidth">1.410000e+02</double>
<double key="NSMinWidth">4.000000e+01</double>
<double key="NSMaxWidth">1.000000e+03</double>
<double key="NSWidth">141</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSTableView" ref="830282976"/>
</object>
</object>
<double key="NSIntercellSpacingWidth">3.000000e+00</double>
<double key="NSIntercellSpacingHeight">2.000000e+00</double>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<reference key="NSBackgroundColor" ref="694251928"/>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">3.200000e+01</double>
<double key="NSRowHeight">32</double>
<int key="NSTvFlags">-692060160</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
</object>
</object>
<string key="NSFrame">{{1, 17}, {471, 215}}</string>
<string key="NSFrame">{{1, 17}, {471, 221}}</string>
<reference key="NSSuperview" ref="303493593"/>
<reference key="NSNextKeyView" ref="830282976"/>
<reference key="NSDocView" ref="830282976"/>
<reference key="NSSuperview" ref="303493593"/>
<reference key="NSTarget" ref="303493593"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">9.242424e-01</double>
<double key="NSPercent">0.9242424242424242</double>
</object>
<object class="NSScroller" id="94292441">
<reference key="NSNextResponder" ref="303493593"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="303493593"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">9.957716e-01</double>
<double key="NSPercent">0.99577167019027479</double>
</object>
<object class="NSClipView" id="216647119">
<reference key="NSNextResponder" ref="303493593"/>
</object>
<reference ref="447791831"/>
</object>
<string key="NSFrame">{{17, 10}, {473, 233}}</string>
<string key="NSFrame">{{17, 11}, {473, 239}}</string>
<reference key="NSSuperview" ref="389526238"/>
<reference key="NSNextKeyView" ref="729666351"/>
<int key="NSsFlags">562</int>
<object class="NSButton" id="1032245036">
<reference key="NSNextResponder" ref="389526238"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{493, 2}, {158, 32}}</string>
<string key="NSFrame">{{493, 3}, {158, 32}}</string>
<reference key="NSSuperview" ref="389526238"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="41430622">
<object class="NSButton" id="158463244">
<reference key="NSNextResponder" ref="389526238"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{492, 34}, {67, 32}}</string>
<string key="NSFrame">{{493, 35}, {67, 32}}</string>
<reference key="NSSuperview" ref="389526238"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="556998537">
</object>
</object>
</object>
<string key="NSFrame">{{10, 33}, {654, 263}}</string>
<reference key="NSSuperview" ref="869599070"/>
<string key="NSFrame">{{10, 33}, {663, 263}}</string>
</object>
<string key="NSLabel">Select Boot Partition</string>
<reference key="NSColor" ref="1061310622"/>
<object class="NSTabViewItem" id="1039429426">
<string key="NSIdentifier">2</string>
<object class="NSView" key="NSView" id="451295758">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder" ref="869599070"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{12, 41}, {123, 18}}</string>
<reference key="NSSuperview" ref="173833403"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1062772183">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">131072</int>
<string type="base64-UTF8" key="NSContents">U3dhcCBkaXNrcyAwPC0+MQ</string>
<string key="NSContents">Swap disks 0&lt;-&gt;1</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="1033017990"/>
<int key="NSButtonFlags">1211912703</int>
<object class="NSButton" id="249705860">
<reference key="NSNextResponder" ref="173833403"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{12, 21}, {123, 18}}</string>
<string key="NSFrame">{{138, 41}, {123, 18}}</string>
<reference key="NSSuperview" ref="173833403"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="277682141">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">131072</int>
<string type="base64-UTF8" key="NSContents">U3dhcCBkaXNrcyAwPC0+Mg</string>
<string key="NSContents">Swap disks 0&lt;-&gt;2</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="249705860"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="367976317">
<reference key="NSNextResponder" ref="173833403"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{321, 41}, {139, 18}}</string>
<reference key="NSSuperview" ref="173833403"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="662766703">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">131072</int>
<string key="NSContents">Use Freezed Parts List</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="367976317"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="183935025"/>
<reference key="NSAlternateImage" ref="731537593"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="523866218">
<reference key="NSNextResponder" ref="173833403"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{461, 35}, {159, 28}}</string>
<reference key="NSSuperview" ref="173833403"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="763684145">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134348800</int>
<string key="NSContents">Inject Parts in Freeze File</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="523866218"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
</object>
<string key="NSFrame">{{1, 1}, {151, 75}}</string>
<string key="NSFrame">{{1, 1}, {636, 75}}</string>
<reference key="NSSuperview" ref="77485843"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
</object>
</object>
<string key="NSFrame">{{14, 160}, {153, 91}}</string>
<string key="NSFrame">{{19, 166}, {638, 91}}</string>
<reference key="NSSuperview" ref="451295758"/>
<bool key="NSViewIsLayerTreeHost">YES</bool>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
<bool key="NSTransparent">NO</bool>
</object>
</object>
<string key="NSFrame">{{10, 33}, {654, 263}}</string>
<string key="NSFrame">{{10, 33}, {663, 263}}</string>
<reference key="NSSuperview" ref="869599070"/>
</object>
<string key="NSLabel">Settings</string>
<reference key="NSColor" ref="1061310622"/>
<reference key="NSTabView" ref="869599070"/>
</object>
</object>
<reference key="NSSelectedTabViewItem" ref="210384195"/>
<reference key="NSSelectedTabViewItem" ref="1039429426"/>
<reference key="NSFont" ref="930899267"/>
<int key="NSTvFlags">0</int>
<bool key="NSAllowTruncatedLabels">YES</bool>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="389526238"/>
<reference ref="451295758"/>
</object>
</object>
</object>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
<string key="NSMinSize">{224.664, 32}</string>
<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
</object>
<object class="NSCustomObject" id="513945847">
<string key="NSClassName">ChameleonPrefPane</string>
</object>
<int key="connectionID">199</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mFreezeParts</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="367976317"/>
</object>
<int key="connectionID">217</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mInjectFrozenParts</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="523866218"/>
</object>
<int key="connectionID">218</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">onUseFrozenParts:</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="367976317"/>
</object>
<int key="connectionID">219</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">onInjectPartsToFreeze:</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="763684145"/>
</object>
<int key="connectionID">220</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="171626638">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="object" ref="0"/>
<reference key="children" ref="409411428"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="294453543"/>
<reference key="parent" ref="171626638"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="308860122"/>
<reference key="parent" ref="171626638"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1037298196"/>
</object>
<reference key="parent" ref="171626638"/>
<reference key="parent" ref="0"/>
<string key="objectName">PrefPane</string>
</object>
<object class="IBObjectRecord">
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="278121016"/>
<reference key="parent" ref="171626638"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">112</int>
<reference key="object" ref="513945847"/>
<reference key="parent" ref="171626638"/>
<reference key="parent" ref="0"/>
<string key="objectName">ChameleonPrefPane</string>
</object>
<object class="IBObjectRecord">
<reference ref="372541434"/>
<reference ref="756755885"/>
<reference ref="1064169092"/>
<reference ref="1032245036"/>
<reference ref="158463244"/>
<reference ref="1032245036"/>
</object>
<reference key="parent" ref="210384195"/>
</object>
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1033017990"/>
<reference ref="249705860"/>
<reference ref="367976317"/>
<reference ref="523866218"/>
</object>
<reference key="parent" ref="451295758"/>
</object>
<reference key="object" ref="556998537"/>
<reference key="parent" ref="158463244"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">200</int>
<reference key="object" ref="367976317"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="662766703"/>
</object>
<reference key="parent" ref="77485843"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">201</int>
<reference key="object" ref="662766703"/>
<reference key="parent" ref="367976317"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">203</int>
<reference key="object" ref="523866218"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="763684145"/>
</object>
<reference key="parent" ref="77485843"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">204</int>
<reference key="object" ref="763684145"/>
<reference key="parent" ref="523866218"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.IBPluginDependency</string>
<string>-2.IBPluginDependency</string>
<string>-3.IBPluginDependency</string>
<string>100.IBPluginDependency</string>
<string>101.IBPluginDependency</string>
<string>110.IBAttributePlaceholdersKey</string>
<string>110.IBPluginDependency</string>
<string>111.IBPluginDependency</string>
<string>112.IBPluginDependency</string>
<string>12.IBEditorWindowLastContentRect</string>
<string>12.IBPluginDependency</string>
<string>12.IBViewEditorWindowController.showingLayoutRectangles</string>
<string>12.IBWindowTemplateEditedContentRect</string>
<string>12.ImportedFromIB2</string>
<string>189.IBAttributePlaceholdersKey</string>
<string>189.IBPluginDependency</string>
<string>190.IBPluginDependency</string>
<string>200.IBAttributePlaceholdersKey</string>
<string>200.IBPluginDependency</string>
<string>201.IBPluginDependency</string>
<string>203.IBPluginDependency</string>
<string>204.IBPluginDependency</string>
<string>6.IBPluginDependency</string>
<string>6.ImportedFromIB2</string>
<string>99.IBAttributePlaceholdersKey</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{134, 127}, {668, 368}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{75, 109}, {668, 368}}</string>
<boolean value="YES"/>
<string>{{75, 109}, {668, 368}}</string>
<integer value="1" id="9"/>
<reference ref="9"/>
<string>{{134, 127}, {668, 368}}</string>
<integer value="1"/>
<integer value="1"/>
<string>{224.664, 10}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<reference key="object" ref="249705860"/>
<string type="base64-UTF8" key="toolTip">U3dhcCBkaXNrcyBpbmRleGVzIDA8LT4yLCB1c2UgdGhpcyBvcHRpb24gaWYgeW91ciBkaXNrIHNlcXVl
bmNlIGluIG9zeCBkb2VzIG5vdCBtYXRjaCB0aGUgY2hhbWVsZW9uIGJvb3QgZGlzayBzZXF1ZW5jZQ</string>
<string key="toolTip">Swap disks indexes 0&lt;-&gt;2, use this option if your disk sequence in osx does not match the chameleon boot disk sequence</string>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<reference key="object" ref="1033017990"/>
<string type="base64-UTF8" key="toolTip">U3dhcCBkaXNrcyBpbmRleGVzIDA8LT4xLCB1c2UgdGhpcyBvcHRpb24gaWYgeW91ciBkaXNrIHNlcXVl
bmNlIGluIG9zeCBkb2VzIG5vdCBtYXRjaCB0aGUgY2hhbWVsZW9uIGJvb3QgZGlzayBzZXF1ZW5jZQ</string>
<string key="toolTip">Swap disks indexes 0&lt;-&gt;1, use this option if your disk sequence in osx does not match the chameleon boot disk sequence</string>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<reference key="object" ref="367976317"/>
<string key="toolTip">Swap disks indexes 0&lt;-&gt;2, use this option if your disk sequence in osx does not match the chameleon boot disk sequence</string>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="dict.sortedKeys" ref="0"/>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="dict.sortedKeys" ref="0"/>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">199</int>
<int key="maxID">220</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">FirstResponder</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSPreferencePane</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
</object>
</object>
</object>
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">ChameleonPrefPane</string>
<string key="superclassName">NSPreferencePane</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>onInjectPartsToFreeze:</string>
<string>onRestart:</string>
<string>onShutdown:</string>
<string>onSleep:</string>
<string>onSwapHD:</string>
<string>onUseFrozenParts:</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>authView</string>
<string>mFileSystemColumn</string>
<string>mFreezeParts</string>
<string>mInjectFrozenParts</string>
<string>mOptions</string>
<string>mPartitionIDColumn</string>
<string>mPartitionImgColumn</string>
<string>mStatusText</string>
<string>mSwapHD01</string>
<string>mSwapHD02</string>
<string>touchButton</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>SFAuthorizationView</string>
<string>NSTableColumn</string>
<string>NSButton</string>
<string>NSButton</string>
<string>NSBox</string>
<string>NSTableColumn</string>
<string>NSTableColumn</string>
<string>NSTextField</string>
<string>NSButton</string>
<string>NSButton</string>
<string>NSButton</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Sources/ChameleonPrefPane.h</string>
<string key="majorKey">IBDocumentRelativeSource</string>
<string key="minorKey">../Sources/ChameleonPrefPane.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">FirstResponder</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSPreferencePane</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
<string key="minorKey"/>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<integer value="3000" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<string key="IBDocument.LastKnownRelativeProjectPath">../ChameleonPrefPane.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>

Archive Download the corresponding diff file

Revision: 17