Use initialize, not load, wherever possible.
[adiumx.git] / Source / PTKeyCombo.m
blobf0d738a08ed7c0c1050a2bc9c95777a0888295b9
1 //
2 //  PTKeyCombo.m
3 //  Protein
4 //
5 //  Created by Quentin Carnicelli on Sat Aug 02 2003.
6 //  Copyright (c) 2003 Quentin D. Carnicelli. All rights reserved.
7 //
9 #import "PTKeyCombo.h"
11 @implementation PTKeyCombo
13 + (id)clearKeyCombo
15         return [self keyComboWithKeyCode: -1 modifiers:0];
18 + (id)keyComboWithKeyCode: (int)keyCode modifiers: (unsigned int)modifiers
20         return [[[self alloc] initWithKeyCode: keyCode modifiers: modifiers] autorelease];
23 - (id)initWithKeyCode: (int)keyCode modifiers: (unsigned int)modifiers
25         self = [super init];
26         
27         if( self )
28         {
29                 mKeyCode = keyCode;
30                 mModifiers = modifiers;
31         }
32         
33         return self;
36 - (id)initWithPlistRepresentation: (id)plist
38         int keyCode, modifiers;
39         
40         if( !plist || ![plist count] )
41         {
42                 keyCode = -1;
43                 modifiers = 0;
44         }
45         else
46         {
47                 keyCode = [[plist objectForKey: @"keyCode"] intValue];
48                 if( keyCode < 0 ) keyCode = -1;
49         
50                 modifiers = [[plist objectForKey: @"modifiers"] unsignedIntValue];
51         }
53         return [self initWithKeyCode: keyCode modifiers: modifiers];
56 - (id)plistRepresentation
58         return [NSDictionary dictionaryWithObjectsAndKeys:
59                                 [NSNumber numberWithInt: [self keyCode]], @"keyCode",
60                                 [NSNumber numberWithUnsignedInt: [self modifiers]], @"modifiers",
61                                 nil];
64 - (id)copyWithZone:(NSZone*)zone;
66         return [self retain];
69 - (BOOL)isEqual: (PTKeyCombo*)combo
71         return  [self keyCode] == [combo keyCode] &&
72                         [self modifiers] == [combo modifiers];
75 #pragma mark -
77 - (int)keyCode
79         return mKeyCode;
82 - (unsigned int)modifiers
84         return mModifiers;
87 - (BOOL)isValidHotKeyCombo
89         return mKeyCode >= 0;
92 - (BOOL)isClearCombo
94         return mKeyCode == -1;
97 @end