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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
#import "BBLiquidGlassBezelInterface.h"
@interface BBLiquidGlassBezelInterface () {
CGRect initialRect;
}
@end
@implementation BBLiquidGlassBezelInterface
- (id)init {
return [self initWithWindowNibName:@"BBLiquidGlassBezelInterface"];
}
- (void)windowDidLoad {
initialRect = centerRectInRect([[self window] frame], [[NSScreen mainScreen] frame]);
[super windowDidLoad];
QSWindow *window = (QSWindow *)[self window];
[window setLevel:NSPopUpMenuWindowLevel];
[window setBackgroundColor:[NSColor clearColor]];
[window setOpaque:NO];
[window setHideOffset:NSMakePoint(0, 0)];
[window setShowOffset:NSMakePoint(0, 0)];
[window setMovableByWindowBackground:NO];
[window setFastShow:YES];
[window setHasShadow:YES];
[window setFrame:standardRect display:YES];
NSArray *theControls = [NSArray arrayWithObjects:dSelector, aSelector, iSelector, nil];
for(QSSearchObjectView *theControl in theControls) {
QSObjectCell *theCell = [theControl cell];
[theControl setPreferredEdge:NSMinYEdge];
[(QSWindow *)[(theControl)->resultController window] setHideOffset:NSMakePoint(0, NSMinY([iSelector frame]))];
[(QSWindow *)[(theControl)->resultController window] setShowOffset:NSMakePoint(0, NSMinY([dSelector frame]))];
[theCell setBackgroundColor:[NSColor clearColor]];
[theCell setFont:[NSFont systemFontOfSize:11 weight:NSFontWeightLight]];
[theCell setCellRadiusFactor:32];
[theCell setHighlightColor:[NSColor colorWithRed:1 green:1 blue:1 alpha:.15]];
[theCell setTextColor:[NSColor textColor]];
[theCell setShowDetails:NO];
[theCell setState:NSControlStateValueOn];
[theCell setIconSize:QSSize128];
[theCell setImagePosition:NSImageAbove];
}
[self contractWindow:nil];
}
- (NSSize) maxIconSize {
return QSSize32;
}
- (void)showMainWindow:(id)sender {
[[self window] setFrame:[self rectForState:[self expanded]] display:YES];
if ([[self window] isVisible]) [[self window] pulse:self];
[super showMainWindow:sender];
// Does this need to be here?
[[[self window] contentView] setNeedsDisplay:YES];
}
- (void)expandWindow:(id)sender {
if (![self expanded])
[[self window] setFrame:[self rectForState:YES] display:YES animate:YES];
[super expandWindow:sender];
}
- (void)contractWindow:(id)sender {
if ([self expanded])
[[self window] setFrame:[self rectForState:NO] display:YES animate:YES];
[super contractWindow:sender];
}
- (NSRect)rectForState:(BOOL)shouldExpand {
NSRect newRect = initialRect;
NSRect screenRect = [[NSScreen mainScreen] frame];
if (!shouldExpand) {
newRect.size.width -= 192;
}
return NSOffsetRect(centerRectInRect(newRect, screenRect), 0, (NSHeight(screenRect) / 5));
}
- (NSRect)window:(NSWindow *)window willPositionSheet:(NSWindow *)sheet usingRect:(NSRect)rect {
return NSOffsetRect(NSInsetRect(rect, 8, 0), 0, 0);
}
- (NSTimeInterval)animationResizeTime:(NSRect)newWindowFrame {
return 0.01;
}
- (IBAction)customize:(id)sender{
[[NSClassFromString(@"QSPreferencesController") sharedInstance] showPaneWithIdentifier:@"BBLiquidGlassBezelPrefs"];
}
@end
|