At startup the preference pane check for the presence in ~/Library/LaunchAgents of the file it.infn.lnf.network.AFSBackgrounder.plist that. The agent could be started in OpenAFS preference pane view.
AFSBackgrounder has replaced the NSMenuExtra, when it doesn't quit well launchd restart it. AFSBackgrounder can be used also for other work, for now, at login it check the user preference for get token.
Has been made some refactoring in code for remove most warning.
The unused think are been delete from project.
Reviewed-on: http://gerrit.openafs.org/263
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
BOOL gotToken; //0-no 1-one o more token
@protected
+ AFSPropertyManager *afsMngr;
NSString *afsSysPath;
NSNumber *useAklogPrefValue;
NSNumber *showStatusMenu;
+ NSNumber *aklogTokenAtLogin;
//Icon for state visualization
- NSImage *hasTokenImage;
- NSImage *noTokenImage;
+ NSImage *hasTokenImage;
+ NSImage *noTokenImage;
//credential windows mainWindow
AFSMenuCredentialContoller *credentialMenuController;
- (void)chageMenuVisibility:(NSNotification *)notification;
- (NSImage*)getImageFromBundle:(NSString*)fileName fileExt:(NSString*)ext;
- (NSImage*)imageToRender;
-- (void)updateMenu;
+- (void)menuNeedsUpdate:(NSMenu *)menu;
- (void)repairHelperTool;
- (void) afsVolumeMountChange:(NSNotification *)notification;
@implementation AFSBackgrounderDelegate
#pragma mark NSApp Delegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
- NSLog(@"applicationDidFinishLaunching");
- //Create the NSStatusBar and set its length
- statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
-
- //Used to detect where our files are
- //NSBundle *bundle = [NSBundle mainBundle];
-
+ NSLog(@"Init the afs manager");
+ afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
+ // allocate the lock for concurent afs check state
+ tokensLock = [[NSLock alloc] init];
+
+ //remove the auto eanble on menu item
+ [backgrounderMenu setAutoenablesItems:NO];
//Sets the images in our NSStatusItem
statusItem = nil;
name:NSWorkspaceDidUnmountNotification object:nil];
//try to see if we need tho show the menu at startup
- NSLog(@"showStatusMenu %d", [showStatusMenu intValue]);
+
[self setStatusItem:[showStatusMenu boolValue]];
-
+
+ NSLog(@"Check if we need to get token at login time %d", [aklogTokenAtLogin intValue]);
+ if([aklogTokenAtLogin boolValue] && afsState && !gotToken) {
+ NSLog(@"Proceed to get token");
+ //check if we must get the aklog at logint(first run of backgrounder
+ [self getToken:nil];
+ }
}
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender {
// send notify that menuextra has closed
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAfsCommanderID object:kPrefChangeNotification];
+ if(tokensLock) [tokensLock release];
+ if(afsMngr) [afsMngr release];
return NSTerminateNow;
}
// -------------------------------------------------------------------------------
[afsSysPath release];
afsSysPath = nil;
}
+ CFPreferencesSynchronize((CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+ CFPreferencesSynchronize((CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
afsSysPath = PREFERENCE_AFS_SYS_PAT_STATIC;
(CFStringRef)kAfsCommanderID,
kCFPreferencesCurrentUser,
kCFPreferencesAnyHost);
+
+ aklogTokenAtLogin = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_AKLOG_TOKEN_AT_LOGIN, (CFStringRef)kAfsCommanderID,
+ kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
//set the menu name
[self updateAfsStatus:nil];
}
// -------------------------------------------------------------------------------
-// -(void) readPreferenceFile
+// - (void)chageMenuVisibility:(NSNotification *)notification
// -------------------------------------------------------------------------------
+/**/
- (void)chageMenuVisibility:(NSNotification *)notification {
NSLog(@"chageMenuVisibility");
[self readPreferenceFile:nil];
@try {
if(afsdPath == nil) return;
- AFSPropertyManager *afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
currentAfsState = [afsMngr checkAfsStatus];
- [afsMngr release];
-
rootHelperApp = [[NSBundle mainBundle] pathForResource:@"afshlp" ofType:@""];
//[startStopScript setString: resourcePath];
[self repairHelperTool];
// make the parameter to call the root helper app
- //NSLog(@"Path installazione afs: %s",[afsSysPath UTF8String]);
- //NSLog(@"Path installazione afsd: %s", [afsdPath UTF8String]);
status = [[AuthUtil shared] autorize];
if(status == noErr){
if(currentAfsState){
[afsPropMngr loadConfiguration];
- if([useAklogPrefValue intValue]==NSOnState ) {
+ if([useAklogPrefValue boolValue]) {
NSLog(@"Use Aklog");
[afsPropMngr getTokens:false
usr:nil
// -------------------------------------------------------------------------------
- (void)releaseToken:(id)sender
{
- AFSPropertyManager *afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
[afsMngr unlog:nil];
- [afsMngr release];
[self updateAfsStatus:nil];
}
if(![tokensLock tryLock]) return;
// check the afs state in esclusive mode
- AFSPropertyManager *afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
afsState = [afsMngr checkAfsStatus];
NSArray *tokens = [afsMngr getTokenList];
- [afsMngr release];
gotToken = [tokens count] > 0;
[tokens release];
- [self updateMenu];
//unlock
[tokensLock unlock];
}
-
-
// -------------------------------------------------------------------------------
-// -(void) updateMenu
+// - (void)menuNeedsUpdate:(NSMenu *)menu
// -------------------------------------------------------------------------------
-- (void)updateMenu{
- [getReleaseTokenMenuItem setEnabled:afsState];
- [startStopMenuItem setTitle:afsState?kAfsButtonShutdown:kAfsButtonStartup];
- [[statusItem view] setNeedsDisplay:YES];
-
+- (void)menuNeedsUpdate:(NSMenu *)menu {
+ if (menu == backgrounderMenu)
+ {
+ [startStopMenuItem setTitle:afsState?@"Shutdown AFS":@"Startup AFS"];
+ [getReleaseTokenMenuItem setTitle:gotToken?@"Release token":@"Get New Token"];
+ [getReleaseTokenMenuItem setEnabled:afsState];
+ [[statusItem view] setNeedsDisplay:YES];
+
+ }
}
[statusItem setImage:noTokenImage];
} else {
if(!statusItem) return;
- [statusItem release];
+ [[NSStatusBar systemStatusBar] removeStatusItem:statusItem];
+ [statusItem autorelease];
statusItem = nil;
}
}
[statusItemMenu setDelegate:nil];
[self setNeedsDisplay:YES];
}
+
+// -------------------------------------------------------------------------------
+// - (void)menuNeedsUpdate:(NSMenu *)menu
+// -------------------------------------------------------------------------------
+- (void)menuNeedsUpdate:(NSMenu *)menu {
+ [backgrounderDelegator menuNeedsUpdate:menu];
+}
@end
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilderKit</string>
<string>com.apple.InterfaceBuilderKit</string>
- <string>{{113, 626}, {125, 53}}</string>
+ <string>{{120, 603}, {125, 53}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">18</int>
+ <int key="maxID">19</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
- <key>LSUIElement</key>
- <true/>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.0</string>
+ <string>1.0b</string>
+ <key>LSUIElement</key>
+ <true/>
<key>NSMainNibFile</key>
<string>AFSBackounderMainMenu</string>
<key>NSPrincipalClass</key>
IBOutlet NSButton *dynRoot;
IBOutlet NSButton *afsDB;
IBOutlet NSButton *verbose;
+ IBOutlet NSButton *backgrounderActivationCheck;
IBOutlet NSBox *groupsBox;
//id installationPathTextField;
- (IBAction) aklogSwitchEvent:(id) sender;
- (IBAction) credentialAtLoginTimeEvent:(id) sender;
- (IBAction) afsStartupSwitchEvent:(id) sender;
-- (void) credentialAtLoginTimeEventCreationLaunchAgentDir:(NSWindow*)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo;
- (IBAction) krb5KredentialAtLoginTimeEvent:(id) sender;
- (IBAction) searchCellTextEvent:(id) sender;
+- (IBAction) manageBackgrounderActivation:(id)sender;
+- (void) credentialAtLoginTimeEventCreationLaunchAgentDir:(NSWindow*)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo;
- (void) clearCellServDBFiltering;
- (void) filterCellServDB:(NSString*)textToFilter;
- (DBCellElement*) getCurrentCellInDB;
- (void) readPreferenceFile;
- (void) refreshGui:(NSNotification *)notification;
- (void) afsVolumeMountChange:(NSNotification *)notification;
+- (void)tabView:(NSTabView *)tabView willSelectTabViewItem: (NSTabViewItem *)tabViewItem;
@end
@interface AFSCommanderPref (NSTableDataSource)
#define TAB_TOKENS 1
#define TAB_CELL_SERV_DB 2
#define TAB_CACHE 3
-#define TAB_GROUP 4
+#define TAB_LINK 4
//CellServDB table id
#define CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN 0
- (void) readPreferenceFile
{
- // read the preference for afs path
- //NSString *afsSysPath = PREFERENCE_AFS_SYS_PAT_STATIC;/*(NSString*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_AFS_SYS_PAT, (CFStringRef)kAfsCommanderID,
- // kCFPreferencesAnyUser, kCFPreferencesAnyHost);*/
- /*if(afsSysPath){
- [((NSTextField*) installationPathTextField ) setStringValue:afsSysPath];
- }*/
-
// read the preference for aklog use
NSNumber *useAklogPrefValue = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_USE_AKLOG, (CFStringRef)kAfsCommanderID,
kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
NSNumber *aklogTokenAtLogin = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_AKLOG_TOKEN_AT_LOGIN, (CFStringRef)kAfsCommanderID,
kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
[useAklogCheck setState:[useAklogPrefValue intValue]];
- if(useAklogPrefValue){
- [aklogCredentialAtLoginTime setEnabled:[aklogTokenAtLogin boolValue]];
- } else {
- [aklogCredentialAtLoginTime setEnabled:NSOffState];
- [aklogCredentialAtLoginTime setState:NSOffState];
- }
-
+ [aklogCredentialAtLoginTime setEnabled:useAklogPrefValue && [useAklogPrefValue boolValue]];
+ [aklogCredentialAtLoginTime setState:aklogTokenAtLogin && [aklogTokenAtLogin boolValue]];
+
+ //check krb5 at login time
+ [installKRB5AuthAtLoginButton setState:[PListManager checkKrb5AtLoginTimeLaunchdEnable]];
+
//check for AFS enable at startup
NSNumber *afsEnableStartupTime = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_START_AFS_AT_STARTUP,
(CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
//set the check button state
[checkButtonAfsAtBootTime setState:startAFSAtLogin];
- NSNumber *showStatusMenu = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU, (CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+ NSNumber *showStatusMenu = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU, (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
[(NSButton*)afsMenucheckBox setState: [showStatusMenu boolValue]];
+
+ //backgrounder state
+ [backgrounderActivationCheck setState:[PListManager launchdJobState:BACKGROUNDER_P_FILE]];
}
// -------------------------------------------------------------------------------
//set aklog at login
CFPreferencesSetValue((CFStringRef)PREFERENCE_AKLOG_TOKEN_AT_LOGIN,
(CFNumberRef)[NSNumber numberWithBool:[aklogCredentialAtLoginTime state]],
- (CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+ (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
//set aklog at login
CFPreferencesSetValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU,
(CFNumberRef)[NSNumber numberWithBool:[afsMenucheckBox state]],
- (CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+ (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
CFPreferencesSynchronize((CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
CFPreferencesSynchronize((CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
}
-
// -------------------------------------------------------------------------------
// credentialAtLoginTimeEvent:
// -------------------------------------------------------------------------------
- (IBAction) enableLink:(id) sender {
}
+
+// -------------------------------------------------------------------------------
+// removeExtra:
+// -------------------------------------------------------------------------------
+- (IBAction) manageBackgrounderActivation:(id)sender {
+ [PListManager launchctlCommand:[(NSButton*)sender state]
+ userDomain:YES
+ option:[NSArray arrayWithObjects:@"-S", @"Aqua", nil]
+ plistName:[NSString stringWithFormat:@"%@.plist", BACKGROUNDER_P_FILE]];
+ //re ad the status to check taht all is gone well
+ [backgrounderActivationCheck setState:[PListManager launchdJobState:BACKGROUNDER_P_FILE]];
+}
+
+
+// -------------------------------------------------------------------------------
+// - (void)tabView:(NSTabView *)tabView willSelectTabViewItem: (NSTabViewItem *)tabViewItem
+// -------------------------------------------------------------------------------
+- (void)tabView:(NSTabView *)tabView willSelectTabViewItem: (NSTabViewItem *)tabViewItem
+{
+ //check to see if the cache param tab is the tab that will be selected
+ if([((NSString*)[tabViewItem identifier]) intValue] == TAB_LINK)
+ {
+
+ // [groupsBox setHidden:YES];
+ NSLog([tabViewItem label]);
+ [ViewUtility enbleDisableControlView:[tabViewItem view]
+ controlState:NO];
+ }
+}
+
@end
@implementation AFSCommanderPref (NSTableDataSource)
}
return rowCount;
}
-
-
@end
[lyncCreationSheet orderOut:self];
}
@end
-
-// -------------------------------------------------------------------------------
-// AFSCommanderPref(NSTabViewDelegator) - delegate for nstabview in
-// main preference view
-// -------------------------------------------------------------------------------
-@implementation AFSCommanderPref(NSTabViewDelegator)
-- (void)tabView:(NSTabView *)tabView willSelectTabViewItem: (NSTabViewItem *)tabViewItem
-{
- //check to see if the cache param tab is the tab that will be selected
- if([((NSString*)[tabViewItem identifier]) intValue] == TAB_GROUP)
- {
- //get
- NSLog(@"cache param tab");
- // [groupsBox setHidden:YES];
- NSLog([groupsBox title]);
- [ViewUtility enbleDisableControlView:[groupsBox contentView]
- controlState:NO];
- }
-}
-@end
\ No newline at end of file
reason:kThisCellFOError
userInfo:nil];
}
- NSLog(@"Cell found: %s", [cellName cString]);
+ NSLog(@"Cell found: %@", cellName);
//read TheseCell file
[filePath setString: installationPath];
{
NSString *tmpString = nil;
NSString *result = [TaskUtil executeTaskSearchingPath:@"fs" args:[NSArray arrayWithObjects:@"-version", nil]];
- if(result) NSLog(@"fs -version return: %s", [result cString]);
+ if(result) NSLog(@"fs -version return: %@", result);
NSCharacterSet *endVersionCS = [NSCharacterSet characterSetWithCharactersInString:@"qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAPOIUYTREWQ"];
NSError *error = nil;
NSString *tmpStr = nil;
- NSLog(@"Try to opening file: %s",[configFile cString] );
+ NSLog(@"Try to opening file: %@",configFile);
NSString * result = [NSString stringWithContentsOfFile:configFile
encoding:NSASCIIStringEncoding
error:&error];
modalDelegate:delegator
didEndSelector:fSelector
contextInfo:nil];
+ return YES;
}
@end
<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">9C31</string>
- <string key="IBDocument.InterfaceBuilderVersion">648</string>
- <string key="IBDocument.AppKitVersion">949.26</string>
- <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <string key="IBDocument.SystemVersion">9J61</string>
+ <string key="IBDocument.InterfaceBuilderVersion">680</string>
+ <string key="IBDocument.AppKitVersion">949.46</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="6"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="429600039">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSCustomObject" id="657952263">
<object class="NSWindowTemplate" id="249730404">
<int key="NSWindowStyleMask">11</int>
<int key="NSWindowBacking">2</int>
- <string key="NSWindowRect">{{622, 526}, {525, 370}}</string>
+ <string key="NSWindowRect">{{622, 551}, {525, 345}}</string>
<int key="NSWTFlags">813170688</int>
<string key="NSWindowTitle">Panel</string>
<object class="NSMutableString" key="NSWindowClass">
<object class="NSMutableString" key="NSViewClass">
<characters key="NS.bytes">View</characters>
</object>
+ <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
<string key="NSWindowContentMinSize">{525, 345}</string>
<object class="NSView" key="NSWindowView" id="274468230">
- <nil key="NSNextResponder"/>
+ <reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSButton" id="800283714">
<reference key="NSNextResponder" ref="274468230"/>
<int key="NSvFlags">289</int>
- <string key="NSFrame">{{430, 13}, {80, 28}}</string>
+ <string key="NSFrame">{{428, 12}, {80, 28}}</string>
<reference key="NSSuperview" ref="274468230"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1042040079">
<object class="NSButton" id="956015576">
<reference key="NSNextResponder" ref="274468230"/>
<int key="NSvFlags">289</int>
- <string key="NSFrame">{{348, 13}, {80, 28}}</string>
+ <string key="NSFrame">{{346, 12}, {80, 28}}</string>
<reference key="NSSuperview" ref="274468230"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="441391248">
<object class="NSTextField" id="680338282">
<reference key="NSNextResponder" ref="274468230"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{51, 344}, {54, 16}}</string>
+ <string key="NSFrame">{{51, 319}, {54, 16}}</string>
<reference key="NSSuperview" ref="274468230"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="496687085">
<object class="NSTableView" id="234348651">
<reference key="NSNextResponder" ref="786132725"/>
<int key="NSvFlags">256</int>
- <string key="NSFrameSize">{453, 190}</string>
+ <string key="NSFrameSize">{453, 165}</string>
<reference key="NSSuperview" ref="786132725"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="367895900">
<bool key="NSAllowsTypeSelect">YES</bool>
</object>
</object>
- <string key="NSFrame">{{1, 17}, {453, 190}}</string>
+ <string key="NSFrame">{{1, 17}, {453, 165}}</string>
<reference key="NSSuperview" ref="585065386"/>
<reference key="NSNextKeyView" ref="234348651"/>
<reference key="NSDocView" ref="234348651"/>
</object>
<reference ref="211425262"/>
</object>
- <string key="NSFrame">{{16, 30}, {455, 208}}</string>
+ <string key="NSFrame">{{16, 30}, {455, 183}}</string>
<reference key="NSSuperview" ref="612441040"/>
<reference key="NSNextKeyView" ref="786132725"/>
<int key="NSsFlags">562</int>
<reference key="NSHScroller" ref="814656055"/>
<reference key="NSContentView" ref="786132725"/>
<reference key="NSHeaderClipView" ref="336840699"/>
+ <reference key="NSCornerView" ref="211425262"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
+ <object class="NSButton" id="216429474">
+ <reference key="NSNextResponder" ref="612441040"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{315, 6}, {75, 16}}</string>
+ <reference key="NSSuperview" ref="612441040"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="305136955">
+ <int key="NSCellFlags">604110336</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">Delete</string>
+ <object class="NSFont" key="NSSupport" id="22">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">9.000000e+00</double>
+ <int key="NSfFlags">3614</int>
+ </object>
+ <reference key="NSControlView" ref="216429474"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">1</int>
+ <object class="NSFont" key="NSAlternateImage" id="160758642">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">9.000000e+00</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <string key="NSAlternateContents"/>
+ <object class="NSMutableString" key="NSKeyEquivalent">
+ <characters key="NS.bytes"/>
+ </object>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="655780437">
+ <reference key="NSNextResponder" ref="612441040"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{396, 6}, {75, 16}}</string>
+ <reference key="NSSuperview" ref="612441040"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="675738899">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134479872</int>
+ <string key="NSContents">Add</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="655780437"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">1</int>
+ <reference key="NSAlternateImage" ref="160758642"/>
+ <string key="NSAlternateContents"/>
+ <object class="NSMutableString" key="NSKeyEquivalent">
+ <characters key="NS.bytes"/>
+ </object>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
</object>
- <string key="NSFrame">{{2, 2}, {487, 249}}</string>
+ <string key="NSFrame">{{2, 2}, {487, 224}}</string>
<reference key="NSSuperview" ref="338197250"/>
</object>
</object>
- <string key="NSFrame">{{17, 41}, {491, 266}}</string>
+ <string key="NSFrame">{{17, 41}, {491, 241}}</string>
<reference key="NSSuperview" ref="274468230"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSTitlePosition">2</int>
<bool key="NSTransparent">NO</bool>
</object>
- <object class="NSButton" id="216429474">
- <reference key="NSNextResponder" ref="274468230"/>
- <int key="NSvFlags">289</int>
- <string key="NSFrame">{{331, 52}, {75, 16}}</string>
- <reference key="NSSuperview" ref="274468230"/>
- <bool key="NSEnabled">YES</bool>
- <object class="NSButtonCell" key="NSCell" id="305136955">
- <int key="NSCellFlags">604110336</int>
- <int key="NSCellFlags2">134479872</int>
- <string key="NSContents">Delete</string>
- <object class="NSFont" key="NSSupport" id="22">
- <string key="NSName">LucidaGrande</string>
- <double key="NSSize">9.000000e+00</double>
- <int key="NSfFlags">3614</int>
- </object>
- <reference key="NSControlView" ref="216429474"/>
- <int key="NSButtonFlags">-2038284033</int>
- <int key="NSButtonFlags2">1</int>
- <object class="NSFont" key="NSAlternateImage" id="160758642">
- <string key="NSName">LucidaGrande</string>
- <double key="NSSize">9.000000e+00</double>
- <int key="NSfFlags">16</int>
- </object>
- <string key="NSAlternateContents"/>
- <object class="NSMutableString" key="NSKeyEquivalent">
- <characters key="NS.bytes"/>
- </object>
- <int key="NSPeriodicDelay">200</int>
- <int key="NSPeriodicInterval">25</int>
- </object>
- </object>
- <object class="NSButton" id="655780437">
- <reference key="NSNextResponder" ref="274468230"/>
- <int key="NSvFlags">289</int>
- <string key="NSFrame">{{412, 52}, {75, 16}}</string>
- <reference key="NSSuperview" ref="274468230"/>
- <bool key="NSEnabled">YES</bool>
- <object class="NSButtonCell" key="NSCell" id="675738899">
- <int key="NSCellFlags">67239424</int>
- <int key="NSCellFlags2">134479872</int>
- <string key="NSContents">Add</string>
- <reference key="NSSupport" ref="22"/>
- <reference key="NSControlView" ref="655780437"/>
- <int key="NSButtonFlags">-2038284033</int>
- <int key="NSButtonFlags2">1</int>
- <reference key="NSAlternateImage" ref="160758642"/>
- <string key="NSAlternateContents"/>
- <object class="NSMutableString" key="NSKeyEquivalent">
- <characters key="NS.bytes"/>
- </object>
- <int key="NSPeriodicDelay">200</int>
- <int key="NSPeriodicInterval">25</int>
- </object>
- </object>
<object class="NSTextField" id="953679499">
<reference key="NSNextResponder" ref="274468230"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{44, 314}, {61, 16}}</string>
+ <string key="NSFrame">{{44, 289}, {61, 16}}</string>
<reference key="NSSuperview" ref="274468230"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="847361982">
<object class="NSTextField" id="379757882">
<reference key="NSNextResponder" ref="274468230"/>
<int key="NSvFlags">266</int>
- <string key="NSFrame">{{110, 344}, {389, 19}}</string>
+ <string key="NSFrame">{{110, 319}, {389, 19}}</string>
<reference key="NSSuperview" ref="274468230"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="620196816">
<object class="NSTextField" id="523190513">
<reference key="NSNextResponder" ref="274468230"/>
<int key="NSvFlags">266</int>
- <string key="NSFrame">{{110, 315}, {389, 19}}</string>
+ <string key="NSFrame">{{110, 290}, {389, 19}}</string>
<reference key="NSSuperview" ref="274468230"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="115478350">
</object>
</object>
</object>
- <string key="NSFrameSize">{525, 370}</string>
+ <string key="NSFrameSize">{525, 345}</string>
+ <reference key="NSSuperview"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
<string key="NSMinSize">{525, 367}</string>
<reference key="object" ref="274468230"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="800283714"/>
- <reference ref="956015576"/>
<reference ref="680338282"/>
<reference ref="338197250"/>
- <reference ref="216429474"/>
- <reference ref="655780437"/>
<reference ref="953679499"/>
<reference ref="379757882"/>
<reference ref="523190513"/>
+ <reference ref="800283714"/>
+ <reference ref="956015576"/>
</object>
<reference key="parent" ref="249730404"/>
</object>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="585065386"/>
- </object>
- <reference key="parent" ref="274468230"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">38</int>
- <reference key="object" ref="216429474"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="305136955"/>
- </object>
- <reference key="parent" ref="274468230"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">39</int>
- <reference key="object" ref="655780437"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="675738899"/>
+ <reference ref="655780437"/>
+ <reference ref="216429474"/>
</object>
<reference key="parent" ref="274468230"/>
</object>
<reference key="object" ref="496687085"/>
<reference key="parent" ref="680338282"/>
</object>
- <object class="IBObjectRecord">
- <int key="objectID">65</int>
- <reference key="object" ref="305136955"/>
- <reference key="parent" ref="216429474"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">66</int>
- <reference key="object" ref="675738899"/>
- <reference key="parent" ref="655780437"/>
- </object>
<object class="IBObjectRecord">
<int key="objectID">67</int>
<reference key="object" ref="847361982"/>
<reference key="object" ref="228999791"/>
<reference key="parent" ref="1066913939"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">38</int>
+ <reference key="object" ref="216429474"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="305136955"/>
+ </object>
+ <reference key="parent" ref="338197250"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">65</int>
+ <reference key="object" ref="305136955"/>
+ <reference key="parent" ref="216429474"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">39</int>
+ <reference key="object" ref="655780437"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="675738899"/>
+ </object>
+ <reference key="parent" ref="338197250"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">66</int>
+ <reference key="object" ref="675738899"/>
+ <reference key="parent" ref="655780437"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<string>38.ImportedFromIB2</string>
<string>39.IBPluginDependency</string>
<string>39.ImportedFromIB2</string>
- <string>5.IBPluginDependency</string>
+ <string>5.IBEditorWindowLastContentRect</string>
+ <string>5.IBViewEditorWindowController.showingBoundsRectangles</string>
+ <string>5.IBViewEditorWindowController.showingLayoutRectangles</string>
+ <string>5.IBWindowTemplateEditedContentRect</string>
<string>5.ImportedFromIB2</string>
<string>5.windowTemplate.hasMinSize</string>
<string>5.windowTemplate.minSize</string>
<string>56.ImportedFromIB2</string>
<string>6.IBPluginDependency</string>
<string>6.ImportedFromIB2</string>
+ <string>62.IBPluginDependency</string>
+ <string>63.IBPluginDependency</string>
+ <string>64.IBPluginDependency</string>
+ <string>65.IBPluginDependency</string>
+ <string>66.IBPluginDependency</string>
+ <string>67.IBPluginDependency</string>
+ <string>68.IBPluginDependency</string>
+ <string>69.IBPluginDependency</string>
<string>7.IBPluginDependency</string>
<string>7.ImportedFromIB2</string>
+ <string>70.IBPluginDependency</string>
<string>70.IBShouldRemoveOnLegacySave</string>
+ <string>71.IBPluginDependency</string>
<string>71.IBShouldRemoveOnLegacySave</string>
+ <string>72.IBPluginDependency</string>
<string>72.IBShouldRemoveOnLegacySave</string>
+ <string>73.IBPluginDependency</string>
<string>73.IBShouldRemoveOnLegacySave</string>
+ <string>74.IBPluginDependency</string>
<string>74.IBShouldRemoveOnLegacySave</string>
<string>8.IBPluginDependency</string>
<string>8.ImportedFromIB2</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <integer value="1" id="5"/>
+ <integer value="1" id="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
- <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{{76, 288}, {525, 345}}</string>
+ <boolean value="YES" id="5"/>
<reference ref="5"/>
- <reference ref="5"/>
+ <string>{{76, 288}, {525, 345}}</string>
+ <reference ref="9"/>
+ <reference ref="9"/>
<string>{525, 345}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
- <reference ref="5"/>
- <reference ref="5"/>
- <reference ref="5"/>
- <reference ref="5"/>
- <reference ref="5"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="5"/>
+ <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>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>addLink:</string>
<string>addRemoveCell:</string>
<string>afsMenuActivationEvent:</string>
+ <string>afsStartupSwitchEvent:</string>
<string>aklogSwitchEvent:</string>
+ <string>credentialAtLoginTimeEvent:</string>
+ <string>enableLink:</string>
<string>getNewToken:</string>
<string>info:</string>
+ <string>krb5KredentialAtLoginTimeEvent:</string>
+ <string>manageBackgrounderActivation:</string>
<string>refreshConfiguration:</string>
+ <string>removeLink:</string>
<string>saveCacheManagerParam:</string>
<string>saveConfiguration:</string>
<string>searchCellTextEvent:</string>
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string>afsMenucheckBox</string>
<string>afsRootMountPoint</string>
<string>afsVersionLabel</string>
+ <string>aklogCredentialAtLoginTime</string>
+ <string>backgrounderActivationCheck</string>
+ <string>buttonAddLink</string>
+ <string>buttonRemoveLink</string>
<string>cacheDimension</string>
<string>cellIpButton</string>
<string>cellList</string>
+ <string>checkButtonAfsAtBootTime</string>
+ <string>checkEnableLink</string>
<string>credentialCommander</string>
<string>credentialSheet</string>
<string>dCacheDim</string>
<string>groupsBox</string>
<string>infoController</string>
<string>infoSheet</string>
- <string>installationPathTextField</string>
+ <string>installKRB5AuthAtLoginButton</string>
<string>ipConfControllerCommander</string>
<string>ipConfigurationSheet</string>
<string>labelSaveResult</string>
+ <string>lyncCreationSheet</string>
+ <string>lynkCreationController</string>
<string>nVolEntry</string>
- <string>refreshConfigurationButton</string>
<string>removeCellButton</string>
<string>saveConfigurationButton</string>
<string>startStopButton</string>
<string>statCacheEntry</string>
+ <string>textFieldDevInfoLabel</string>
<string>textSearchField</string>
<string>tokensButton</string>
<string>tokensTable</string>
<string>id</string>
<string>NSTextField</string>
<string>NSTextField</string>
+ <string>NSButton</string>
+ <string>NSButton</string>
+ <string>NSButton</string>
+ <string>NSButton</string>
<string>NSTextField</string>
<string>id</string>
<string>id</string>
+ <string>NSButton</string>
+ <string>NSButton</string>
<string>id</string>
<string>id</string>
<string>NSTextField</string>
<string>NSBox</string>
<string>id</string>
<string>id</string>
+ <string>NSButton</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>LynkCreationController</string>
<string>NSTextField</string>
<string>id</string>
<string>id</string>
<string>id</string>
- <string>id</string>
+ <string>NSTextField</string>
<string>NSTextField</string>
<string>NSSearchField</string>
<string>NSButton</string>
</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"/>
<string key="minorKey"/>
</object>
</object>
+ <object class="IBPartialClassDescription">
+ <string key="className">LynkCreationController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>cancell:</string>
+ <string>save:</string>
+ <string>selectLinkDest:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <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">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>lynkCreationSheet</string>
+ <string>textFieldLinkDestPath</string>
+ <string>textfieldLinkName</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>NSPanel</string>
+ <string>NSTextField</string>
+ <string>NSTextField</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">LynkCreationController.h</string>
+ </object>
+ </object>
<object class="IBPartialClassDescription">
<string key="className">NSPreferencePane</string>
<string key="superclassName">NSObject</string>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.LastKnownRelativeProjectPath">../../AFSCommander.xcodeproj</string>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../OpenAFS.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
</archive>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="6"/>
+ <integer value="101"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTextField" id="415603882">
<reference key="NSNextResponder" ref="645279396"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{17, 0}, {488, 17}}</string>
+ <string key="NSFrame">{{17, 1}, {304, 14}}</string>
<reference key="NSSuperview" ref="645279396"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="947523856">
<object class="NSButton" id="709840556">
<reference key="NSNextResponder" ref="520583273"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{13, 9}, {109, 28}}</string>
+ <string key="NSFrame">{{13, 7}, {109, 28}}</string>
<reference key="NSSuperview" ref="520583273"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="675447498">
<object class="NSButton" id="871603218">
<reference key="NSNextResponder" ref="520583273"/>
<int key="NSvFlags">265</int>
- <string key="NSFrame">{{526, 12}, {21, 23}}</string>
+ <string key="NSFrame">{{526, 9}, {21, 23}}</string>
<reference key="NSSuperview" ref="520583273"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1009755861">
<int key="NSPeriodicInterval">25</int>
</object>
</object>
- <object class="NSButton" id="239701474">
- <reference key="NSNextResponder" ref="520583273"/>
- <int key="NSvFlags">268</int>
- <string key="NSFrame">{{273, 15}, {170, 18}}</string>
- <reference key="NSSuperview" ref="520583273"/>
- <bool key="NSEnabled">YES</bool>
- <object class="NSButtonCell" key="NSCell" id="855912809">
- <int key="NSCellFlags">67239424</int>
- <int key="NSCellFlags2">0</int>
- <string key="NSContents">Get Krb5 credential at login</string>
- <object class="NSFont" key="NSSupport" id="894635401">
- <string key="NSName">LucidaGrande</string>
- <double key="NSSize">1.100000e+01</double>
- <int key="NSfFlags">16</int>
- </object>
- <reference key="NSControlView" ref="239701474"/>
- <int key="NSButtonFlags">1211912703</int>
- <int key="NSButtonFlags2">130</int>
- <object class="NSCustomResource" key="NSNormalImage" id="1069694397">
- <string key="NSClassName">NSImage</string>
- <string key="NSResourceName">NSSwitch</string>
- </object>
- <object class="NSButtonImageSource" key="NSAlternateImage" id="894136682">
- <string key="NSImageName">NSSwitch</string>
- </object>
- <string key="NSAlternateContents"/>
- <string key="NSKeyEquivalent"/>
- <int key="NSPeriodicDelay">200</int>
- <int key="NSPeriodicInterval">25</int>
- </object>
- </object>
<object class="NSButton" id="713307252">
<reference key="NSNextResponder" ref="520583273"/>
<int key="NSvFlags">-2147483380</int>
- <string key="NSFrame">{{138, 15}, {117, 18}}</string>
+ <string key="NSFrame">{{138, 13}, {117, 18}}</string>
<reference key="NSSuperview" ref="520583273"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="98390178">
<reference key="NSControlView" ref="713307252"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
- <reference key="NSAlternateImage" ref="894136682"/>
+ <object class="NSCustomResource" key="NSNormalImage" id="502435249">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSSwitch</string>
+ </object>
+ <object class="NSButtonImageSource" key="NSAlternateImage" id="894136682">
+ <string key="NSImageName">NSSwitch</string>
+ </object>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
</object>
</object>
</object>
- <string key="NSFrame">{{1, 1}, {562, 49}}</string>
+ <string key="NSFrame">{{1, 1}, {562, 43}}</string>
<reference key="NSSuperview" ref="748501112"/>
</object>
</object>
- <string key="NSFrame">{{17, 417}, {564, 51}}</string>
+ <string key="NSFrame">{{17, 423}, {564, 45}}</string>
<reference key="NSSuperview" ref="645279396"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<object class="NSButton" id="210387551">
<reference key="NSNextResponder" ref="1020318718"/>
<int key="NSvFlags">265</int>
- <string key="NSFrame">{{322, 167}, {80, 28}}</string>
+ <string key="NSFrame">{{329, 164}, {80, 28}}</string>
<reference key="NSSuperview" ref="1020318718"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="327131725">
<object class="NSButton" id="977607312">
<reference key="NSNextResponder" ref="1020318718"/>
<int key="NSvFlags">265</int>
- <string key="NSFrame">{{407, 167}, {133, 28}}</string>
+ <string key="NSFrame">{{407, 164}, {133, 28}}</string>
<reference key="NSSuperview" ref="1020318718"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="73578210">
<object class="NSButton" id="893552286">
<reference key="NSNextResponder" ref="1020318718"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{14, 163}, {86, 18}}</string>
+ <string key="NSFrame">{{14, 172}, {86, 18}}</string>
<reference key="NSSuperview" ref="1020318718"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="428850916">
<reference key="NSControlView" ref="893552286"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<object class="NSButton" id="478533800">
<reference key="NSNextResponder" ref="1000204505"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{5, 31}, {75, 18}}</string>
+ <string key="NSFrame">{{5, 32}, {75, 18}}</string>
<reference key="NSSuperview" ref="1000204505"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="989004902">
<reference key="NSControlView" ref="478533800"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<object class="NSButton" id="541208829">
<reference key="NSNextResponder" ref="1000204505"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{5, 11}, {167, 18}}</string>
+ <string key="NSFrame">{{5, 12}, {167, 18}}</string>
<reference key="NSSuperview" ref="1000204505"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="95048095">
<reference key="NSControlView" ref="541208829"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
+ <reference key="NSAlternateImage" ref="894136682"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="239701474">
+ <reference key="NSNextResponder" ref="1000204505"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{5, 52}, {170, 18}}</string>
+ <reference key="NSSuperview" ref="1000204505"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="855912809">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">Get Krb5 credential at login</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="239701474"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
</object>
</object>
</object>
- <string key="NSFrame">{{1, 1}, {195, 57}}</string>
+ <string key="NSFrame">{{1, 1}, {193, 78}}</string>
<reference key="NSSuperview" ref="184192603"/>
</object>
</object>
- <string key="NSFrame">{{103, 130}, {197, 73}}</string>
+ <string key="NSFrame">{{113, 97}, {195, 94}}</string>
<reference key="NSSuperview" ref="1020318718"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
- <string key="NSContents"/>
+ <string key="NSContents">Kerberos Setting</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="878835253"/>
<object class="NSColor" key="NSTextColor">
<int key="NSTitlePosition">2</int>
<bool key="NSTransparent">NO</bool>
</object>
+ <object class="NSButton" id="343070533">
+ <reference key="NSNextResponder" ref="1020318718"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{14, 152}, {96, 18}}</string>
+ <reference key="NSSuperview" ref="1020318718"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="237101992">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">Backgrounder</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="343070533"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">130</int>
+ <reference key="NSNormalImage" ref="502435249"/>
+ <reference key="NSAlternateImage" ref="894136682"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
</object>
<string key="NSFrame">{{10, 25}, {552, 363}}</string>
<reference key="NSSuperview" ref="739317740"/>
<reference key="NSControlView" ref="788506691"/>
<int key="NSButtonFlags">-2038021889</int>
<int key="NSButtonFlags2">35</int>
- <reference key="NSAlternateImage" ref="894635401"/>
+ <object class="NSFont" key="NSAlternateImage" id="894635401">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.100000e+01</double>
+ <int key="NSfFlags">16</int>
+ </object>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<reference key="NSControlView" ref="536830463"/>
<int key="NSButtonFlags">1215582719</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<reference key="NSControlView" ref="536830463"/>
<int key="NSButtonFlags">1212436991</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<reference key="NSControlView" ref="1070305297"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<reference key="NSControlView" ref="805322468"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<reference key="NSControlView" ref="1064737768"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<reference key="NSControlView" ref="509563943"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<reference key="NSControlView" ref="224507096"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">130</int>
- <reference key="NSNormalImage" ref="1069694397"/>
+ <reference key="NSNormalImage" ref="502435249"/>
<reference key="NSAlternateImage" ref="894136682"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<object class="NSTextField" id="1047946385">
<reference key="NSNextResponder" ref="645279396"/>
<int key="NSvFlags">289</int>
- <string key="NSFrame">{{229, 6}, {349, 11}}</string>
+ <string key="NSFrame">{{323, 3}, {258, 11}}</string>
<reference key="NSSuperview" ref="645279396"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="999146642">
</object>
<int key="connectionID">2053</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">backgrounderActivationCheck</string>
+ <reference key="source" ref="773588579"/>
+ <reference key="destination" ref="343070533"/>
+ </object>
+ <int key="connectionID">2056</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">manageBackgrounderActivation:</string>
+ <reference key="source" ref="773588579"/>
+ <reference key="destination" ref="343070533"/>
+ </object>
+ <int key="connectionID">2057</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<reference key="object" ref="645279396"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="415603882"/>
<reference ref="1047946385"/>
- <reference ref="748501112"/>
+ <reference ref="415603882"/>
<reference ref="739317740"/>
+ <reference ref="748501112"/>
</object>
<reference key="parent" ref="61231707"/>
</object>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="440720679"/>
- <reference ref="210387551"/>
<reference ref="977607312"/>
<reference ref="184192603"/>
<reference ref="893552286"/>
+ <reference ref="343070533"/>
+ <reference ref="210387551"/>
</object>
<reference key="parent" ref="269508902"/>
</object>
<reference ref="709840556"/>
<reference ref="713307252"/>
<reference ref="871603218"/>
- <reference ref="239701474"/>
</object>
<reference key="parent" ref="645279396"/>
</object>
<reference key="object" ref="184192603"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="239701474"/>
<reference ref="478533800"/>
<reference ref="541208829"/>
</object>
<reference key="object" ref="95048095"/>
<reference key="parent" ref="541208829"/>
</object>
- <object class="IBObjectRecord">
- <int key="objectID">2018</int>
- <reference key="object" ref="239701474"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="855912809"/>
- </object>
- <reference key="parent" ref="748501112"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">2019</int>
- <reference key="object" ref="855912809"/>
- <reference key="parent" ref="239701474"/>
- </object>
<object class="IBObjectRecord">
<int key="objectID">2022</int>
<reference key="object" ref="126070858"/>
<reference key="object" ref="98390178"/>
<reference key="parent" ref="713307252"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2054</int>
+ <reference key="object" ref="343070533"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="237101992"/>
+ </object>
+ <reference key="parent" ref="1020318718"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2055</int>
+ <reference key="object" ref="237101992"/>
+ <reference key="parent" ref="343070533"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2018</int>
+ <reference key="object" ref="239701474"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="855912809"/>
+ </object>
+ <reference key="parent" ref="184192603"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2019</int>
+ <reference key="object" ref="855912809"/>
+ <reference key="parent" ref="239701474"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<string>1199.IBPluginDependency</string>
<string>1199.ImportedFromIB2</string>
<string>12.IBEditorWindowLastContentRect</string>
+ <string>12.IBViewEditorWindowController.showingBoundsRectangles</string>
+ <string>12.IBViewEditorWindowController.showingLayoutRectangles</string>
<string>12.IBWindowTemplateEditedContentRect</string>
<string>12.ImportedFromIB2</string>
<string>12.windowTemplate.hasMinSize</string>
<string>2038.IBPluginDependency</string>
<string>2049.IBPluginDependency</string>
<string>2050.IBPluginDependency</string>
+ <string>2054.IBPluginDependency</string>
+ <string>2055.IBPluginDependency</string>
<string>207.IBPluginDependency</string>
<string>207.ImportedFromIB2</string>
<string>208.IBEditorWindowLastContentRect</string>
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
- <string>{{50, 153}, {595, 486}}</string>
- <string>{{50, 153}, {595, 486}}</string>
- <reference ref="9"/>
+ <string>{{70, 135}, {595, 486}}</string>
<boolean value="NO" id="6"/>
+ <reference ref="6"/>
+ <string>{{70, 135}, {595, 486}}</string>
+ <reference ref="9"/>
+ <reference ref="6"/>
<string>{3.40282e+38, 3.40282e+38}</string>
<string>{0, 0}</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>
<reference ref="9"/>
<string>{{0, 510}, {715, 485}}</string>
<string>{{0, 510}, {715, 485}}</string>
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">2053</int>
+ <int key="maxID">2057</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<string>getNewToken:</string>
<string>info:</string>
<string>krb5KredentialAtLoginTimeEvent:</string>
+ <string>manageBackgrounderActivation:</string>
<string>refreshConfiguration:</string>
<string>removeLink:</string>
<string>saveCacheManagerParam:</string>
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string>afsRootMountPoint</string>
<string>afsVersionLabel</string>
<string>aklogCredentialAtLoginTime</string>
+ <string>backgrounderActivationCheck</string>
<string>buttonAddLink</string>
<string>buttonRemoveLink</string>
<string>cacheDimension</string>
<string>NSButton</string>
<string>NSButton</string>
<string>NSButton</string>
+ <string>NSButton</string>
<string>NSTextField</string>
<string>id</string>
<string>id</string>
[cellElement setCellName:[((NSControl*) textFieldCellName) stringValue]];
[cellElement setCellComment:[((NSControl*) textFieldComment) stringValue]];
- NSLog(@"Deleting:\n%s",[[bkIPArray description] cString]);
+ NSLog(@"Deleting:\n%@",[bkIPArray description]);
[bkIPArray removeAllObjects];
NSLog(@"deleted:\n");
- NSLog(@"Coping:\n%s",[[workIPArray description] cString]);
+ NSLog(@"Coping:\n%@",[workIPArray description]);
[bkIPArray setArray:workIPArray];
- NSLog(@"Copied:\n%s",[[workIPArray description] cString]);
- NSLog(@"Releasing:\n%s",[[workIPArray description] cString]);
+ NSLog(@"Copied:\n%@",[workIPArray description]);
+ NSLog(@"Releasing:\n%@",[workIPArray description]);
[workIPArray release];
- NSLog(@"Released:\n%s",[[workIPArray description] cString]);
+ NSLog(@"Released:\n%@",[workIPArray description]);
}
// -------------------------------------------------------------------------------
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>AIODescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>perspectivev3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>320DBA1B10270A3300A18A89</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.defaultV3</string>
+ <key>MajorVersion</key>
+ <integer>34</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>All-In-One</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>clean-target</string>
+ <string>clean</string>
+ <string>buildOrClean</string>
+ <string>build-and-go</string>
+ <string>go-debug</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>servicesModuledebug</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>researchAssistant</string>
+ <string>get-info</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23ED40692098700951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>231</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>089C166AFE841209C02AAC07</string>
+ <string>08FB77AFFE84173DC02AAC07</string>
+ <string>3276591010204DB4004CA418</string>
+ <string>19C28FB8FE9D52D311CA2CBB</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>27</integer>
+ <integer>26</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {231, 1090}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <false/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {248, 1108}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>231</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>-1920 -126 1018 1149 -1920 -176 1920 1200 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>248pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>320DBA1610270A3300A18A89</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>AFSBackgrounderDelegate.m</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>320DBA1710270A3300A18A89</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>AFSBackgrounderDelegate.m</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>320DBACD10272E1000A18A89</string>
+ <key>history</key>
+ <array>
+ <string>320DBA3E102725AA00A18A89</string>
+ <string>320DBAAD10272D2100A18A89</string>
+ <string>320DBACC10272E1000A18A89</string>
+ </array>
+ <key>prevStack</key>
+ <array>
+ <string>320DBA40102725AA00A18A89</string>
+ <string>320DBAAF10272D2100A18A89</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {765, 1103}}</string>
+ <key>RubberWindowFrame</key>
+ <string>-1920 -126 1018 1149 -1920 -176 1920 1200 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>1103pt</string>
+ </dict>
+ <dict>
+ <key>Proportion</key>
+ <string>0pt</string>
+ <key>Tabs</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 27}, {765, -27}}</string>
+ <key>RubberWindowFrame</key>
+ <string>-1920 -126 1018 1149 -1920 -176 1920 1200 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE00692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXCVSModuleFilterTypeKey</key>
+ <integer>1032</integer>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE10692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM Results</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>765pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDockableTabModule</string>
+ <string>XCDetailModule</string>
+ <string>PBXProjectFindModule</string>
+ <string>PBXCVSModule</string>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>320DBAB110272D2100A18A89</string>
+ <string>1CA23ED40692098700951B8B</string>
+ <string>320DBAB210272D2100A18A89</string>
+ <string>320DBA1610270A3300A18A89</string>
+ <string>320DBAB310272D2100A18A89</string>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <string>1CA23EE00692099D00951B8B</string>
+ <string>1CA23EE10692099D00951B8B</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>debugger-restart-executable</string>
+ <string>debugger-pause</string>
+ <string>debugger-step-over</string>
+ <string>debugger-step-into</string>
+ <string>debugger-step-out</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.ide.XCBreakpointsToolbarItem</string>
+ <string>clear-log</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string>PBXDebugSessionModule</string>
+ <key>IconName</key>
+ <string>DebugTabIcon</string>
+ <key>Identifier</key>
+ <string>perspective.debug</string>
+ <key>IsVertical</key>
+ <integer>1</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7628064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {810, 0}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>0%</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {395, 213}}</string>
+ <string>{{395, 0}, {415, 213}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {810, 213}}</string>
+ <string>{{0, 213}, {810, 225}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7629064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {810, 438}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>443pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>XCModuleDock</string>
+ <string>PBXDebugCLIModule</string>
+ <string>PBXDebugSessionModule</string>
+ <string>XCConsole</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CC8E6A5069209BD00BB180A</string>
+ <string>1CC8E6A6069209BD00BB180A</string>
+ <string>1CCC7628064C1048000F2A68</string>
+ <string>1CCC7629064C1048000F2A68</string>
+ <string>1CC8E6A7069209BD00BB180A</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <true/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>2</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string></string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>/Volumes/DeepData/Sorgenti/gitrepo/openafs/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>-1920 -126 1018 1149 -1920 -176 1920 1200 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052900623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 215}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 222}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>458pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAA5065D492600B07095</string>
+ <string>1C78EAA6065D492600B07095</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowString</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {700, 358}}</string>
+ <key>RubberWindowFrame</key>
+ <string>149 87 700 400 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <string>1C530D5C069F1CE1000CFCEE</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>149 87 440 400 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scmV3</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {369, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {616, 353}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {369, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>94</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EABA065D492600B07095</string>
+ <string>1C78EABB065D492600B07095</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
3228B9B01020526900DF98DA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3228B9AF1020526900DF98DA /* main.m */; };
3228B9B4102052A900DF98DA /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327309620C2AB433008C322B /* Security.framework */; };
3228B9BE102052BE00DF98DA /* version.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3228B9BD102052BE00DF98DA /* version.plist */; };
- 3228B9D5102070A200DF98DA /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3276591D10204E08004CA418 /* Info.plist */; };
322B90450C2F0A2D0068F99A /* start_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90430C2F0A2D0068F99A /* start_afs.sh */; };
322B90460C2F0A2D0068F99A /* stop_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90440C2F0A2D0068F99A /* stop_afs.sh */; };
322CEF600C211D220060D66D /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
327756270C3053A100C15D11 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
327756280C3053A100C15D11 /* TaskUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 327756250C3053A100C15D11 /* TaskUtil.h */; };
327756290C3053A100C15D11 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
+ 328014501025F503008E1060 /* afshlp in Resources */ = {isa = PBXBuildFile; fileRef = 49683EE40C3446380093C7C8 /* afshlp */; };
+ 328014A71025FB2B008E1060 /* start_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90430C2F0A2D0068F99A /* start_afs.sh */; };
+ 328014A81025FB2C008E1060 /* stop_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90440C2F0A2D0068F99A /* stop_afs.sh */; };
32B0AFDF0C01729400272348 /* AFSPropertyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B0AFDD0C01729400272348 /* AFSPropertyManager.h */; };
32B0AFE00C01729400272348 /* AFSPropertyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B0AFDE0C01729400272348 /* AFSPropertyManager.m */; };
32B565740D8FAF62005255F2 /* NSString+search.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B565720D8FAF62005255F2 /* NSString+search.h */; };
499716940C23E36F001339E3 /* CellIp.h in Headers */ = {isa = PBXBuildFile; fileRef = 322CEF6C0C211DCC0060D66D /* CellIp.h */; };
499716950C23E370001339E3 /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
499716960C23E370001339E3 /* DBCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 322CEF5E0C211D220060D66D /* DBCellElement.h */; };
- 4998A6A40DC33C9300146652 /* afsltd.m in Sources */ = {isa = PBXBuildFile; fileRef = 4998A6A30DC33C9300146652 /* afsltd.m */; };
- 4998A6A50DC33CD800146652 /* AFSPropertyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B0AFDE0C01729400272348 /* AFSPropertyManager.m */; };
- 4998A6A60DC33CDB00146652 /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
- 4998A6A70DC33CDB00146652 /* CellIp.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF6D0C211DCC0060D66D /* CellIp.m */; };
- 4998A6A80DC33CE600146652 /* FileUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3273088C0C2A9B05008C322B /* FileUtil.m */; };
- 4998A6A90DC33CE700146652 /* AuthUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */; };
- 4998A6AA0DC33CE800146652 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
- 4998A6AB0DC33CE900146652 /* ViewUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 495B043F0D219A2900F1E328 /* ViewUtility.m */; };
- 4998A6AC0DC33CEA00146652 /* NSString+search.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B565730D8FAF62005255F2 /* NSString+search.m */; };
- 4998A6AD0DC33CEB00146652 /* PListManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 498DCB420DC2240B00D143C8 /* PListManager.m */; };
- 4998A6F00DC3415600146652 /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327308D20C2AA364008C322B /* SecurityFoundation.framework */; };
- 4998A6F10DC3415700146652 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327309620C2AB433008C322B /* Security.framework */; };
- 4998A6F20DC3415800146652 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495C39460D81EA3C003426FC /* Kerberos.framework */; };
- 4998A6F30DC3415900146652 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 493564E70CE711F300699A24 /* Carbon.framework */; };
- 4998A6F40DC3415900146652 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4940075A0CE62EB500F40D0A /* CoreServices.framework */; };
- 4998A6F50DC3415A00146652 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
49AF1F480C25B52A006A046E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 49AF1F470C25B52A006A046E /* InfoPlist.strings */; };
49B766450DCA47A50014A80F /* DialogUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 49B766430DCA47A50014A80F /* DialogUtility.h */; };
49B766460DCA47A50014A80F /* DialogUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 49B766440DCA47A50014A80F /* DialogUtility.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
+ 328014511025F52A008E1060 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 49683EE30C3446380093C7C8;
+ remoteInfo = afshlp;
+ };
32E29A9810249A1200D2C2E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 49683EE30C3446380093C7C8 /* afshlp */;
+ remoteGlobalIDString = 49683EE30C3446380093C7C8;
remoteInfo = afshlp;
};
32E29A9A10249A1600D2C2E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 3276591A10204E08004CA418 /* AFSBackgrounder */;
+ remoteGlobalIDString = 3276591A10204E08004CA418;
remoteInfo = AFSBackgrounder;
};
/* End PBXContainerItemProxy section */
49683EEB0C3446600093C7C8 /* afshlp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = afshlp.m; sourceTree = "<group>"; };
498DCB410DC2240B00D143C8 /* PListManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PListManager.h; sourceTree = "<group>"; };
498DCB420DC2240B00D143C8 /* PListManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PListManager.m; sourceTree = "<group>"; };
- 4998A6860DC33BEC00146652 /* LoginTimeDaemon */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = LoginTimeDaemon; sourceTree = BUILT_PRODUCTS_DIR; };
- 4998A6A30DC33C9300146652 /* afsltd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = afsltd.m; sourceTree = "<group>"; };
49B766430DCA47A50014A80F /* DialogUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DialogUtility.h; sourceTree = "<group>"; };
49B766440DCA47A50014A80F /* DialogUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DialogUtility.m; sourceTree = "<group>"; };
49E43BE60C47D9EE00084436 /* global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = global.h; sourceTree = "<group>"; };
- 8D202CF70486D31800D8A456 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 8D202CF70486D31800D8A456 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AFSBackgrounder/resource/Info.plist; sourceTree = "<group>"; };
8D202CF80486D31800D8A456 /* OpenAFS.prefPane */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpenAFS.prefPane; sourceTree = BUILT_PRODUCTS_DIR; };
F506C035013D953901CA16C8 /* PreferencePanes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PreferencePanes.framework; path = /System/Library/Frameworks/PreferencePanes.framework; sourceTree = "<absolute>"; };
F506C03C013D9D7901CA16C8 /* AFSCommanderPref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSCommanderPref.h; sourceTree = "<group>"; };
);
runOnlyForDeploymentPostprocessing = 0;
};
- 4998A6840DC33BEC00146652 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4998A6F00DC3415600146652 /* SecurityFoundation.framework in Frameworks */,
- 4998A6F10DC3415700146652 /* Security.framework in Frameworks */,
- 4998A6F20DC3415800146652 /* Kerberos.framework in Frameworks */,
- 4998A6F30DC3415900146652 /* Carbon.framework in Frameworks */,
- 4998A6F40DC3415900146652 /* CoreServices.framework in Frameworks */,
- 4998A6F50DC3415A00146652 /* Cocoa.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
8D202CF20486D31800D8A456 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
8D202CF80486D31800D8A456 /* OpenAFS.prefPane */,
32CF01390C203C1800A8DC58 /* Test */,
49683EE40C3446380093C7C8 /* afshlp */,
- 4998A6860DC33BEC00146652 /* LoginTimeDaemon */,
3276591B10204E08004CA418 /* AFSBackgrounder.app */,
);
name = Products;
3228B9B21020527000DF98DA /* resource */ = {
isa = PBXGroup;
children = (
+ 3276591D10204E08004CA418 /* Info.plist */,
+ 3228B9BD102052BE00DF98DA /* version.plist */,
+ 3231521910243E09005901AA /* AFSMenuCredentialContoller.h */,
3231522910243E2C005901AA /* hasToken.png */,
3231522A10243E2C005901AA /* noToken.png */,
3231522710243E21005901AA /* CredentialWindow.nib */,
- 3276591D10204E08004CA418 /* Info.plist */,
- 3228B9BD102052BE00DF98DA /* version.plist */,
3276592D10204F8D004CA418 /* AFSBackounderMainMenu.xib */,
);
name = resource;
3231521E10243E09005901AA /* AFSMenuExtraView.m */,
3231521D10243E09005901AA /* AFSMenuExtraView.h */,
3231521A10243E09005901AA /* AFSMenuCredentialContoller.m */,
- 3231521910243E09005901AA /* AFSMenuCredentialContoller.h */,
3231522310243E10005901AA /* CredentialWindow */,
3228B9B21020527000DF98DA /* resource */,
);
children = (
32CFFEFD0C20316B00A8DC58 /* TestLib.m */,
49683EEB0C3446600093C7C8 /* afshlp.m */,
- 4998A6A30DC33C9300146652 /* afsltd.m */,
);
name = "Stand Alone Program";
sourceTree = "<group>";
buildRules = (
);
dependencies = (
+ 328014521025F52A008E1060 /* PBXTargetDependency */,
);
name = AFSBackgrounder;
productName = AFSBackgrounder;
productReference = 49683EE40C3446380093C7C8 /* afshlp */;
productType = "com.apple.product-type.tool";
};
- 4998A6850DC33BEC00146652 /* LoginTimeDaemon */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 4998A6A10DC33C2000146652 /* Build configuration list for PBXNativeTarget "LoginTimeDaemon" */;
- buildPhases = (
- 4998A6830DC33BEC00146652 /* Sources */,
- 4998A6840DC33BEC00146652 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = LoginTimeDaemon;
- productName = LoginTimeDaemon;
- productReference = 4998A6860DC33BEC00146652 /* LoginTimeDaemon */;
- productType = "com.apple.product-type.tool";
- };
8D202CE80486D31800D8A456 /* OpenAFS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1DBD214808BA80EA00186707 /* Build configuration list for PBXNativeTarget "OpenAFS" */;
8D202CE80486D31800D8A456 /* OpenAFS */,
32CF01380C203C1800A8DC58 /* Test */,
49683EE30C3446380093C7C8 /* afshlp */,
- 4998A6850DC33BEC00146652 /* LoginTimeDaemon */,
3276591A10204E08004CA418 /* AFSBackgrounder */,
);
};
files = (
3276592E10204F8D004CA418 /* AFSBackounderMainMenu.xib in Resources */,
3228B9BE102052BE00DF98DA /* version.plist in Resources */,
- 3228B9D5102070A200DF98DA /* Info.plist in Resources */,
3231522810243E21005901AA /* CredentialWindow.nib in Resources */,
3231522B10243E2C005901AA /* hasToken.png in Resources */,
3231522C10243E2C005901AA /* noToken.png in Resources */,
+ 328014501025F503008E1060 /* afshlp in Resources */,
+ 328014A71025FB2B008E1060 /* start_afs.sh in Resources */,
+ 328014A81025FB2C008E1060 /* stop_afs.sh in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
);
runOnlyForDeploymentPostprocessing = 0;
};
- 4998A6830DC33BEC00146652 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4998A6A40DC33C9300146652 /* afsltd.m in Sources */,
- 4998A6A50DC33CD800146652 /* AFSPropertyManager.m in Sources */,
- 4998A6A60DC33CDB00146652 /* DBCellElement.m in Sources */,
- 4998A6A70DC33CDB00146652 /* CellIp.m in Sources */,
- 4998A6A80DC33CE600146652 /* FileUtil.m in Sources */,
- 4998A6A90DC33CE700146652 /* AuthUtil.m in Sources */,
- 4998A6AA0DC33CE800146652 /* TaskUtil.m in Sources */,
- 4998A6AB0DC33CE900146652 /* ViewUtility.m in Sources */,
- 4998A6AC0DC33CEA00146652 /* NSString+search.m in Sources */,
- 4998A6AD0DC33CEB00146652 /* PListManager.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
8D202CF00486D31800D8A456 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
+ 328014521025F52A008E1060 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 49683EE30C3446380093C7C8 /* afshlp */;
+ targetProxy = 328014511025F52A008E1060 /* PBXContainerItemProxy */;
+ };
32E29A9910249A1200D2C2E5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 49683EE30C3446380093C7C8 /* afshlp */;
};
name = Release;
};
- 4998A6880DC33BED00146652 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
- ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = YES;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
- INSTALL_PATH = /usr/local/bin;
- OTHER_LDFLAGS = (
- "-framework",
- Foundation,
- "-framework",
- AppKit,
- );
- PREBINDING = NO;
- PRODUCT_NAME = LoginTimeDaemon;
- };
- name = Debug;
- };
- 4998A6890DC33BED00146652 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
- ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
- GCC_WARN_UNUSED_PARAMETER = NO;
- INSTALL_PATH = /usr/local/bin;
- OTHER_LDFLAGS = (
- "-framework",
- Foundation,
- "-framework",
- AppKit,
- );
- PREBINDING = NO;
- PRODUCT_NAME = LoginTimeDaemon;
- ZERO_LINK = NO;
- };
- name = Release;
- };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 4998A6A10DC33C2000146652 /* Build configuration list for PBXNativeTarget "LoginTimeDaemon" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4998A6880DC33BED00146652 /* Debug */,
- 4998A6890DC33BED00146652 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
#define AUTH_FILE_BK @"/etc/authorization_bk"
#define TMP_FILE @"/tmp/authorization"
+#define BACKGROUNDER_P_FILE @"it.infn.lnf.network.AFSBackgrounder"
#define HOME_LAUNCHD_AGENT_FOLDER @"~/Library/LaunchAgents"
#define BACKGROUNDER_LAUNCHD_CONTROL_FILE @"~/Library/LaunchAgents/it.infn.lnf.network.AFSBackgrounder.plist"
#define BACKGROUNDER_LAUNCHD_TMP_CONTROL_FILE @"/tmp/it.infn.lnf.network.AFSBackgrounder.plist"
-#define BACKGROUNDER_AGENT_NAME @"AFSBackgrounder.app/Contents/MacOS/AFSBackgrounder"
#define LAUNCHD_DAEMON_FOLDER @"/Library/LaunchDaemons"
#define AFS_STARTUP_TMP_CONTROL_FILE @"/tmp/it.infn.lnf.network.afsstartup.plist"
@discussion <#(comprehensive description)#>
*/
+(void) manageAfsStartupLaunchdFile:(BOOL)enable afsStartupScript:(NSString*)afsStartupScript afsBasePath:(NSString*)afsBasePath afsdPath:(NSString*)afsdPath;
+
+/*!
+ @method launchctlCommand
+ @abstract exec the launchctl command on a particular plist job
+ @discussion <#(comprehensive description)#>
+*/
++(void) launchctlCommand:(BOOL)enable userDomain:(BOOL)userDomain option:(NSArray*)option plistName:(NSString*)plistName;
+
+/*!
+ @method launchdJobState
+ @abstract check is a job has been submitted to launchd
+ @discussion <#(comprehensive description)#>
+ */
++(BOOL) launchdJobState:(NSString*)jobName;
@end
#import "FileUtil.h"
#import "TaskUtil.h"
+#define BACKGROUNDER_AGENT_NAME @"AFSBackgrounder.app/Contents/MacOS/AFSBackgrounder"
+
@implementation PListManager
// -------------------------------------------------------------------------------
// krb5TiketAtLoginTime:
// -------------------------------------------------------------------------------
+(void) installBackgrounderLaunchdFile:(BOOL)install resourcePath:(NSString*) rsrcPath {
NSData *plistData = nil;
- NSMutableDictionary *launchdDic = nil;
+ NSMutableDictionary *launchdDic = nil;
+ NSMutableDictionary *keepAliveDic = nil;
NSString *error = nil;
NSString *backgrounderPath = [[rsrcPath stringByAppendingString:@"/"] stringByAppendingString:BACKGROUNDER_AGENT_NAME];
if(install) {
if(![[NSFileManager defaultManager] fileExistsAtPath:[BACKGROUNDER_LAUNCHD_CONTROL_FILE stringByExpandingTildeInPath]]) {
- launchdDic = [[NSMutableDictionary alloc] init];
+ launchdDic = [[[NSMutableDictionary alloc] init] autorelease];
+ keepAliveDic = [[[NSMutableDictionary alloc] init] autorelease];
[launchdDic setObject:@"it.infn.lnf.network.AFSBackgrounder"
forKey:@"Label"];
+ [keepAliveDic setObject:[NSNumber numberWithBool:NO]
+ forKey:@"SuccessfulExit"];
+
+ [launchdDic setObject:keepAliveDic
+ forKey:@"KeepAlive"];
+
[launchdDic setObject:@"Aqua"
forKey:@"LimitLoadToSessionType"];
if(enable) {
//Check first if the launchd configuration file for startup is present
if(![[NSFileManager defaultManager] fileExistsAtPath:[AFS_STARTUP_CONTROL_FILE stringByExpandingTildeInPath]]) {
- launchdDic = [[NSMutableDictionary alloc] init];
+ launchdDic = [[[NSMutableDictionary alloc] init] autorelease];
//argDic = [[NSMutableArray alloc] init];
[launchdDic setObject:@"it.infn.lnf.afsstartup"
forKey:@"Label"];
- //[argDic addObject:afsStartupScript];
- //[argDic addObject:afsBasePath/*"/var/db/openafs"*/];
- //[argDic addObject:afsdPath/*"/usr/sbin/afsd"*/];
[launchdDic setObject:[NSArray arrayWithObjects:afsStartupScript, afsBasePath, afsdPath, nil]
forKey:@"ProgramArguments"];
}
+// -------------------------------------------------------------------------------
+// launchctlCommand:
+// -------------------------------------------------------------------------------
++(void) launchctlCommand:(BOOL)enable
+ userDomain:(BOOL)userDomain
+ option:(NSArray*)option
+ plistName:(NSString*)plistName {
+ NSMutableArray *argument = [NSMutableArray array];
+ NSMutableString *commandPath = [NSMutableString stringWithCapacity:0];
+ NSUInteger searchDomain = userDomain?NSUserDomainMask:NSSystemDomainMask;
+ //
+ NSArray *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, searchDomain, YES);
+ //set the load unload
+ [argument addObject:enable?@"load":@"unload"];
+
+ //if there are load the user custo option
+ if(option) [argument addObjectsFromArray:option];
+
+ //construct the path
+ [commandPath appendString:[libraryPath objectAtIndex:0]];
+ [commandPath appendFormat:@"/LaunchAgents/%@", plistName];
+
+ [argument addObject:commandPath];
+ //exec the command
+ [TaskUtil executeTaskSearchingPath:@"launchctl"
+ args:argument];
+}
+
+// -------------------------------------------------------------------------------
+// launchdJobState:
+// -------------------------------------------------------------------------------
++(BOOL) launchdJobState:(NSString*)jobName {
+ NSMutableArray *argument = [NSMutableArray array];
+
+ //set the load unload
+ [argument addObject:@"list"];
+ [argument addObject:jobName];
+ //exec the command
+ NSString *taskResult =[TaskUtil executeTaskSearchingPath:@"launchctl"
+ args:argument];
+ return taskResult && [taskResult rangeOfString:jobName].location != NSNotFound;
+}
@end
{
if(!parentView) return;
NSArray *views = [parentView subviews];
-
for(int idx = 0; idx < [views count]; idx++)
{
NSObject *obj = [views objectAtIndex:idx];
- if([obj respondsToSelector:@selector(setEnabled:)])
+ if([obj isKindOfClass:[NSButton class]])
{
- //[obj setEnabled:controlState];
- [obj performSelector:@selector(setEnabled:) withObject:controlState];
+ [(NSButton*)obj setEnabled:controlState];
+ //[obj performSelector:@selector(setEnabled:) withObject:controlState];
}
}
#include <string.h>
#include <asl.h>
#include <sys/event.h>
+#include <mach-o/dyld.h>
#import "TaskUtil.h"
#import "AuthUtil.h"
#import "PListManager.h"
// Make the qargs array for passing to child the same args of father
- const char *arguments = {argv[1], argv[2], argv[3], "--self-repair", 0L};
+ const char *arguments[] = {argv[1], argv[2], argv[3], "--self-repair", 0L};
// Get the privileged AuthorizationRef
[[AuthUtil shared] autorize];