diff --git a/Controller/PBGitResetController.h b/Controller/PBGitResetController.h index b7a8d30..d8672a5 100644 --- a/Controller/PBGitResetController.h +++ b/Controller/PBGitResetController.h @@ -7,8 +7,10 @@ // #import +#import "PBResetSheet.h" @class PBGitRepository; +@protocol PBGitRefish; @interface PBGitResetController : NSObject { PBGitRepository *repository; @@ -17,8 +19,8 @@ - (NSArray *) menuItems; - // actions +- (void) resetToRefish: (id) spec type: (PBResetType) type; - (void) resetHardToHead; @end diff --git a/Controller/PBGitResetController.m b/Controller/PBGitResetController.m index c9e5fb6..1ef3309 100644 --- a/Controller/PBGitResetController.m +++ b/Controller/PBGitResetController.m @@ -9,8 +9,9 @@ #import "PBGitResetController.h" #import "PBGitRepository.h" #import "PBCommand.h" +#import "PBGitRefish.h" +#import "PBResetSheet.h" -static NSString * const kCommandKey = @"command"; @implementation PBGitResetController @@ -22,23 +23,11 @@ static NSString * const kCommandKey = @"command"; } - (void) resetHardToHead { - NSAlert *alert = [NSAlert alertWithMessageText:@"Reseting working copy and index" - defaultButton:@"Cancel" - alternateButton:nil - otherButton:@"Reset" - informativeTextWithFormat:@"Are you sure you want to reset your working copy and index? All changes to them will be gone!"]; - - NSArray *arguments = [NSArray arrayWithObjects:@"reset", @"--hard", @"HEAD", nil]; - PBCommand *cmd = [[PBCommand alloc] initWithDisplayName:@"Reset hard to HEAD" parameters:arguments repository:repository]; - cmd.commandTitle = cmd.displayName; - cmd.commandDescription = @"Reseting head"; - - NSMutableDictionary *info = [NSMutableDictionary dictionaryWithObject:cmd forKey:kCommandKey]; - - [alert beginSheetModalForWindow:[repository.windowController window] - modalDelegate:self - didEndSelector:@selector(confirmResetSheetDidEnd:returnCode:contextInfo:) - contextInfo:info]; + [self resetToRefish: [PBGitRef refFromString: @"HEAD"] type: PBResetTypeHard]; +} + +- (void) resetToRefish:(id) refish type:(PBResetType)type { + [PBResetSheet beginResetSheetForRepository: repository refish: refish andType: type]; } - (void) reset { @@ -70,18 +59,4 @@ static NSString * const kCommandKey = @"command"; [super dealloc]; } -#pragma mark - -#pragma mark Confirm Window - -- (void) confirmResetSheetDidEnd:(NSAlert *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo -{ - [[sheet window] orderOut:nil]; - - if (returnCode != NSAlertDefaultReturn) { - PBCommand *cmd = [(NSDictionary *)contextInfo objectForKey:kCommandKey]; - [cmd invoke]; - } -} - - @end diff --git a/GitX.xcodeproj/project.pbxproj b/GitX.xcodeproj/project.pbxproj index 238406d..b42442e 100644 --- a/GitX.xcodeproj/project.pbxproj +++ b/GitX.xcodeproj/project.pbxproj @@ -72,6 +72,8 @@ 47DBDBCA0E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DBDBC90E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m */; }; 551BF11E112F376C00265053 /* gitx_askpasswd_main.m in Sources */ = {isa = PBXBuildFile; fileRef = 551BF11D112F376C00265053 /* gitx_askpasswd_main.m */; }; 551BF176112F3F4B00265053 /* gitx_askpasswd in Resources */ = {isa = PBXBuildFile; fileRef = 551BF111112F371800265053 /* gitx_askpasswd */; }; + 65D58BC4132D27A8003F7290 /* PBResetSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 65D58BC3132D27A7003F7290 /* PBResetSheet.xib */; }; + 65D58BC7132D48C2003F7290 /* PBResetSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D58BC6132D48C0003F7290 /* PBResetSheet.m */; }; 770B37ED0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel in Sources */ = {isa = PBXBuildFile; fileRef = 770B37EC0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel */; }; 77C8280E06725ACE000B614F /* ApplicationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C8280C06725ACE000B614F /* ApplicationController.m */; }; 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; @@ -365,6 +367,9 @@ 47DBDBC90E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBNSURLPathUserDefaultsTransfomer.m; sourceTree = ""; }; 551BF111112F371800265053 /* gitx_askpasswd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = gitx_askpasswd; sourceTree = BUILT_PRODUCTS_DIR; }; 551BF11D112F376C00265053 /* gitx_askpasswd_main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = gitx_askpasswd_main.m; sourceTree = ""; }; + 65D58BC3132D27A7003F7290 /* PBResetSheet.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PBResetSheet.xib; sourceTree = ""; }; + 65D58BC5132D48BF003F7290 /* PBResetSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBResetSheet.h; sourceTree = ""; }; + 65D58BC6132D48C0003F7290 /* PBResetSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBResetSheet.m; sourceTree = ""; }; 770B37EC0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wrapper.xcdatamodel; path = GitTest_DataModel.xcdatamodel; sourceTree = ""; }; 77C82804067257F0000B614F /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; 77C8280B06725ACE000B614F /* ApplicationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApplicationController.h; sourceTree = ""; }; @@ -846,6 +851,7 @@ 21230ED11285EB5A0046E5A1 /* PBArgumentPicker.xib */, F58DB55F10566E3900CFDF4A /* PBGitSidebarView.xib */, D8022FE711E124A0003C21F6 /* PBGitXMessageSheet.xib */, + 65D58BC3132D27A7003F7290 /* PBResetSheet.xib */, ); name = Resources; sourceTree = ""; @@ -937,6 +943,8 @@ D8083E02111FA33700337480 /* PBCloneRepositoryPanel.m */, D8022FEB11E124C8003C21F6 /* PBGitXMessageSheet.h */, D8022FEC11E124C8003C21F6 /* PBGitXMessageSheet.m */, + 65D58BC5132D48BF003F7290 /* PBResetSheet.h */, + 65D58BC6132D48C0003F7290 /* PBResetSheet.m */, ); name = Sheets; sourceTree = ""; @@ -1437,6 +1445,7 @@ 31DAA7ED1317737100463846 /* gitx_l_pub.pem in Resources */, 316E7202131EE9C600AFBB36 /* list_Template.png in Resources */, 316E7203131EE9C600AFBB36 /* sidebar_Template.png in Resources */, + 65D58BC4132D27A8003F7290 /* PBResetSheet.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1606,6 +1615,7 @@ 217FF0BA12A1CB3300785A65 /* PBSubmoduleController.m in Sources */, 217FF0BB12A1CB3300785A65 /* PBGitResetController.m in Sources */, 217FF0BE12A1CB3E00785A65 /* PBRevealWithFinderCommand.m in Sources */, + 65D58BC7132D48C2003F7290 /* PBResetSheet.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PBRefController.h b/PBRefController.h index 15df74b..321409f 100644 --- a/PBRefController.h +++ b/PBRefController.h @@ -31,6 +31,7 @@ - (void) showConfirmPushRefSheet:(PBGitRef *)ref remote:(PBGitRef *)remoteRef; - (void) checkout:(PBRefMenuItem *)sender; +- (void) reset:(PBRefMenuItem *)sender; - (void) merge:(PBRefMenuItem *)sender; - (void) cherryPick:(PBRefMenuItem *)sender; - (void) rebaseHeadBranch:(PBRefMenuItem *)sender; diff --git a/PBRefController.m b/PBRefController.m index 2ca8941..34e22da 100644 --- a/PBRefController.m +++ b/PBRefController.m @@ -149,6 +149,13 @@ [historyController.repository checkoutRefish:refish]; } +#pragma mark Reset + +- (void) reset:(PBRefMenuItem *)sender +{ + id refish = [sender refish]; + [historyController.repository.resetController resetToRefish: refish type: PBResetTypeMixed]; +} #pragma mark Cherry Pick diff --git a/PBRefMenuItem.m b/PBRefMenuItem.m index aaaee1f..7b32b43 100644 --- a/PBRefMenuItem.m +++ b/PBRefMenuItem.m @@ -61,6 +61,10 @@ [items addObject:[PBRefMenuItem itemWithTitle:checkoutTitle action:@selector(checkout:) enabled:!isHead]]; [items addObject:[PBRefMenuItem separatorItem]]; + NSString *resetTitle = [NSString stringWithFormat:@"Reset %@ to %@", headRefName, targetRefName]; + [items addObject:[PBRefMenuItem itemWithTitle: resetTitle action:@selector(reset:) enabled:YES]]; + [items addObject:[PBRefMenuItem separatorItem]]; + // create branch NSString *createBranchTitle = [ref isRemoteBranch] ? [NSString stringWithFormat:@"Create branch that tracks %@…", targetRefName] : @"Create branch…"; [items addObject:[PBRefMenuItem itemWithTitle:createBranchTitle action:@selector(createBranch:) enabled:YES]]; @@ -156,7 +160,12 @@ [items addObject:[PBRefMenuItem itemWithTitle:@"Checkout Commit" action:@selector(checkout:) enabled:YES]]; [items addObject:[PBRefMenuItem separatorItem]]; + + NSString *resetTitle = [NSString stringWithFormat:@"Reset %@ to here", headBranchName]; + [items addObject:[PBRefMenuItem itemWithTitle: resetTitle action:@selector(reset:) enabled:YES]]; + [items addObject:[PBRefMenuItem separatorItem]]; + [items addObject:[PBRefMenuItem itemWithTitle:@"Create Branch…" action:@selector(createBranch:) enabled:YES]]; [items addObject:[PBRefMenuItem itemWithTitle:@"Create Tag…" action:@selector(createTag:) enabled:YES]]; [items addObject:[PBRefMenuItem separatorItem]]; diff --git a/PBResetSheet.h b/PBResetSheet.h new file mode 100644 index 0000000..edb8d06 --- /dev/null +++ b/PBResetSheet.h @@ -0,0 +1,35 @@ +// +// PBResetSheet.h +// GitX +// +// Created by Leszek Slazynski on 11-03-13. +// Copyright 2011 LSL. All rights reserved. +// + +#import + +@protocol PBGitRefish; +@class PBGitRepository; + +typedef enum PBResetType { + PBResetTypeNone, + PBResetTypeSoft, + PBResetTypeMixed, + PBResetTypeHard, + PBResetTypeMerge, + PBResetTypeKeep +} PBResetType; + +@interface PBResetSheet : NSWindowController { + IBOutlet NSSegmentedControl* resetType; + IBOutlet NSTabView* resetDesc; + PBResetType defaultType; + id targetRefish; + PBGitRepository* repository; +} + ++ (void) beginResetSheetForRepository:(PBGitRepository*) repo refish:(id)refish andType:(PBResetType)type; +- (IBAction)resetBranch:(id)sender; +- (IBAction)cancel:(id)sender; + +@end diff --git a/PBResetSheet.m b/PBResetSheet.m new file mode 100644 index 0000000..df07b5e --- /dev/null +++ b/PBResetSheet.m @@ -0,0 +1,67 @@ +// +// PBResetSheet.m +// GitX +// +// Created by Leszek Slazynski on 11-03-13. +// Copyright 2011 LSL. All rights reserved. +// + +#import "PBResetSheet.h" +#import "PBGitRefish.h" +#import "PBCommand.h" +#import "PBGitRepository.h" + +static const char* StringFromResetType(PBResetType type) { + static const char* resetTypes[] = { + "none", "soft", "mixed", "hard", "merge", "keep" + }; + return resetTypes[type]; +} + +@implementation PBResetSheet + +- (void) beginResetSheetForRepository:(PBGitRepository*) repo refish:(id)refish andType:(PBResetType)type { + defaultType = type; + targetRefish = refish; + repository = repo; + [NSApp beginSheet: [self window] + modalForWindow: [[repository windowController] window] + modalDelegate: self + didEndSelector: nil + contextInfo: NULL]; +} + ++ (void) beginResetSheetForRepository:(PBGitRepository*) repo refish:(id)refish andType:(PBResetType)type { + PBResetSheet* sheet = [[self alloc] initWithWindowNibName: @"PBResetSheet"]; + [sheet beginResetSheetForRepository: repo refish: refish andType: type]; +} + +- (id) init { + if ( (self = [super initWithWindowNibName: @"PBResetSheet"]) ) { + defaultType = PBResetTypeMixed; + } + return self; +} + +- (void) windowDidLoad { + [resetType setSelectedSegment: defaultType - 1]; + [resetDesc selectTabViewItemAtIndex: defaultType - 1]; +} + +- (IBAction)resetBranch:(id)sender { + [NSApp endSheet:[self window]]; + [[self window] orderOut:self]; + PBResetType type = [resetType selectedSegment] + 1; + + NSString* type_arg = [NSString stringWithFormat: @"--%s", StringFromResetType(type)]; + NSArray *arguments = [NSArray arrayWithObjects:@"reset", type_arg, [targetRefish refishName], nil]; + PBCommand *cmd = [[PBCommand alloc] initWithDisplayName:@"Reset branch" parameters:arguments repository:repository]; + [cmd invoke]; +} + +- (IBAction)cancel:(id)sender { + [NSApp endSheet:[self window]]; + [[self window] orderOut:self]; +} + +@end diff --git a/PBResetSheet.xib b/PBResetSheet.xib new file mode 100644 index 0000000..1cf0e70 --- /dev/null +++ b/PBResetSheet.xib @@ -0,0 +1,1109 @@ + + + + 1060 + 10J567 + 1305 + 1038.35 + 462.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 1305 + + + YES + NSTabViewItem + NSView + NSWindowTemplate + NSTabView + NSSegmentedControl + NSSegmentedCell + NSTextField + NSTextFieldCell + NSButtonCell + NSButton + NSCustomObject + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + + + YES + + PBResetSheet + + + FirstResponder + + + NSApplication + + + 3 + 2 + {{196, 240}, {480, 205}} + 544736256 + Reset branch + NSWindow + + + + 256 + + YES + + + 18 + {{16, 56}, {448, 78}} + + + + 2 + + YES + + 1 + + + 256 + + YES + + + 274 + {{0, 45}, {428, 13}} + + + 2 + YES + + 67239488 + 1346635776 + Resets the head but does not touch the index file nor the working tree at all. + + LucidaGrande + 10 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{0, 21}, {428, 16}} + + + 2 + YES + + 68288064 + 272892928 + This leaves all your changes intact - as changes to be committed. + + LucidaGrande-Bold + 12 + 16 + + + + + + + + {{10, 7}, {428, 58}} + + 2 + + soft + + + + + 2 + + + 256 + + YES + + + 274 + {{0, 45}, {428, 13}} + + + YES + + 67239488 + 272893952 + Resets the index but not the working tree and reports what has not been updated. + + + + + + + + + 268 + {{0, 21}, {428, 16}} + + + YES + + 68288064 + 272892928 + This preserves changes but they are not marked for commit. + + + + + + + + {{10, 7}, {428, 58}} + + + mixed + + + + + + + 256 + + YES + + + 274 + {{0, 32}, {428, 26}} + + + + YES + + 67239424 + 272891904 + Resets the index and working tree. Any changes to tracked files in the working tree are discarded. + + + + + + + + + 268 + {{0, 8}, {437, 16}} + + + + YES + + 68288064 + 272892928 + Warning! This discards all changes. It may be hard to recover them. + + + + + + + + {{10, 7}, {428, 58}} + + + + + hard + + + + + + + 256 + + YES + + + 274 + {{0, -95}, {428, 153}} + + YES + + 67239424 + 272891904 + Resets the index and updates the files in the working tree that are different between target and HEAD, but keeps those which are different between the index and working tree (i.e. which have changes which have not been added). If a file that is different between target and the index has unstaged changes, reset is aborted. + + + + + + + + {{10, 7}, {428, 58}} + + + merge + + + + + + + 256 + + YES + + + 274 + {{0, -95}, {428, 153}} + + YES + + 67239424 + 272891904 + UmVzZXRzIHRoZSBpbmRleCwgdXBkYXRlcyBmaWxlcyBpbiB0aGUgd29ya2luZyB0cmVlIHRoYXQgYXJl +IGRpZmZlcmVudCBiZXR3ZWVuIHRhcmdldCBhbmQgSEVBRCwgYnV0IGtlZXBzIHRob3NlIHdoaWNoIGFy +ZSBkaWZmZXJlbnQgYmV0d2VlbiBIRUFEIGFuZCB0aGUgd29ya2luZyB0cmVlIChpLmUuIHdoaWNoIGhh +dmUgbG9jYWwgY2hhbmdlcykuIElmIGEgZmlsZSB0aGF0IGlzIGRpZmZlcmVudCBiZXR3ZWVuIHRhcmdl +dCBhbmQgSEVBRCBoYXMgbG9jYWwgY2hhbmdlcywgcmVzZXQgaXMgYWJvcnRlZC4KA + + + + + + + + {{10, 7}, {428, 58}} + + + keep + + + + + + + LucidaGrande + 13 + 1044 + + 4 + YES + YES + + YES + + + + + + 268 + {{185, 138}, {275, 25}} + + + + 2 + YES + + 67239424 + 0 + + LucidaGrande + 13 + 16 + + + + YES + + soft + 0 + + + mixed + 1 + YES + 0 + + + hard + 0 + + + merge + 0 + + + keep + 0 + + + 1 + 2 + + + + + 268 + {{17, 143}, {83, 17}} + + + + 2 + YES + + 68288064 + 272630784 + Reset type: + + + YES + + + + + + + 289 + {{370, 12}, {96, 32}} + + + + 2 + YES + + 67239424 + 134217728 + Reset + + + -2038284033 + 129 + + DQ + 200 + 25 + + + + + 289 + {{274, 12}, {96, 32}} + + + + 2 + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + Gw + 200 + 25 + + + + + 268 + {{17, 168}, {446, 17}} + + + + 2 + YES + + 68288064 + 272630784 + Are you sure you want to reset current branch? + + LucidaGrande-Bold + 13 + 16 + + + + + + + + {{7, 11}, {480, 205}} + + + + 2 + + {{0, 0}, {1280, 778}} + {1e+13, 1e+13} + + + + + YES + + + takeSelectedTabViewItemFromSender: + + + + 20 + + + + window + + + + 57 + + + + resetBranch: + + + + 58 + + + + cancel: + + + + 59 + + + + resetType + + + + 60 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + Reset branch + + + 2 + + + YES + + + + + + + + + + + 3 + + + YES + + + + + + + + Type Description + + + 4 + + + YES + + + + soft + + + 5 + + + YES + + + + mixed + + + 6 + + + YES + + + + + + + 7 + + + YES + + + + + View + + + 8 + + + YES + + + + hard + + + 9 + + + YES + + + + + + + 10 + + + YES + + + + merge + + + 11 + + + YES + + + + + + 12 + + + YES + + + + keep + + + 13 + + + YES + + + + + + 14 + + + YES + + + + Type Select + + + 15 + + + Segmented Cell - soft, mixed, hard, merge, keep + + + 16 + + + YES + + + + Type Label + + + 17 + + + + + 31 + + + YES + + + + Reset + + + 32 + + + + + 35 + + + YES + + + + Are you sure + + + 36 + + + + + 37 + + + YES + + + + + + 38 + + + + + 39 + + + YES + + + + + + 40 + + + + + 41 + + + YES + + + + + + 42 + + + + + 43 + + + YES + + + + + + 44 + + + + + 29 + + + YES + + + + + + 30 + + + + + 50 + + + YES + + + + + + 51 + + + + + 53 + + + YES + + + + + + 54 + + + + + 55 + + + YES + + + + + + 56 + + + + + 33 + + + YES + + + + Cancel + + + 34 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 14.IBNSSegmentedControlTracker.RoundRobinState + 14.IBNSSegmentedControlTracker.WasGrowing + 14.IBPluginDependency + 15.IBNSSegmentedControlInspectorSelectedSegmentMetadataKey + 15.IBPluginDependency + 16.IBPluginDependency + 17.IBPluginDependency + 2.IBPluginDependency + 29.IBPluginDependency + 3.IBAttributePlaceholdersKey + 3.IBPluginDependency + 30.IBPluginDependency + 31.IBPluginDependency + 32.IBPluginDependency + 33.IBPluginDependency + 33.IBViewIntegration.shadowBlurRadius + 33.IBViewIntegration.shadowColor + 33.IBViewIntegration.shadowOffsetHeight + 33.IBViewIntegration.shadowOffsetWidth + 34.IBPluginDependency + 35.IBPluginDependency + 36.IBPluginDependency + 37.IBPluginDependency + 38.IBPluginDependency + 39.IBPluginDependency + 4.IBPluginDependency + 40.IBPluginDependency + 41.IBPluginDependency + 42.IBPluginDependency + 43.IBPluginDependency + 44.IBPluginDependency + 5.IBPluginDependency + 50.IBPluginDependency + 51.IBPluginDependency + 53.IBPluginDependency + 54.IBPluginDependency + 55.IBPluginDependency + 56.IBPluginDependency + 7.notes + 7.showNotes + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{357, 418}, {480, 270}} + + {196, 240} + {{357, 418}, {480, 270}} + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + InitialTabViewItem + + InitialTabViewItem + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + aaa + + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 12 + 16 + + + 4 + + + + + + + + + + YES + + + + + + YES + + + + + 60 + + + + YES + + PBResetSheet + NSWindowController + + YES + + YES + cancel: + resetBranch: + + + YES + id + id + + + + YES + + YES + cancel: + resetBranch: + + + YES + + cancel: + id + + + resetBranch: + id + + + + + YES + + YES + resetDesc + resetType + + + YES + NSTabView + NSSegmentedControl + + + + YES + + YES + resetDesc + resetType + + + YES + + resetDesc + NSTabView + + + resetType + NSSegmentedControl + + + + + IBProjectSource + ./Classes/PBResetSheet.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + +