Changeset 130 for trunk/Cocoa/Pester/Source/PSPreferencesController.m
- Timestamp:
- 04/01/03 16:51:39 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cocoa/Pester/Source/PSPreferencesController.m
r129 r130 16 16 - (void)update; 17 17 { 18 // XXX do what we do in HL, stop more than one prefs window from appearing18 // perform any interface propagation that needs to be done 19 19 } 20 20 … … 23 23 - (void)readFromPrefs; 24 24 { 25 // XXX 25 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 26 [setAlarmHotKey setFromPropertyList: [defaults dictionaryForKey: @"Pester set alarm system-wide keyboard shortcut"]]; 26 27 } 27 28 … … 29 30 { 30 31 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 31 // XXX32 [defaults setObject: [setAlarmHotKey propertyListRepresentation] forKey: @"Pester set alarm system-wide keyboard shortcut"]; 32 33 [defaults synchronize]; 33 34 } … … 40 41 [self readFromPrefs]; 41 42 [self update]; 43 // command 44 NSMutableCharacterSet *set = [[NSCharacterSet alphanumericCharacterSet] mutableCopy]; 45 [set addCharactersInString: @"`-=[]/\\ "]; 46 commandRejectSet = [set copy]; 47 [set release]; 48 // no modifiers, shift, option, option-shift 49 set = [[NSCharacterSet alphanumericCharacterSet] mutableCopy]; 50 [set formUnionWithCharacterSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 51 [set formUnionWithCharacterSet: [NSCharacterSet punctuationCharacterSet]]; 52 [set addCharactersInString: @"\t\r\e\x7f\x03\x19"]; // tab, CR, escape, delete, enter, backtab 53 [set addCharactersInRange: NSMakeRange(0xF700, 0x1FF)]; // reserved function key range 54 [set removeCharactersInRange: NSMakeRange(NSF1FunctionKey, 15)]; // F1-F15 55 textRejectSet = [set copy]; 56 [set release]; 57 // command-shift 58 commandShiftRejectSet = [[NSCharacterSet characterSetWithCharactersInString: @"ACFGHIPQS~? "] retain]; 59 // command-option 60 commandOptionRejectSet = [[NSCharacterSet characterSetWithCharactersInString: @"DW\\-= "] retain]; 42 61 } 43 62 return self; … … 46 65 - (void)dealloc; 47 66 { 67 [textRejectSet release]; 68 [commandRejectSet release]; 69 [commandShiftRejectSet release]; 70 [commandOptionRejectSet release]; 71 } 48 72 73 #pragma mark actions 74 75 - (IBAction)hotKeySet:(NJRHotKeyField *)sender; 76 { 77 [self writeToPrefs]; 49 78 } 50 79 51 80 @end 81 82 @implementation PSPreferencesController (NJRHotKeyFieldDelegate) 83 84 - (BOOL)hotKeyField:(NJRHotKeyField *)hotKeyField shouldAcceptCharacter:(unichar)keyChar modifierFlags:(unsigned)modifierFlags rejectionMessage:(NSString **)message; 85 { 86 *message = nil; 87 88 if (modifierFlags == 0 || modifierFlags == NSShiftKeyMask || modifierFlags == NSAlternateKeyMask || modifierFlags == (NSShiftKeyMask | NSAlternateKeyMask)) { 89 *message = modifierFlags == 0 ? @"key is reserved for typing text" : 90 @"key combination is reserved for typing text"; 91 return ![textRejectSet characterIsMember: keyChar]; 92 } 93 if (modifierFlags == NSCommandKeyMask) { 94 *message = @"key combination is reserved for application use"; 95 return ![commandRejectSet characterIsMember: keyChar]; 96 } 97 if (modifierFlags == (NSCommandKeyMask | NSShiftKeyMask)) { 98 *message = @"key combination is reserved for application use"; 99 return ![commandShiftRejectSet characterIsMember: keyChar]; 100 } 101 if (modifierFlags == (NSCommandKeyMask | NSAlternateKeyMask)) { 102 *message = @"key combination is reserved for Mac OS X use"; 103 return ![commandOptionRejectSet characterIsMember: keyChar]; 104 } 105 return YES; 106 } 107 108 @end
Note:
See TracChangeset
for help on using the changeset viewer.