aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m
diff options
context:
space:
mode:
Diffstat (limited to 'Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m')
-rw-r--r--Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m69
1 files changed, 69 insertions, 0 deletions
diff --git a/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m
new file mode 100644
index 00000000..6b6b1ee8
--- /dev/null
+++ b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m
@@ -0,0 +1,69 @@
+//
+// BWRemoveBottomBarIntegration.m
+// BWToolkit
+//
+// Created by Brandon Walkin (www.brandonwalkin.com)
+// All code is provided under the New BSD license.
+//
+
+#import <InterfaceBuilderKit/InterfaceBuilderKit.h>
+#import "BWRemoveBottomBar.h"
+#import "BWAddSmallBottomBar.h"
+#import "BWAddRegularBottomBar.h"
+#import "BWAddMiniBottomBar.h"
+#import "BWAddSheetBottomBar.h"
+#import "NSWindow+BWAdditions.h"
+
+@interface NSWindow (BWBBPrivate)
+- (void)setBottomCornerRounded:(BOOL)flag;
+@end
+
+@implementation BWRemoveBottomBar (BWRemoveBottomBarIntegration)
+
+- (void)ibDidAddToDesignableDocument:(IBDocument *)document
+{
+ [super ibDidAddToDesignableDocument:document];
+
+ // Remove the window's bottom bar
+ [self performSelector:@selector(removeBottomBar) withObject:nil afterDelay:0];
+
+ // Clean up
+ [self performSelector:@selector(removeOtherBottomBarViewsInDocument:) withObject:document afterDelay:0];
+ [self performSelector:@selector(removeSelfInDocument:) withObject:document afterDelay:0];
+}
+
+- (void)removeBottomBar
+{
+ if ([[self window] isTextured] == NO)
+ {
+ [[self window] setContentBorderThickness:0 forEdge:NSMinYEdge];
+
+ // Private method
+ if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)])
+ [[self window] setBottomCornerRounded:NO];
+ }
+}
+
+- (void)removeOtherBottomBarViewsInDocument:(IBDocument *)document
+{
+ NSArray *subviews = [[[self window] contentView] subviews];
+
+ int i;
+ for (i = 0; i < [subviews count]; i++)
+ {
+ NSView *view = [subviews objectAtIndex:i];
+ if (view != self && ([view isKindOfClass:[BWAddRegularBottomBar class]] || [view isKindOfClass:[BWAddSmallBottomBar class]] || [view isKindOfClass:[BWAddMiniBottomBar class]] || [view isKindOfClass:[BWAddSheetBottomBar class]]))
+ {
+ [document removeObject:view];
+ [view removeFromSuperview];
+ }
+ }
+}
+
+- (void)removeSelfInDocument:(IBDocument *)document
+{
+ [document removeObject:self];
+ [self removeFromSuperview];
+}
+
+@end