#import "BBFlatBezelInterface.h" @interface BBFlatBezelInterface () { CGRect initialRect; } @end @implementation BBFlatBezelInterface - (id)init { return [self initWithWindowNibName:@"BBFlatBezelInterface"]; } - (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; } @end