Rework playback shortcuts again.
This commit is contained in:
parent
97cc1e9845
commit
85e27e7496
2 changed files with 54 additions and 50 deletions
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
#import "PlaylistView.h"
|
#import "PlaylistView.h"
|
||||||
|
|
||||||
|
#import <Carbon/Carbon.h>
|
||||||
|
|
||||||
#import "BlankZeroFormatter.h"
|
#import "BlankZeroFormatter.h"
|
||||||
#import "IndexFormatter.h"
|
#import "IndexFormatter.h"
|
||||||
#import "PlaylistEntry.h"
|
#import "PlaylistEntry.h"
|
||||||
|
@ -154,37 +156,44 @@
|
||||||
return tableViewMenu;
|
return tableViewMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)keyDown:(NSEvent *)e {
|
- (void)keyDown:(NSEvent *)event {
|
||||||
unsigned int modifiers =
|
BOOL modifiersUsed =([event modifierFlags] & (NSEventModifierFlagShift |
|
||||||
[e modifierFlags] & (NSEventModifierFlagCommand | NSEventModifierFlagShift |
|
NSEventModifierFlagControl |
|
||||||
NSEventModifierFlagControl | NSEventModifierFlagOption);
|
NSEventModifierFlagOption |
|
||||||
NSString *characters = [e characters];
|
NSEventModifierFlagCommand)) ? YES : NO;
|
||||||
unichar c;
|
if (modifiersUsed) {
|
||||||
|
[super keyDown:event];
|
||||||
if ([characters length] != 1) {
|
|
||||||
[super keyDown:e];
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
c = [characters characterAtIndex:0];
|
switch ([event keyCode]) {
|
||||||
if (modifiers == 0 &&
|
case kVK_Space:
|
||||||
(c == NSDeleteCharacter || c == NSBackspaceCharacter || c == NSDeleteFunctionKey)) {
|
|
||||||
[playlistController remove:self];
|
|
||||||
} else if (modifiers == 0 && c == ' ') {
|
|
||||||
[playbackController playPauseResume:self];
|
[playbackController playPauseResume:self];
|
||||||
} else if (modifiers == 0 && (c == NSEnterCharacter || c == NSCarriageReturnCharacter)) {
|
break;
|
||||||
[playbackController play:self];
|
case kVK_Escape:
|
||||||
} else if (modifiers == 0 && c == NSLeftArrowFunctionKey) {
|
|
||||||
[playbackController eventSeekBackward:self];
|
|
||||||
} else if (modifiers == 0 && c == NSRightArrowFunctionKey) {
|
|
||||||
[playbackController eventSeekForward:self];
|
|
||||||
}
|
|
||||||
// Escape
|
|
||||||
else if (modifiers == 0 && c == 0x1b) {
|
|
||||||
[playlistController clearFilterPredicate:self];
|
[playlistController clearFilterPredicate:self];
|
||||||
} else {
|
break;
|
||||||
[super keyDown:e];
|
|
||||||
|
case kVK_Delete:
|
||||||
|
case kVK_ForwardDelete:
|
||||||
|
[playlistController remove:self];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kVK_LeftArrow:
|
||||||
|
[playbackController eventSeekBackward:self];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kVK_RightArrow:
|
||||||
|
[playbackController eventSeekForward:self];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kVK_Return:
|
||||||
|
[playbackController play:self];
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
[super keyDown:event];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
#import "MiniWindow.h"
|
#import "MiniWindow.h"
|
||||||
|
|
||||||
|
#import <Carbon/Carbon.h>
|
||||||
|
|
||||||
@implementation MiniWindow
|
@implementation MiniWindow
|
||||||
|
|
||||||
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation
|
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation
|
||||||
|
@ -32,50 +34,43 @@
|
||||||
// Do nothing!
|
// Do nothing!
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)keyDown:(NSEvent *)e {
|
- (void)keyDown:(NSEvent *)event {
|
||||||
BOOL modifiersUsed =
|
BOOL modifiersUsed =([event modifierFlags] & (NSEventModifierFlagShift |
|
||||||
([e modifierFlags] & (NSEventModifierFlagShift |
|
|
||||||
NSEventModifierFlagControl |
|
NSEventModifierFlagControl |
|
||||||
NSEventModifierFlagOption |
|
NSEventModifierFlagOption |
|
||||||
NSEventModifierFlagCommand)) ? YES : NO;
|
NSEventModifierFlagCommand)) ? YES : NO;
|
||||||
NSString *characters = [e charactersIgnoringModifiers];
|
if (modifiersUsed) {
|
||||||
|
[super keyDown:event];
|
||||||
if (modifiersUsed || [characters length] != 1)
|
|
||||||
{
|
|
||||||
[super keyDown:e];
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
unichar c = [characters characterAtIndex:0];
|
switch ([event keyCode]) {
|
||||||
switch (c) {
|
case kVK_Space:
|
||||||
case 0x20: // Spacebar
|
|
||||||
[playbackController playPauseResume:self];
|
[playbackController playPauseResume:self];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NSEnterCharacter:
|
case kVK_Return:
|
||||||
case NSCarriageReturnCharacter:
|
|
||||||
[playbackController play:self];
|
[playbackController play:self];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NSLeftArrowFunctionKey:
|
case kVK_LeftArrow:
|
||||||
[playbackController eventSeekBackward:self];
|
[playbackController eventSeekBackward:self];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NSRightArrowFunctionKey:
|
case kVK_RightArrow:
|
||||||
[playbackController eventSeekForward:self];
|
[playbackController eventSeekForward:self];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NSUpArrowFunctionKey:
|
case kVK_UpArrow:
|
||||||
[playbackController volumeUp:self];
|
[playbackController volumeUp:self];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NSDownArrowFunctionKey:
|
case kVK_DownArrow:
|
||||||
[playbackController volumeDown:self];
|
[playbackController volumeDown:self];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
[super keyDown:e];
|
[super keyDown:event];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue