diff options
author | avenjamin <avenjamin@gmail.com> | 2009-06-24 15:46:27 +0000 |
---|---|---|
committer | avenjamin <avenjamin@gmail.com> | 2009-06-24 15:46:27 +0000 |
commit | 5b05f3f15aa0676f91bc1d127d31f4fd95ef9f40 (patch) | |
tree | f0eaf423f2c13f2091fe9cfceaa2e0a6f2169723 /Frameworks/BWToolkitFramework.framework/BWSheetController.m | |
parent | 37bd86b2879c107ebb026954693540979cf25e2a (diff) | |
download | sequelpro-5b05f3f15aa0676f91bc1d127d31f4fd95ef9f40.tar.gz sequelpro-5b05f3f15aa0676f91bc1d127d31f4fd95ef9f40.tar.bz2 sequelpro-5b05f3f15aa0676f91bc1d127d31f4fd95ef9f40.zip |
- Changed the way the BWToolkit framework was included to allow modifications to be made easily.
- Fixed show/hide info pane toggle button image states to now show correctly
Diffstat (limited to 'Frameworks/BWToolkitFramework.framework/BWSheetController.m')
-rw-r--r-- | Frameworks/BWToolkitFramework.framework/BWSheetController.m | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Frameworks/BWToolkitFramework.framework/BWSheetController.m b/Frameworks/BWToolkitFramework.framework/BWSheetController.m new file mode 100644 index 00000000..ec986280 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSheetController.m @@ -0,0 +1,75 @@ +// +// BWSheetController.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSheetController.h" +#import "NSWindow-NSTimeMachineSupport.h" + +@implementation BWSheetController + +@synthesize parentWindow, sheet, delegate; + +- (void)awakeFromNib +{ + // Hack so the sheet doesn't appear at launch in Cocoa Simulator (or in the actual app if "Visible at Launch" is checked) + [sheet setAlphaValue:0]; + [sheet performSelector:@selector(orderOut:) withObject:nil afterDelay:0]; + + // If the sheet has a toolbar or a bottom bar, make sure those elements can't move the window (private API) + if ([sheet respondsToSelector:@selector(setMovable:)]) + [sheet setMovable:NO]; +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super init]) != nil) + { + NSWindowController *tempSheetController = [decoder decodeObjectForKey:@"BWSCSheet"]; + NSWindowController *tempParentWindowController = [decoder decodeObjectForKey:@"BWSCParentWindow"]; + + sheet = [tempSheetController window]; + parentWindow = [tempParentWindowController window]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + NSWindowController *tempSheetController = [[[NSWindowController alloc] initWithWindow:sheet] autorelease]; + NSWindowController *tempParentWindowController = [[[NSWindowController alloc] initWithWindow:parentWindow] autorelease]; + + [coder encodeObject:tempSheetController forKey:@"BWSCSheet"]; + [coder encodeObject:tempParentWindowController forKey:@"BWSCParentWindow"]; +} + +- (IBAction)openSheet:(id)sender +{ + [sheet setAlphaValue:1]; + [NSApp beginSheet:sheet modalForWindow:parentWindow modalDelegate:nil didEndSelector:nil contextInfo:nil]; +} + +- (IBAction)closeSheet:(id)sender +{ + [sheet orderOut:nil]; + [NSApp endSheet:sheet]; +} + +- (IBAction)messageDelegateAndCloseSheet:(id)sender +{ + if (delegate != nil && [delegate respondsToSelector:@selector(shouldCloseSheet:)]) + { + if ([delegate performSelector:@selector(shouldCloseSheet:) withObject:sender]) + [self closeSheet:self]; + } + else + { + [self closeSheet:self]; + } +} + + +@end |