aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/BWToolkitFramework.framework/BWSheetController.m
diff options
context:
space:
mode:
authoravenjamin <avenjamin@gmail.com>2009-06-24 15:46:27 +0000
committeravenjamin <avenjamin@gmail.com>2009-06-24 15:46:27 +0000
commit5b05f3f15aa0676f91bc1d127d31f4fd95ef9f40 (patch)
treef0eaf423f2c13f2091fe9cfceaa2e0a6f2169723 /Frameworks/BWToolkitFramework.framework/BWSheetController.m
parent37bd86b2879c107ebb026954693540979cf25e2a (diff)
downloadsequelpro-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.m75
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