Chameleon Applications

Chameleon Applications Commit Details

Date:2010-01-30 05:14:54 (11 years 1 month ago)
Author:Rekursor
Commit:82
Parents: 81
Message:Fully implemented the second tableview handlers (Menu entries for selection of tabview panes 'ala istat'. Coomplete Tableviews code refactoring to unload the amount of code in the ChameleonPrefPane.mm. Works fine. Might have messed up with wiring of beautiful boxes and others object I couln'nt see. Please Buche check the wiring in the xib ...
Changes:
A/branches/diebuche/ChameleonPrefPane/Sources/TableViewsController.h
A/branches/diebuche/ChameleonPrefPane/Sources/TableViewsController.mm
M/branches/diebuche/ChameleonPrefPane/Sources/ChameleonPrefPane.mm
M/branches/diebuche/ChameleonPrefPane/Sources/PreferencesControllerBase.h
M/branches/diebuche/ChameleonPrefPane/English.lproj/Chameleon.xib
M/branches/diebuche/ChameleonPrefPane/Sources/ShellProcess.cpp
M/branches/diebuche/ChameleonPrefPane/Sources/ShellProcess.h
M/branches/diebuche/ChameleonPrefPane/ChameleonPrefPane.xcodeproj/project.pbxproj
M/branches/diebuche/ChameleonPrefPane/Sources/BootSetupController.mm
M/branches/diebuche/ChameleonPrefPane/Sources/ChameleonPrefPane.h

File differences

branches/diebuche/ChameleonPrefPane/Sources/ChameleonPrefPane.mm
99
1010
1111
12
1213
1314
1415
......
2930
3031
3132
32
3333
34
35
36
3437
38
3539
3640
3741
3842
39
43
4044
41
42
4345
44
45
46
47
48
49
5046
5147
5248
5349
54
50
5551
5652
5753
5854
5955
60
56
6157
62
63
64
65
66
67
6858
6959
70
71
7260
7361
7462
......
8472
8573
8674
87
8875
8976
9077
......
138125
139126
140127
141
128
142129
143130
144131
......
153140
154141
155142
156
157
158
159
160
161
162
163
164
165
166
167
168143
169144
170145
......
277252
278253
279254
280
281
255
256
282257
283
258
284259
285260
286261
......
305280
306281
307282
308
283
309284
310285
311286
312287
313288
314
289
315290
316291
317
292
318293
319
294
320295
321296
322297
......
355330
356331
357332
358
359
360333
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439334
#import "BootFlagsController.h"
#import "PeripheralsController.h"
#import "AdvancedSetupController.h"
#import "TableViewsController.h"
#include "ShellProcess.h"
#import "ChameleonPropertyList.h"
};
static const char* const szPropFileName = "com.apple.Boot.plist";
static const int CurrentPreferencesFileVersion = 0x02; // for future back compatibility
// TODO move table views handling code to a dedicated controller
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Static file variables
//--------------------------------------------------------------------------
static std::string sCurrentDefaultPartition;
PartitionExtractor * partExtractor=NULL;
static ChameleonPrefPane * _prefPaneInstance = NULL;
static int currentRowSel = -1;
static ChameleonPrefPane *gInstance = NULL;
//--------------------------------------------------------------------------
@implementation ChameleonPrefPane
+ (ChameleonPrefPane *)instance { return(gInstance);}
+ (ChameleonPrefPane *)instance { return(_prefPaneInstance);}
//--------------------------------------------------------------------------
- (id) init
{
self = [super init];
gInstance = self;
_prefPaneInstance = self;
// set the image to display the current file being played
mMacOSXImage = [self getImageResource: @"MacOSX" ofType: @"png"];
mWindowsImage = [self getImageResource: @"Windows" ofType: @"png"];
mLinuxImage = [self getImageResource: @"Linux" ofType: @"png"];
mCDROMImage = [self getImageResource: @"CDROM" ofType: @"png"];
mUnknownImage = [self getImageResource: @"Chameleon" ofType: @"tiff"];
// create the process that will extract the diskutil list infos
if(!partExtractor) partExtractor = new PartitionExtractor();
// Retrieve the com.chameleon.prefPane.plist config
return self;
- (NSMutableDictionary*) preferencesFile {return mOptionsDict; }
- (NSMutableDictionary*) preferencesParts {return mPartitionsDict; }
- (NSTableView*) partitionsTable { return mPartitionsTable;}
//--------------------------------------------------------------------------
-(bool) savePreferences: (NSDictionary*) dict
//--------------------------------------------------------------------------
- (void) refreshLockStates
{
[mPartitionsTable setEnabled:[self isUnlocked]];
[[TableViewsController instance]->mPartitionsTable setEnabled:[self isUnlocked]];
[mStatusText setEnabled:[self isUnlocked]];
// Refresh other panels
}
//--------------------------------------------------------------------------
- (id) getImageResource: (NSString *) str ofType: (NSString*) sType
{
NSImage * img=nil;
if(!str) return nil;
NSBundle * b = [NSBundle bundleForClass:[self class]];
NSString* sRes = [b pathForResource: str ofType:sType ];
img = [[NSImage alloc] initWithContentsOfFile: sRes];
return img;
}
//--------------------------------------------------------------------------
/** When called here, all outlets references are initialized */
- (void)awakeFromNib
{ // called more than once, we only need one resource init
{
// read options in the plist file
partExtractor->hidePartitions(BootProp::instance().getStringForKey(kHidePartition));
partExtractor->renamedPartitions(BootProp::instance().getStringForKey(kRenamePartition));
PartitionExtractor::instance().hidePartitions(BootProp::instance().getStringForKey(kHidePartition));
PartitionExtractor::instance().renamedPartitions(BootProp::instance().getStringForKey(kRenamePartition));
// partExtractor->resetSwapping();
// PartitionExtractor::instance().resetSwapping();
id val = [mOptionsDict valueForKey: keySwapHD01];
[[BootSetupController instance]->mSwapHD01 setIntValue: [val intValue] ];
[[BootSetupController instance] doSwapHD: [val boolValue] save: false src:0 dst:1];
[self refreshLockStates];
// try to get the current default partition if any
if(partExtractor && BootProp::instance().isValid())
if(BootProp::instance().isValid())
{
const char *sdp = BootProp::instance().getStringForKey(kDefaultPartition);
sCurrentDefaultPartition = sdp ? sdp : "";
if (sCurrentDefaultPartition.size())
{
int index = partExtractor->getIndexFromHdStringSpec(sCurrentDefaultPartition.c_str());
int index = PartitionExtractor::instance().getIndexFromHdStringSpec(sCurrentDefaultPartition.c_str());
if (index>=0)
{
[mPartitionsTable selectRowIndexes:
[[TableViewsController instance ]->mPartitionsTable selectRowIndexes:
[NSIndexSet indexSetWithIndex:index] byExtendingSelection:NO];
currentRowSel = index;
[TableViewsController instance ]->currentRowSel = index;
}
}
}
system("/usr/bin/osascript -e 'tell app \"System Events\" to sleep'");
}
//--------------------------------------------------------------------------
- (void)tableViewSelectionDidChange:(NSNotification *)notification {
NSTableView* tv= mPartitionsTable;
if ([tv selectedRow] != currentRowSel)
{
currentRowSel = [tv selectedRow];
if (currentRowSel>=0)
{
const std::vector<PartitionInfo>& partInfo = partExtractor->partList();
char hd[7+1]="hd(n,m)";
hd[3]= ('0'+partInfo[currentRowSel].disk());
hd[5]= ('0'+partInfo[currentRowSel].partition());
AuthorizationRef auth= [self isUnlocked] ? [[authView authorization] authorizationRef] : NULL;
if(BootProp::instance().setStringForKey(kDefaultPartition, hd))
BootProp::instance().save(auth);
[ PreferencesControllerBase loadOptionsFromBootFile];
}
else
{ // no line selected
BootProp::instance().removeKeyAndValue(kDefaultPartition);
[ PreferencesControllerBase loadOptionsFromBootFile];
}
}
}
//--------------------------------------------------------------------------
- (NSInteger) numberOfRowsInTableView:(NSTableView *)tableView
{
int size = partExtractor ? partExtractor->partList().size() : 0;
return size;
}
//--------------------------------------------------------------------------
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
id ret=nil;
const std::vector<PartitionInfo>& partInfo = partExtractor->partList();
if (tableColumn == mPartitionImgColumn)
{
switch(partInfo[row].imageIndexFromFs())
{
case 0:
ret = mMacOSXImage;
break;
case 1:
ret = mWindowsImage;
break;
case 2:
ret = mLinuxImage;
break;
default:
ret = mUnknownImage;
break;
}
}
else if (tableColumn == mFileSystemColumn)
{
ret = [NSString stringWithFormat: @"%s", partInfo[row].cfsType() ];
}
else if (tableColumn == mPartitionNameColumn)
{
ret = [NSString stringWithFormat: @"%s", partInfo[row].clabel()];
}
else if (tableColumn == mPartitionIDColumn)
{
ret= [NSString stringWithFormat: @"hd(%d,%d)",
partInfo[row].disk(),
partInfo[row].partition()
];
}
return ret;
}
//--------------------------------------------------------------------------
@end
branches/diebuche/ChameleonPrefPane/Sources/ShellProcess.cpp
1010
1111
1212
13
1314
1415
1516
#include <sys/stat.h>
#include <string_util.h>
PartitionExtractor* PartitionExtractor::_instance = NULL;
//----------------------------------------------------------------
// portable open process:
branches/diebuche/ChameleonPrefPane/Sources/TableViewsController.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//
// TableViewsController.h
// ChameleonPrefPane
//
// Created by Rekursor on 1/29/10.
//
#import <Cocoa/Cocoa.h>
#import "CustomTableView.h"
#import "RoundedBox.h"
@interface TableViewsController : NSObject {
@public
IBOutlet CustomTableView *mPartitionsTable;
IBOutlet CustomTableView *mTabViewPanesSelect;
int currentRowSel;
@protected
IBOutlet NSTabView *mTabViewPanes;
IBOutlet NSTabViewItem *mBootFrom;
IBOutlet NSTabViewItem *mBootSetup;
IBOutlet NSTabViewItem *mBootFlags;
IBOutlet NSTabViewItem *mPeripherals;
IBOutlet NSTabViewItem *mAdvanced;
IBOutlet NSTabViewItem *mEfiInject;
IBOutlet NSTabViewItem *mSmbios;
IBOutlet NSTabViewItem *mAbout;
IBOutlet NSTableColumn *mMenuName;
IBOutlet NSTableColumn *mPartitionImgColumn;
IBOutlet NSTableColumn *mFileSystemColumn;
IBOutlet NSTableColumn *mPartitionNameColumn;
IBOutlet NSTableColumn *mPartitionIDColumn;
NSImage*mMacOSXImage;
NSImage*mWindowsImage;
NSImage*mLinuxImage;
NSImage*mUnknownImage;
NSImage*mCDROMImage;
NSString*mOptionsPlistPath;
}
+ (TableViewsController*) instance;
- (id) getImageResource: (NSString *) str ofType: (NSString*) sType;
- (void)tableViewSelectionDidChange:(NSNotification *)notification;
- (NSTableView*) partitionsTable;
@end
branches/diebuche/ChameleonPrefPane/Sources/ChameleonPrefPane.h
2727
2828
2929
30
3031
3132
3233
3334
3435
3536
36
37
3738
3839
39
40
41
42
43
4440
4541
4642
......
5248
5349
5450
55
56
57
58
59
60
6151
6252
6353
......
6757
6858
6959
70
71
7260
7361
7462
7563
7664
7765
78
79
80
8166
8267
8368
8469
85
8670
8771
8872
{
@public
IBOutlet SFAuthorizationView *authView;
IBOutlet RoundedBox * box;
IBOutlet RoundedBox * footer;
IBOutlet NSColorWell *gradientStartColorWell;
IBOutlet NSColorWell *gradientEndColorWell;
IBOutlet NSColorWell *backgroundColorWell;
IBOutlet NSColorWell *borderColorWell;
@private
// Objects corresponding to the interface mapping:
IBOutlet CustomTableView *mPartitionsTable;
IBOutlet NSTableColumn *mPartitionImgColumn;
IBOutlet NSTableColumn *mFileSystemColumn;
IBOutlet NSTableColumn *mPartitionNameColumn;
IBOutlet NSTableColumn *mPartitionIDColumn;
IBOutlet NSButton *mSleepButton;
IBOutlet NSButton *mShutDownButton;
IBOutlet NSButton *mRestartButton;
NSMutableDictionary*mOptionsDict;
NSMutableDictionary*mPartitionsDict;
NSImage*mMacOSXImage;
NSImage*mWindowsImage;
NSImage*mLinuxImage;
NSImage*mUnknownImage;
NSImage*mCDROMImage;
NSString*mOptionsPlistPath;
intmPreferenceFileVersion;
}
- (NSMutableDictionary*) preferencesFile;
- (NSMutableDictionary*) preferencesParts;
- (NSTableView*) partitionsTable;
- (IBAction)onRestart: (id)sender;
- (IBAction)onShutdown: (id)sender;
- (IBAction)onSleep: (id)sender;
- (void)awakeFromNib;
- (void)initBootConfig;
- (id) getImageResource: (NSString *) str ofType: (NSString*) sType;
- (void)tableViewSelectionDidChange:(NSNotification *)notification;
- (void) selectDefaultPartition;
- (bool)isUnlocked;
- (void) refreshLockStates;
- (void)tableViewSelectionDidChange:(NSNotification *)notification;
- (AuthorizationRef) auth;
branches/diebuche/ChameleonPrefPane/Sources/TableViewsController.mm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
//
// TableViewsController.mm
// ChameleonPrefPane
//
// Created by Rekursor on 1/29/10.
//
#import "ChameleonPrefPane.h"
#import "ChameleonPropertyList.h"
#import "PreferencesControllerBase.H"
#import "TableViewsController.h"
#import "BootSetupController.h"
#import "ShellProcess.h"
#import <SecurityFoundation/SFAuthorization.h>
#import <SecurityInterface/SFAuthorizationView.h>
#include <string>
#include <vector>
//--------------------------------------------------------------------------
// MenuEntry definitions
//--------------------------------------------------------------------------
typedef enum {
PaneBootFrom, PaneBootSetup, PaneBootFlags, PanePeripherals,
PaneAdvanced, PaneEfiInject, PaneSmbios, PaneAbout
} MenuEntryPane;
struct MenuEntry
{
NSString* title;
MenuEntryPane pane;
} ;
static const MenuEntry sMenuList[] =
{
{@" Boot From ...", PaneBootFrom},
{@" Boot Setup",PaneBootSetup},
{@" Boot Flags", PaneBootFlags},
{@" Peripherals", PanePeripherals},
{@" Advanced", PaneAdvanced},
{@" Efi Inject", PaneEfiInject},
{@" Smbios", PaneSmbios},
{@" About", PaneAbout}
};
const int iMenuListSize = sizeof(sMenuList)/ sizeof(MenuEntry);
static TableViewsController* _instance; // Singleton DP def.
//--------------------------------------------------------------------------
@implementation TableViewsController
//--------------------------------------------------------------------------
- (id) init
{
[super init];
_instance = self;
currentRowSel = -1;
// set the image to display the current file being played
mMacOSXImage = [self getImageResource: @"MacOSX" ofType: @"png"];
mWindowsImage = [self getImageResource: @"Windows" ofType: @"png"];
mLinuxImage = [self getImageResource: @"Linux" ofType: @"png"];
mCDROMImage = [self getImageResource: @"CDROM" ofType: @"png"];
mUnknownImage = [self getImageResource: @"Chameleon" ofType: @"tiff"];
return self;
}
//--------------------------------------------------------------------------
// Singleton impl
+ (TableViewsController*) instance
{
return _instance;
}
//--------------------------------------------------------------------------
+ (bool) isUnlocked
{
return [[ChameleonPrefPane instance] isUnlocked];
}
//--------------------------------------------------------------------------
+ (AuthorizationRef) authorization
{
return [TableViewsController isUnlocked] ?
[ [ [ChameleonPrefPane instance]->authView authorization] authorizationRef] : NULL;
}
//--------------------------------------------------------------------------
- (NSTableView*) partitionsTable
{
return mPartitionsTable;
}
//--------------------------------------------------------------------------
- (id) getImageResource: (NSString *) str ofType: (NSString*) sType
{
NSImage * img=nil;
if(!str) return nil;
NSBundle * b = [NSBundle bundleForClass:[self class]];
NSString* sRes = [b pathForResource: str ofType:sType ];
img = [[NSImage alloc] initWithContentsOfFile: sRes];
return img;
}
//--------------------------------------------------------------------------
- (void)tableViewSelectionDidChange:(NSNotification *)notification {
NSTableView* tv= [notification object];
if (tv == mPartitionsTable)
{
if ([tv selectedRow] != currentRowSel)
{
currentRowSel = [tv selectedRow];
if (currentRowSel>=0)
{
const std::vector<PartitionInfo>& partInfo = PartitionExtractor::instance().partList();
char hd[7+1]="hd(n,m)";
hd[3]= ('0'+partInfo[currentRowSel].disk());
hd[5]= ('0'+partInfo[currentRowSel].partition());
AuthorizationRef auth= [TableViewsController authorization];
if(BootProp::instance().setStringForKey(kDefaultPartition, hd))
BootProp::instance().save(auth);
[ PreferencesControllerBase loadOptionsFromBootFile];
}
else
{ // no line selected
BootProp::instance().removeKeyAndValue(kDefaultPartition);
[ PreferencesControllerBase loadOptionsFromBootFile];
}
}
}
else if (tv == mTabViewPanesSelect)
{
int selected = [tv selectedRow];
if(selected>=0)
{
switch (sMenuList[selected].pane) {
case PaneBootFrom:
[mTabViewPanes selectTabViewItem: mBootFrom];
break;
case PaneBootSetup:
[mTabViewPanes selectTabViewItem: mBootSetup];
break;
case PaneBootFlags:
[mTabViewPanes selectTabViewItem: mBootFlags];
break;
case PanePeripherals:
[mTabViewPanes selectTabViewItem: mPeripherals];
break;
case PaneEfiInject:
[mTabViewPanes selectTabViewItem: mEfiInject];
break;
case PaneAdvanced:
[mTabViewPanes selectTabViewItem: mAdvanced];
break;
case PaneSmbios:
[mTabViewPanes selectTabViewItem: mSmbios];
break;
case PaneAbout:
[mTabViewPanes selectTabViewItem: mAbout];
break;
default:
break;
}
}
}
}
//--------------------------------------------------------------------------
- (NSInteger) numberOfRowsInTableView:(NSTableView *)tableView
{
int size=0;
if (tableView == mPartitionsTable)
size = PartitionExtractor::instance().partList().size();
else
size = iMenuListSize;
return size;
}
//--------------------------------------------------------------------------
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
id ret=nil;
const std::vector<PartitionInfo>& partInfo = PartitionExtractor::instance().partList();
if (tableColumn == mPartitionImgColumn)
{
switch(partInfo[row].imageIndexFromFs())
{
case 0:
ret = mMacOSXImage;
break;
case 1:
ret = mWindowsImage;
break;
case 2:
ret = mLinuxImage;
break;
default:
ret = mUnknownImage;
break;
}
}
else if (tableColumn == mFileSystemColumn)
{
ret = [NSString stringWithFormat: @"%s", partInfo[row].cfsType() ];
}
else if (tableColumn == mPartitionNameColumn)
{
ret = [NSString stringWithFormat: @"%s", partInfo[row].clabel()];
}
else if (tableColumn == mPartitionIDColumn)
{
ret= [NSString stringWithFormat: @"hd(%d,%d)",
partInfo[row].disk(),
partInfo[row].partition()
];
}
// menu tv handling
else if (tableColumn == mMenuName)
{
ret = sMenuList[row].title;
}
return ret;
}
//--------------------------------------------------------------------------
@end
branches/diebuche/ChameleonPrefPane/Sources/PreferencesControllerBase.h
3131
3232
3333
34
3534
3635
3736
// ENHANCE ME: remove this globals and integrate them in ChameleonPrefPane or at least
// add function accessor entry points
extern PartitionExtractor * partExtractor;
// Define common expected behavior for all derived controllers
@interface PreferencesControllerBase : NSObject
branches/diebuche/ChameleonPrefPane/Sources/ShellProcess.h
8787
8888
8989
90
91
9092
91
9293
9394
9495
......
117118
118119
119120
121
122
123
124
125
126
120127
121128
122129
123130
124131
132
125133
126134
127135
128136
129137
138
130139
131140
132141
//----------------------------------------------------------------
class PartitionExtractor : public ShellProcess
{
PartitionExtractor() :ShellProcess() { init(); }
public:
PartitionExtractor() :ShellProcess() { init(); }
const std::vector<PartitionInfo>& extractPartitions(
const char* szHide=NULL,
void resetSwapping() { init();}
static PartitionExtractor& instance()
{
if (!_instance) _instance = new PartitionExtractor();
return *_instance;
}
protected:
void init() {
for (int i=0; i<MAX_HD; i++) _hdRedirTable[i]=i;
}
private:
std::vector<PartitionInfo> _partList;
int _hdRedirTable[MAX_HD];
std::string _hiddenParts;
std::string _renamedParts;
static PartitionExtractor* _instance;
};
branches/diebuche/ChameleonPrefPane/Sources/BootSetupController.mm
77
88
99
10
11
1012
1113
1214
......
7173
7274
7375
74
76
7577
7678
7779
......
111113
112114
113115
114
116
115117
116118
117119
118120
119121
120122
121
123
122124
123125
124
126
125127
126128
127129
128
130
129131
130132
131133
......
155157
156158
157159
158
159
160
161
160162
161163
162164
......
165167
166168
167169
168
170
169171
170172
171173
......
190192
191193
192194
193
195
194196
195197
196198
......
247249
248250
249251
250
252
251253
252254
253255
......
284286
285287
286288
287
289
288290
289291
290292
#import "BootSetupController.h"
#import "ChameleonPrefPane.h"
#import "TableViewsController.h"
#import "ShellProcess.h"
static const char* sPartDescSep = ";"; // cstring version
static const char cPartDescSep = ';'; // partition descriptor separator
//--------------------------------------------------------------------------
- (void) loadFrozenParts
{
std::vector<PartitionInfo>& partList = partExtractor->editPartList(); //rw
std::vector<PartitionInfo>& partList = PartitionExtractor::instance().editPartList(); //rw
// iterate for all entries to add
char keyPartN[32] = "";
char buffer[256]="";
partList.push_back(p);
}
}
partExtractor->sortPartList();
PartitionExtractor::instance().sortPartList();
}
//--------------------------------------------------------------------------
- (void) swapDisks: (bool) bSwap src: (int) iSrc dst: (int) iDst;
{
if(!partExtractor || !BootProp::instance().isValid()) return;
if(!BootProp::instance().isValid()) return;
if (bSwap)
{
partExtractor->swapHD(iSrc, iDst);
PartitionExtractor::instance().swapHD(iSrc, iDst);
}
if ([mFreezeParts intValue]==0)
partExtractor->extractPartitions();
PartitionExtractor::instance().extractPartitions();
else
[self loadFrozenParts ];
[ [self chameleon] savePreferences:[self preferencesFile] ];
}
[[[ChameleonPrefPane instance] partitionsTable] reloadData];
[[[ChameleonPrefPane instance] partitionsTable] scrollRowToVisible: 0];
[[[TableViewsController instance] partitionsTable] reloadData];
[[[TableViewsController instance] partitionsTable] scrollRowToVisible: 0];
//[self tableViewSelectionDidChange: nil];
}
//--------------------------------------------------------------------------
- (IBAction)onInjectPartsToFreeze: (id)sender
{
int size = partExtractor ? partExtractor->partList().size() : 0;
int size = PartitionExtractor::instance().partList().size();
if (!size)
{ // nothing to inject
NSRunAlertPanel(@"Inject Partitions to Freeze Configuration",
for (int i=0; i< size; i++)
{
const PartitionInfo& p =partExtractor->partList()[i];
const PartitionInfo& p =PartitionExtractor::instance().partList()[i];
// format the partition key and descriptor string
snprintf(keyPartN, sizeof(keyPartN)-1, "partition%02d",i);
// for the preferences file like the bootConfig file
if (sender == mSwapHD01 || sender == mSwapHD02)
{
partExtractor->resetSwapping();
PartitionExtractor::instance().resetSwapping();
[self doSwapHD: [mSwapHD01 intValue] save:true src:0 dst:1];
[self doSwapHD: [mSwapHD02 intValue] save:true src:0 dst:2];
}
[self handleSender:sender];
[PreferencesControllerBase loadOptionsFromBootFile ];
partExtractor->extractPartitions(
PartitionExtractor::instance().extractPartitions(
[[mHidePartitionText stringValue] UTF8String],
[[mRenamePartitionText stringValue] UTF8String]
);
branches/diebuche/ChameleonPrefPane/ChameleonPrefPane.xcodeproj/project.pbxproj
88
99
1010
11
12
1113
1214
1315
......
7678
7779
7880
81
82
83
7984
8085
8186
......
129134
130135
131136
132
133137
134138
135139
......
184188
185189
186190
191
192
187193
188194
189195
......
195201
196202
197203
204
198205
199
200206
201207
202208
......
299305
300306
301307
308
302309
303310
304311
......
355362
356363
357364
365
358366
359367
360368
......
379387
380388
381389
382
390
383391
384392
385393
......
461469
462470
463471
472
464473
465474
466475
......
566575
567576
568577
578
579
569580
570581
571582
572583
584
573585
574586
575587
/* Begin PBXBuildFile section */
010CC625110927A2006EFFE9 /* QuestionMark.png in Resources */ = {isa = PBXBuildFile; fileRef = 010CC624110927A2006EFFE9 /* QuestionMark.png */; };
011B2E561113BC7E008A540F /* TableViewsController.h in Headers */ = {isa = PBXBuildFile; fileRef = 011B2E541113BC7E008A540F /* TableViewsController.h */; };
011B2E571113BC7E008A540F /* TableViewsController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 011B2E551113BC7E008A540F /* TableViewsController.mm */; };
01466A931104062500088464 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01466A921104062500088464 /* Security.framework */; };
01466C2A110408CC00088464 /* SecurityInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01466C29110408CC00088464 /* SecurityInterface.framework */; };
01466C381104091400088464 /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01466C371104091400088464 /* SecurityFoundation.framework */; };
/* Begin PBXFileReference section */
010CC624110927A2006EFFE9 /* QuestionMark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = QuestionMark.png; path = Resources/QuestionMark.png; sourceTree = SOURCE_ROOT; };
011B2DE81113937D008A540F /* Chameleon.prefPane */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Chameleon.prefPane; sourceTree = BUILT_PRODUCTS_DIR; };
011B2E541113BC7E008A540F /* TableViewsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TableViewsController.h; path = ../../../../../../../devl/OSX/voodoo/chameleonApplications/branches/diebuche/ChameleonPrefPane/Sources/TableViewsController.h; sourceTree = SOURCE_ROOT; };
011B2E551113BC7E008A540F /* TableViewsController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = TableViewsController.mm; path = ../../../../../../../devl/OSX/voodoo/chameleonApplications/branches/diebuche/ChameleonPrefPane/Sources/TableViewsController.mm; sourceTree = SOURCE_ROOT; };
01466A921104062500088464 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
01466C29110408CC00088464 /* SecurityInterface.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityInterface.framework; path = System/Library/Frameworks/SecurityInterface.framework; sourceTree = SDKROOT; };
01466C371104091400088464 /* SecurityFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityFoundation.framework; path = System/Library/Frameworks/SecurityFoundation.framework; sourceTree = SDKROOT; };
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
32DBCFA20370C41700C91783 /* StartupPrefPane_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StartupPrefPane_Prefix.pch; sourceTree = "<group>"; };
8D202CF70486D31800D8A456 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D202CF80486D31800D8A456 /* Chameleon.prefPane */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = Chameleon.prefPane; path = "/Users/Leo/Builds2/chameleonApplications/branches/diebuche/ChameleonPrefPane/build/Release 10.5/Chameleon.prefPane"; sourceTree = "<absolute>"; };
B3981D3F1113292A009E2520 /* CustomTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomTableView.h; path = Sources/CustomTableView.h; sourceTree = "<group>"; };
B3981D8311132A13009E2520 /* string_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = string_util.h; path = Sources/string_util.h; sourceTree = "<group>"; };
B3981E4111132AE0009E2520 /* cham.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = cham.png; path = Resources/cham.png; sourceTree = "<group>"; };
01A25D1D111108C80024EA7E /* EfiInjectController.mm */,
01A25D2A111108C80024EA7E /* SmbiosController.h */,
01A25D2B111108C80024EA7E /* SmbiosController.mm */,
011B2E541113BC7E008A540F /* TableViewsController.h */,
011B2E551113BC7E008A540F /* TableViewsController.mm */,
);
name = Controllers;
sourceTree = "<group>";
01E314A9110FF91C0058F210 /* Controllers */,
01B0E80E1108B85A00ACF21B /* ChameleonPrefPane.h */,
01B0E80F1108B85A00ACF21B /* ChameleonPrefPane.mm */,
B3981D3F1113292A009E2520 /* CustomTableView.h */,
01A25D1B111108C80024EA7E /* CustomTableView.mm */,
B3981D3F1113292A009E2520 /* CustomTableView.h */,
);
name = GUI;
sourceTree = "<group>";
19C28FB8FE9D52D311CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
011B2DE81113937D008A540F /* Chameleon.prefPane */,
);
name = Products;
sourceTree = "<group>";
B398220C111349F5009E2520 /* RoundedBox_Prefix.pch in Headers */,
B398220D111349F5009E2520 /* RoundedBox.h in Headers */,
B398221111134A33009E2520 /* CTGradient.h in Headers */,
011B2E561113BC7E008A540F /* TableViewsController.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
name = CStartup;
productInstallPath = "$(HOME)/Library/PreferencePanes";
productName = StartupPrefPane;
productReference = 8D202CF80486D31800D8A456 /* Chameleon.prefPane */;
productReference = 011B2DE81113937D008A540F /* Chameleon.prefPane */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
01A25D4C111108C80024EA7E /* string_util.cpp in Sources */,
B3981F2C11132EC0009E2520 /* CTGradient.m in Sources */,
B39822E911134F8B009E2520 /* RoundedBox.m in Sources */,
011B2E571113BC7E008A540F /* TableViewsController.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
DEPLOYMENT_LOCATION = YES;
DSTROOT = /;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_GC = supported;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INSTALL_PATH = "~/Library/PreferencePanes";
ONLY_ACTIVE_ARCH = YES;
PREBINDING = NO;
SDKROOT = macosx10.6;
branches/diebuche/ChameleonPrefPane/English.lproj/Chameleon.xib
1212
1313
1414
15
15
1616
1717
1818
......
698698
699699
700700
701
701
702702
703703
704704
......
758758
759759
760760
761
761
762762
763763
764764
......
11091109
11101110
11111111
1112
11131112
11141113
11151114
......
22062205
22072206
22082207
2209
2208
22102209
22112210
22122211
......
22922291
22932292
22942293
2295
2294
22962295
22972296
22982297
......
23002299
23012300
23022301
2303
2302
2303
2304
2305
2306
23042307
23052308
23062309
......
32403243
32413244
32423245
3246
32433247
32443248
32453249
......
34853489
34863490
34873491
3488
3489
3490
3491
3492
3492
34933493
34943494
34953495
......
35953595
35963596
35973597
3598
3598
35993599
36003600
36013601
......
36433643
36443644
36453645
3646
3646
36473647
36483648
36493649
......
36543654
36553655
36563656
3657
3657
36583658
36593659
36603660
......
36913691
36923692
36933693
3694
3694
36953695
36963696
36973697
......
37293729
37303730
37313731
3732
3732
37333733
3734
3734
37353735
37363736
3737
3738
3737
3738
37393739
37403740
37413741
3742
3743
3744
3745
3746
3742
3743
3744
3745
3746
37473747
37483748
37493749
37503750
3751
3752
3753
3751
3752
37543753
37553754
37563755
3757
3758
3759
3756
3757
3758
37603759
37613760
37623761
37633762
37643763
37653764
3766
3767
3768
3769
3765
37703766
37713767
3772
3773
3774
3768
3769
3770
37753771
3776
3777
3778
3772
3773
3774
37793775
37803776
37813777
37823778
37833779
3784
3780
37853781
37863782
37873783
37883784
3789
3790
3791
3792
3785
37933786
3794
3795
3787
3788
37963789
37973790
37983791
37993792
38003793
38013794
3802
3795
3796
38033797
38043798
3805
3806
3807
3799
3800
3801
38083802
3809
3803
38103804
3811
3805
38123806
3813
3814
3807
3808
38153809
3816
3817
3810
3811
38183812
3819
3813
38203814
3821
3815
38223816
3823
3824
3817
3818
38253819
3826
3827
3820
3821
38283822
38293823
3830
3824
38313825
3832
3826
38333827
38343828
3835
3829
38363830
3837
3831
38383832
3839
3840
3841
3842
3843
3833
3834
3835
3836
3837
38443838
38453839
38463840
......
39753969
39763970
39773971
3972
3973
3974
39783975
39793976
39803977
......
39893986
39903987
39913988
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
40403989
40413990
40423991
......
40443993
40453994
40463995
4047
4048
4049
4050
4051
4052
4053
4054
40553996
40563997
40573998
......
53875328
53885329
53895330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
53905491
53915492
53925493
......
54255526
54265527
54275528
5428
54295529
54305530
54315531
5532
54325533
54335534
54345535
......
55545655
55555656
55565657
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
56015658
56025659
56035660
......
57075764
57085765
57095766
5710
57115767
57125768
5769
57135770
57145771
57155772
......
70957152
70967153
70977154
7098
70997155
71007156
71017157
7158
71027159
71037160
71047161
......
72487305
72497306
72507307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
72517357
72527358
72537359
......
72697375
72707376
72717377
7378
72727379
72737380
72747381
......
75617668
75627669
75637670
7564
7565
7566
7567
7568
7569
75707671
75717672
75727673
......
75777678
75787679
75797680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
75807693
75817694
75827695
......
76027715
76037716
76047717
7605
7718
76067719
7607
7720
7721
76087722
76097723
76107724
......
83538467
83548468
83558469
8356
8357
8358
8359
8360
8361
83628470
83638471
83648472
......
83718479
83728480
83738481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
83748494
83758495
83768496
......
83988518
83998519
84008520
8401
8521
84028522
84038523
84048524
......
86508770
86518771
86528772
8653
86548773
8655
8656
8657
8658
86598774
86608775
86618776
......
86708785
86718786
86728787
8673
86748788
8675
8676
8677
8678
86798789
86808790
86818791
......
88488958
88498959
88508960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
88519010
88529011
88539012
......
94799638
94809639
94819640
9482
9641
94839642
94849643
94859644
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="355"/>
<integer value="952"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference ref="447791831"/>
</object>
<string key="NSFrame">{{18, 18}, {480, 222}}</string>
<string key="NSFrame">{{18, 14}, {480, 222}}</string>
<reference key="NSSuperview" ref="727875353"/>
<reference key="NSNextKeyView" ref="729666351"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<object class="NSTabViewItem" id="1039429426">
<string key="NSIdentifier">2</string>
<object class="NSView" key="NSView" id="451295758">
<reference key="NSNextResponder" ref="869599070"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<string key="NSFrame">{{10, 19}, {545, 506}}</string>
<reference key="NSSuperview" ref="869599070"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
</object>
<string key="NSLabel">Boot Setup</string>
<object class="NSTabViewItem" id="645910071">
<string key="NSIdentifier">Item 8</string>
<object class="NSView" key="NSView" id="241622967">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder" ref="869599070"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTextField" id="921716680">
<reference key="NSNextResponder" ref="1000898384"/>
<int key="NSvFlags">12</int>
<string key="NSFrame">{{342, 93}, {135, 22}}</string>
<string key="NSFrame">{{342, 93}, {155, 22}}</string>
<reference key="NSSuperview" ref="1000898384"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<int key="NSCellFlags">611450433</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="930899267"/>
<object class="NSFont" key="NSSupport" id="774863777">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">16</int>
</object>
<string key="NSPlaceholderString">*/PCI0@0/CHN0@0/@0:1</string>
<reference key="NSControlView" ref="921716680"/>
<bool key="NSDrawsBackground">YES</bool>
</object>
</object>
<string key="NSFrame">{{10, 19}, {545, 506}}</string>
<reference key="NSSuperview" ref="869599070"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
</object>
<string key="NSLabel">Advanced</string>
<int key="NSCellFlags">-2080244224</int>
<int key="NSCellFlags2">138412032</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="774863777">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">16</int>
</object>
<reference key="NSSupport" ref="774863777"/>
<reference key="NSControlView" ref="49279634"/>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSColor" key="NSBackgroundColor">
<object class="NSButton" id="262969164">
<reference key="NSNextResponder" ref="786891136"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{388, 10}, {140, 25}}</string>
<string key="NSFrame">{{388, 15}, {140, 25}}</string>
<reference key="NSSuperview" ref="786891136"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<reference key="NSTabView" ref="869599070"/>
</object>
</object>
<reference key="NSSelectedTabViewItem" ref="1039429426"/>
<reference key="NSSelectedTabViewItem" ref="645910071"/>
<object class="NSFont" key="NSFont">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">9</double>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="451295758"/>
<reference ref="241622967"/>
</object>
</object>
</object>
<object class="NSCustomView" id="475549282">
<reference key="NSNextResponder" ref="1037298196"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{20, 6}, {612, 46}}</string>
<string key="NSFrameSize">{632, 41}</string>
<reference key="NSSuperview" ref="1037298196"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<string key="NSClassName">SFAuthorizationView</string>
</object>
<bool key="NSEditable">YES</bool>
</object>
<object class="NSScrollView" id="749902104">
<object class="NSScrollView" id="329022978">
<reference key="NSNextResponder" ref="1037298196"/>
<int key="NSvFlags">268</int>
<int key="NSvFlags">4352</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSClipView" id="936944693">
<reference key="NSNextResponder" ref="749902104"/>
<object class="NSClipView" id="317600712">
<reference key="NSNextResponder" ref="329022978"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableView" id="800349758">
<reference key="NSNextResponder" ref="936944693"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{125, 524}</string>
<reference key="NSSuperview" ref="936944693"/>
<object class="NSTableView" id="964566138">
<reference key="NSNextResponder" ref="317600712"/>
<int key="NSvFlags">4352</int>
<string key="NSFrameSize">{126, 520}</string>
<reference key="NSSuperview" ref="317600712"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 0}, {16, 17}}</string>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<int key="NSvFlags">256</int>
<string key="NSFrame">{{-26, 0}, {16, 17}}</string>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="431113093">
<double key="NSWidth">122</double>
<double key="NSMinWidth">40</double>
<object class="NSTableColumn" id="820331058">
<double key="NSWidth">83</double>
<double key="NSMinWidth">10</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
</object>
<reference key="NSBackgroundColor" ref="501427186"/>
<reference key="NSTextColor" ref="429835715"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="178730735">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<object class="NSTextFieldCell" key="NSDataCell" id="825103315">
<int key="NSCellFlags">1140981248</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Text Cell</string>
<reference key="NSSupport" ref="930899267"/>
<reference key="NSControlView" ref="800349758"/>
<reference key="NSBackgroundColor" ref="694251928"/>
<reference key="NSSupport" ref="445094936"/>
<reference key="NSControlView" ref="964566138"/>
<reference key="NSBackgroundColor" ref="501125233"/>
<reference key="NSTextColor" ref="560934093"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="800349758"/>
<reference key="NSTableView" ref="964566138"/>
</object>
</object>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MSAwAA</bytes>
</object>
<reference key="NSBackgroundColor" ref="732916706"/>
<reference key="NSGridColor" ref="178056349"/>
<double key="NSRowHeight">17</double>
<int key="NSTvFlags">-700448768</int>
<double key="NSRowHeight">36</double>
<int key="NSTvFlags">-968884224</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>
<int key="NSTableViewSelectionHighlightStyle">1</int>
<int key="NSTableViewDraggingDestinationStyle">1</int>
</object>
</object>
<string key="NSFrame">{{1, 1}, {125, 524}}</string>
<reference key="NSSuperview" ref="749902104"/>
<reference key="NSNextKeyView" ref="800349758"/>
<string key="NSFrameSize">{126, 520}</string>
<reference key="NSSuperview" ref="329022978"/>
<reference key="NSNextKeyView" ref="964566138"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<reference key="NSDocView" ref="800349758"/>
<reference key="NSDocView" ref="964566138"/>
<reference key="NSBGColor" ref="694251928"/>
<int key="NScvFlags">2</int>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="555311857">
<reference key="NSNextResponder" ref="749902104"/>
<object class="NSScroller" id="250904414">
<reference key="NSNextResponder" ref="329022978"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="749902104"/>
<string key="NSFrame">{{-100, -100}, {15, 441}}</string>
<reference key="NSSuperview" ref="329022978"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<reference key="NSTarget" ref="749902104"/>
<reference key="NSTarget" ref="329022978"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99809523809523815</double>
<double key="NSPercent">0.19473683834075928</double>
</object>
<object class="NSScroller" id="835643019">
<reference key="NSNextResponder" ref="749902104"/>
<object class="NSScroller" id="110835066">
<reference key="NSNextResponder" ref="329022978"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 510}, {125, 15}}</string>
<reference key="NSSuperview" ref="749902104"/>
<string key="NSFrame">{{-100, -100}, {141, 15}}</string>
<reference key="NSSuperview" ref="329022978"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="749902104"/>
<reference key="NSTarget" ref="329022978"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99206349206349209</double>
<double key="NSPercent">0.99047619104385376</double>
</object>
</object>
<string key="NSFrame">{{0, 42}, {127, 526}}</string>
<string key="NSFrame">{{0, 47}, {126, 520}}</string>
<reference key="NSSuperview" ref="1037298196"/>
<reference key="NSNextKeyView" ref="936944693"/>
<reference key="NSNextKeyView" ref="317600712"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<int key="NSsFlags">562</int>
<reference key="NSVScroller" ref="555311857"/>
<reference key="NSHScroller" ref="835643019"/>
<reference key="NSContentView" ref="936944693"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
<int key="NSsFlags">0</int>
<reference key="NSVScroller" ref="250904414"/>
<reference key="NSHScroller" ref="110835066"/>
<reference key="NSContentView" ref="317600712"/>
<bytes key="NSScrollAmts">QSAAAEEgAABCGAAAQhgAAA</bytes>
</object>
<object class="NSBox" id="639720406">
<reference key="NSNextResponder" ref="1037298196"/>
<object class="NSUserDefaultsController" id="721424701">
<bool key="NSSharedInstance">YES</bool>
</object>
<object class="NSCustomObject" id="25590726">
<string key="NSClassName">TableViewsController</string>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="830282976"/>
<reference key="destination" ref="513945847"/>
</object>
<int key="connectionID">121</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="830282976"/>
<reference key="destination" ref="513945847"/>
</object>
<int key="connectionID">122</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionsTable</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="830282976"/>
</object>
<int key="connectionID">123</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionNameColumn</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="415322677"/>
</object>
<int key="connectionID">126</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mFileSystemColumn</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="484280519"/>
</object>
<int key="connectionID">127</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionIDColumn</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="861957185"/>
</object>
<int key="connectionID">130</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">authView</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="475549282"/>
<int key="connectionID">137</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionImgColumn</string>
<reference key="source" ref="513945847"/>
<reference key="destination" ref="1059690284"/>
</object>
<int key="connectionID">161</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">onRestart:</string>
<reference key="source" ref="513945847"/>
</object>
<int key="connectionID">913</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mMenuName</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="820331058"/>
</object>
<int key="connectionID">970</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="964566138"/>
<reference key="destination" ref="25590726"/>
</object>
<int key="connectionID">971</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="830282976"/>
<reference key="destination" ref="25590726"/>
</object>
<int key="connectionID">972</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="830282976"/>
<reference key="destination" ref="25590726"/>
</object>
<int key="connectionID">973</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="964566138"/>
<reference key="destination" ref="25590726"/>
</object>
<int key="connectionID">974</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionImgColumn</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="1059690284"/>
</object>
<int key="connectionID">975</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionNameColumn</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="415322677"/>
</object>
<int key="connectionID">976</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionIDColumn</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="861957185"/>
</object>
<int key="connectionID">977</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mFileSystemColumn</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="484280519"/>
</object>
<int key="connectionID">978</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mTabViewPanesSelect</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="964566138"/>
</object>
<int key="connectionID">979</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPartitionsTable</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="830282976"/>
</object>
<int key="connectionID">980</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mBootFrom</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="210384195"/>
</object>
<int key="connectionID">981</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mBootSetup</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="1039429426"/>
</object>
<int key="connectionID">982</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mBootFlags</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="10883603"/>
</object>
<int key="connectionID">983</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mPeripherals</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="848874798"/>
</object>
<int key="connectionID">984</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mAdvanced</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="645910071"/>
</object>
<int key="connectionID">985</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mEfiInject</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="558238232"/>
</object>
<int key="connectionID">986</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mSmbios</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="57268112"/>
</object>
<int key="connectionID">987</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mAbout</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="1003139064"/>
</object>
<int key="connectionID">988</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">mTabViewPanes</string>
<reference key="source" ref="25590726"/>
<reference key="destination" ref="869599070"/>
</object>
<int key="connectionID">989</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="544768780"/>
<reference ref="749902104"/>
<reference ref="639720406"/>
<reference ref="972442149"/>
<reference ref="475549282"/>
<reference ref="329022978"/>
</object>
<reference key="parent" ref="660800786"/>
</object>
<reference key="parent" ref="544768780"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">922</int>
<reference key="object" ref="749902104"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="555311857"/>
<reference ref="835643019"/>
<reference ref="800349758"/>
</object>
<reference key="parent" ref="1037298196"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">923</int>
<reference key="object" ref="555311857"/>
<reference key="parent" ref="749902104"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">924</int>
<reference key="object" ref="835643019"/>
<reference key="parent" ref="749902104"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">925</int>
<reference key="object" ref="800349758"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="431113093"/>
</object>
<reference key="parent" ref="749902104"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">927</int>
<reference key="object" ref="431113093"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="178730735"/>
</object>
<reference key="parent" ref="800349758"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">930</int>
<reference key="object" ref="178730735"/>
<reference key="parent" ref="431113093"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">935</int>
<reference key="object" ref="639720406"/>
<reference key="parent" ref="1037298196"/>
<reference ref="161129514"/>
<reference ref="822881392"/>
<reference ref="751357512"/>
<reference ref="49279634"/>
<reference ref="172306923"/>
<reference ref="262969164"/>
<reference ref="49279634"/>
</object>
<reference key="parent" ref="1003139064"/>
</object>
<reference key="object" ref="389526238"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="108632481"/>
<reference ref="1032245036"/>
<reference ref="158463244"/>
<reference ref="1064169092"/>
<reference ref="108632481"/>
</object>
<reference key="parent" ref="210384195"/>
</object>
<reference key="object" ref="694935989"/>
<reference key="parent" ref="1059690284"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">947</int>
<reference key="object" ref="329022978"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="110835066"/>
<reference ref="250904414"/>
<reference ref="964566138"/>
</object>
<reference key="parent" ref="1037298196"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">948</int>
<reference key="object" ref="110835066"/>
<reference key="parent" ref="329022978"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">949</int>
<reference key="object" ref="250904414"/>
<reference key="parent" ref="329022978"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">950</int>
<reference key="object" ref="964566138"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="820331058"/>
</object>
<reference key="parent" ref="329022978"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">952</int>
<reference key="object" ref="820331058"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="825103315"/>
</object>
<reference key="parent" ref="964566138"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">953</int>
<reference key="object" ref="825103315"/>
<reference key="parent" ref="820331058"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">961</int>
<reference key="object" ref="25590726"/>
<reference key="parent" ref="0"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<string>111.IBPluginDependency</string>
<string>12.IBEditorWindowLastContentRect</string>
<string>12.IBPluginDependency</string>
<string>12.IBViewEditorWindowController.showingLayoutRectangles</string>
<string>12.IBWindowTemplateEditedContentRect</string>
<string>12.ImportedFromIB2</string>
<string>12.windowTemplate.hasMinSize</string>
<string>919.IBPluginDependency</string>
<string>920.IBPluginDependency</string>
<string>921.IBPluginDependency</string>
<string>922.IBPluginDependency</string>
<string>923.IBPluginDependency</string>
<string>924.IBPluginDependency</string>
<string>925.IBPluginDependency</string>
<string>927.IBPluginDependency</string>
<string>930.IBPluginDependency</string>
<string>931.IBPluginDependency</string>
<string>932.IBPluginDependency</string>
<string>933.IBPluginDependency</string>
<string>936.IBPluginDependency</string>
<string>937.CustomClassName</string>
<string>937.IBPluginDependency</string>
<string>947.IBPluginDependency</string>
<string>947.ImportedFromIB2</string>
<string>948.IBShouldRemoveOnLegacySave</string>
<string>949.IBShouldRemoveOnLegacySave</string>
<string>950.CustomClassName</string>
<string>950.IBPluginDependency</string>
<string>950.ImportedFromIB2</string>
<string>952.IBPluginDependency</string>
<string>952.ImportedFromIB2</string>
<string>953.IBPluginDependency</string>
<string>953.ImportedFromIB2</string>
<string>961.IBPluginDependency</string>
<string>99.IBAttributePlaceholdersKey</string>
<string>99.IBPluginDependency</string>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{209, 388}, {677, 567}}</string>
<string>{{325, 100}, {677, 567}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{209, 388}, {677, 567}}</string>
<boolean value="YES"/>
<string>{{325, 100}, {677, 567}}</string>
<integer value="1"/>
<integer value="1"/>
<string>{224.664, 10}</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>
<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>Footer</string>
<object class="NSMutableDictionary">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>RoundedBox</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<boolean value="YES"/>
<boolean value="YES"/>
<string>CustomTableView</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">937</int>
<int key="maxID">989</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<string>footer</string>
<string>gradientEndColorWell</string>
<string>gradientStartColorWell</string>
<string>mFileSystemColumn</string>
<string>mOptions</string>
<string>mPartitionIDColumn</string>
<string>mPartitionImgColumn</string>
<string>mPartitionNameColumn</string>
<string>mPartitionsTable</string>
<string>mRestartButton</string>
<string>mShutDownButton</string>
<string>mSleepButton</string>
<string>RoundedBox</string>
<string>NSColorWell</string>
<string>NSColorWell</string>
<string>NSTableColumn</string>
<string>NSBox</string>
<string>NSTableColumn</string>
<string>NSTableColumn</string>
<string>NSTableColumn</string>
<string>CustomTableView</string>
<string>NSButton</string>
<string>NSButton</string>
<string>NSButton</string>
<string key="minorKey">Sources/SmbiosController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">TableViewsController</string>
<string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>mAbout</string>
<string>mAdvanced</string>
<string>mBootFlags</string>
<string>mBootFrom</string>
<string>mBootSetup</string>
<string>mEfiInject</string>
<string>mFileSystemColumn</string>
<string>mMenuName</string>
<string>mPartitionIDColumn</string>
<string>mPartitionImgColumn</string>
<string>mPartitionNameColumn</string>
<string>mPartitionsTable</string>
<string>mPeripherals</string>
<string>mSmbios</string>
<string>mTabViewPanes</string>
<string>mTabViewPanesSelect</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NSTabViewItem</string>
<string>NSTabViewItem</string>
<string>NSTabViewItem</string>
<string>NSTabViewItem</string>
<string>NSTabViewItem</string>
<string>NSTabViewItem</string>
<string>NSTableColumn</string>
<string>NSTableColumn</string>
<string>NSTableColumn</string>
<string>NSTableColumn</string>
<string>NSTableColumn</string>
<string>CustomTableView</string>
<string>NSTabViewItem</string>
<string>NSTabViewItem</string>
<string>NSTabView</string>
<string>CustomTableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../../../../../../devl/OSX/voodoo/chameleonApplications/branches/diebuche/ChameleonPrefPane/Sources/TableViewsController.h</string>
</object>
</object>
</object>
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
<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>

Archive Download the corresponding diff file

Revision: 82