This repository was archived by the owner on Dec 12, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathXSourceNoteDefaults.m
More file actions
90 lines (78 loc) · 3.08 KB
/
Copy pathXSourceNoteDefaults.m
File metadata and controls
90 lines (78 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//
// XSourceNoteDefaults.m
// XSourceNote
//
// Created by everettjf on 10/31/15.
// Copyright © 2015 everettjf. All rights reserved.
//
#import "XSourceNoteDefaults.h"
#import "XSourceNoteUtil.h"
static NSString * const kXSourceNoteDefaultsShortcutToggle = @"XSourceNoteDefaultsShortcutToggle";
static NSString * const kXSourceNoteDefaultsShortcutShow = @"XSourceNoteDefaultsShortcutShow";
static NSString * const kXSourceNoteDefaultsCodeStyle = @"XSourceNoteDefaultsCodeStyle";
@implementation XSourceNoteDefaults
+(XSN_MAXShortcut *)defaultShortcutToggle{
return [XSN_MAXShortcut shortcutWithKeyCode:kVK_F4 modifierFlags:NSCommandKeyMask];
}
+(XSN_MAXShortcut *)defaultShortcutShow{
return [XSN_MAXShortcut shortcutWithKeyCode:kVK_F4 modifierFlags:NSShiftKeyMask];
}
+(XSourceNoteDefaults *)sharedDefaults{
static XSourceNoteDefaults *inst;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
inst = [NSKeyedUnarchiver unarchiveObjectWithFile:[XSourceNoteDefaults configFilePath]];
if(inst == nil){
inst = [[XSourceNoteDefaults alloc]init];
}
});
return inst;
}
+(NSString*)configFilePath{
return [[XSourceNoteUtil settingDirectory]stringByAppendingPathComponent:@"config"];
}
- (instancetype)init
{
self = [super init];
if (self) {
self.currentShortcutToggle = [XSourceNoteDefaults defaultShortcutToggle];
self.currentShortcutShow = [XSourceNoteDefaults defaultShortcutShow];
self.codeStyle = @0;
}
return self;
}
-(void)synchronize{
[NSKeyedArchiver archiveRootObject:self toFile:[XSourceNoteDefaults configFilePath]];
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
self = [super init];
if(self){
self.currentShortcutToggle = [aDecoder decodeObjectForKey:kXSourceNoteDefaultsShortcutToggle];
self.currentShortcutShow = [aDecoder decodeObjectForKey:kXSourceNoteDefaultsShortcutShow];
self.codeStyle = [aDecoder decodeObjectForKey:kXSourceNoteDefaultsCodeStyle];
}
return self;
}
-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.currentShortcutToggle forKey:kXSourceNoteDefaultsShortcutToggle];
[aCoder encodeObject:self.currentShortcutShow forKey:kXSourceNoteDefaultsShortcutShow];
[aCoder encodeObject:self.codeStyle forKey:kXSourceNoteDefaultsCodeStyle];
}
-(void)enableAllMenuShortcuts:(BOOL)enable{
if(enable){
self.toggleMenuItem.keyEquivalent = self.currentShortcutToggle.keyCodeStringForKeyEquivalent;
self.toggleMenuItem.keyEquivalentModifierMask = self.currentShortcutToggle.modifierFlags;
self.showMenuItem.keyEquivalent = self.currentShortcutShow.keyCodeStringForKeyEquivalent;
self.showMenuItem.keyEquivalentModifierMask = self.currentShortcutShow.modifierFlags;
}else{
NSArray *menus = @[
self.toggleMenuItem,
self.showMenuItem
];
for (NSMenuItem *menu in menus){
menu.keyEquivalent = @"";
menu.keyEquivalentModifierMask = 0;
}
}
}
@end