diff options
Diffstat (limited to 'Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m')
-rw-r--r-- | Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m | 69 |
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 |