cog/Window/MiniWindow.m

85 lines
2.3 KiB
Objective-C

//
// MiniWindow.m
// Cog
//
// Created by Vincent Spader on 2/22/09.
// Copyright 2009 __MyCompanyName__. All rights reserved.
//
#import "MiniWindow.h"
@implementation MiniWindow
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation
{
self = [super initWithContentRect:contentRect styleMask:windowStyle backing:bufferingType defer:deferCreation];
if (self)
{
[self setShowsResizeIndicator:NO];
[self setExcludedFromWindowsMenu:YES];
[[self standardWindowButton:NSWindowZoomButton] setEnabled:NO];
// Disallow height resize.
[self setContentMinSize:NSMakeSize(675, 0)];
[self setContentMaxSize:NSMakeSize(CGFLOAT_MAX, 0)];
[self setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary];
}
return self;
}
- (void)toggleToolbarShown:(id)sender {
// Mini window IS the toolbar, no point in hiding it.
// Do nothing!
}
- (void)keyDown:(NSEvent *)e {
BOOL modifiersUsed =
([e modifierFlags] & (NSEventModifierFlagShift |
NSEventModifierFlagControl |
NSEventModifierFlagOption |
NSEventModifierFlagCommand)) ? YES : NO;
NSString *characters = [e charactersIgnoringModifiers];
if (modifiersUsed || [characters length] != 1)
{
[super keyDown:e];
return;
}
unichar c = [characters characterAtIndex:0];
switch (c) {
case 0x20: // Spacebar
[playbackController playPauseResume:self];
break;
case NSEnterCharacter:
case NSCarriageReturnCharacter:
[playbackController play:self];
break;
case NSLeftArrowFunctionKey:
[playbackController eventSeekBackward:self];
break;
case NSRightArrowFunctionKey:
[playbackController eventSeekForward:self];
break;
case NSUpArrowFunctionKey:
[playbackController volumeUp:self];
break;
case NSDownArrowFunctionKey:
[playbackController volumeDown:self];
break;
default:
[super keyDown:e];
break;
}
}
@end