You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.1 KiB
54 lines
1.1 KiB
9 years ago
|
//
|
||
|
// SRKeyEquivalentTransformer.m
|
||
|
// ShortcutRecorder
|
||
|
//
|
||
|
// Copyright 2012 Contributors. All rights reserved.
|
||
|
//
|
||
|
// License: BSD
|
||
|
//
|
||
|
// Contributors:
|
||
|
// Ilya Kulakov
|
||
|
|
||
|
#import "SRKeyEquivalentTransformer.h"
|
||
|
#import "SRKeyCodeTransformer.h"
|
||
|
#import "SRRecorderControl.h"
|
||
|
|
||
|
|
||
|
@implementation SRKeyEquivalentTransformer
|
||
|
|
||
|
#pragma mark NSValueTransformer
|
||
|
|
||
|
+ (BOOL)allowsReverseTransformation
|
||
|
{
|
||
|
return NO;
|
||
|
}
|
||
|
|
||
|
+ (Class)transformedValueClass
|
||
|
{
|
||
|
return [NSString class];
|
||
|
}
|
||
|
|
||
|
- (NSString *)transformedValue:(NSDictionary *)aValue
|
||
|
{
|
||
|
if (![aValue isKindOfClass:[NSDictionary class]])
|
||
|
return @"";
|
||
|
|
||
|
NSNumber *keyCode = aValue[SRShortcutKeyCode];
|
||
|
|
||
|
if (![keyCode isKindOfClass:[NSNumber class]])
|
||
|
return @"";
|
||
|
|
||
|
NSNumber *modifierFlags = aValue[SRShortcutModifierFlagsKey];
|
||
|
|
||
|
if (![modifierFlags isKindOfClass:[NSNumber class]])
|
||
|
modifierFlags = @(0);
|
||
|
|
||
|
SRKeyCodeTransformer *t = [SRKeyCodeTransformer sharedASCIITransformer];
|
||
|
|
||
|
return [t transformedValue:keyCode
|
||
|
withImplicitModifierFlags:nil
|
||
|
explicitModifierFlags:modifierFlags];
|
||
|
}
|
||
|
|
||
|
@end
|