forked from glebd/bwtoolkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BWRemoveBottomBarIntegration.m
69 lines (57 loc) · 1.9 KB
/
BWRemoveBottomBarIntegration.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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] bwIsTextured] == 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