root/tags/2D9/JVBehaviorPreferences.m

Revision 2558, 7.8 kB (checked in by eridius, 3 years ago)

Remove all trailing whitespace from lines
Remove indentation on blank lines

Line 
1 #import "JVBehaviorPreferences.h"
2 #import "JVChatController.h"
3 #import "JVChatRoomPanel.h"
4
5 @implementation JVBehaviorPreferences
6 - (NSString *) preferencesNibName {
7         return @"JVBehaviorPreferences";
8 }
9
10 - (BOOL) hasChangesPending {
11         return NO;
12 }
13
14 - (NSImage *) imageForPreferenceNamed:(NSString *) name {
15         return [[[NSImage imageNamed:@"BehaviorPreferences"] retain] autorelease];
16 }
17
18 - (BOOL) isResizable {
19         return NO;
20 }
21
22 - (void) initializeFromDefaults {
23         [[newRooms menu] setAutoenablesItems:NO];
24         [[newChats menu] setAutoenablesItems:NO];
25         [[newTranscripts menu] setAutoenablesItems:NO];
26         [[newConsoles menu] setAutoenablesItems:NO];
27
28         int value = [[NSUserDefaults standardUserDefaults] integerForKey:@"JVChatRoomPanelPreferredOpenMode"] & ~32;
29         int index = [newRooms indexOfItemWithTag:value];
30         if( index >= 0 ) [newRooms selectItemAtIndex:index];
31         [self changePreferredWindow:newRooms];
32
33         value = [[NSUserDefaults standardUserDefaults] integerForKey:@"JVDirectChatPanelPreferredOpenMode"] & ~32;
34         index = [newChats indexOfItemWithTag:value];
35         if( index >= 0 ) [newChats selectItemAtIndex:index];
36         [self changePreferredWindow:newChats];
37
38         value = [[NSUserDefaults standardUserDefaults] integerForKey:@"JVChatTranscriptPanelPreferredOpenMode"] & ~32;
39         index = [newTranscripts indexOfItemWithTag:value];
40         if( index >= 0 ) [newTranscripts selectItemAtIndex:index];
41         [self changePreferredWindow:newTranscripts];
42
43         value = [[NSUserDefaults standardUserDefaults] integerForKey:@"JVChatConsolePanelPreferredOpenMode"] & ~32;
44         index = [newConsoles indexOfItemWithTag:value];
45         if( index >= 0 ) [newConsoles selectItemAtIndex:index];
46         [self changePreferredWindow:newConsoles];
47
48         [sortByStatus setState:[[NSUserDefaults standardUserDefaults] boolForKey:@"JVSortRoomMembersByStatus"]];
49         [tabbedWindows setState:[[NSUserDefaults standardUserDefaults] boolForKey:@"JVUseTabbedWindows"]];
50
51         [checkSpelling setState:[[NSUserDefaults standardUserDefaults] boolForKey:@"JVChatSpellChecking"]];
52         [detectNaturalActions setState:[[NSUserDefaults standardUserDefaults] boolForKey:@"MVChatNaturalActions"]];
53
54         if( [[NSUserDefaults standardUserDefaults] boolForKey:@"MVChatSendOnReturn"] )
55                 [returnKeyAction selectItemAtIndex:[returnKeyAction indexOfItemWithTag:0]];
56         else if( [[NSUserDefaults standardUserDefaults] boolForKey:@"MVChatActionOnReturn"] )
57                 [returnKeyAction selectItemAtIndex:[returnKeyAction indexOfItemWithTag:1]];
58         else [returnKeyAction selectItemAtIndex:[returnKeyAction indexOfItemWithTag:2]];
59
60         if( [[NSUserDefaults standardUserDefaults] boolForKey:@"MVChatSendOnEnter"] )
61                 [enterKeyAction selectItemAtIndex:[enterKeyAction indexOfItemWithTag:0]];
62         else if( [[NSUserDefaults standardUserDefaults] boolForKey:@"MVChatActionOnEnter"] )
63                 [enterKeyAction selectItemAtIndex:[enterKeyAction indexOfItemWithTag:1]];
64         else [enterKeyAction selectItemAtIndex:[enterKeyAction indexOfItemWithTag:2]];
65
66         [sendHistory setIntValue:[[NSUserDefaults standardUserDefaults] integerForKey:@"JVChatMaximumHistory"]];
67         [sendHistoryStepper setIntValue:[[NSUserDefaults standardUserDefaults] integerForKey:@"JVChatMaximumHistory"]];
68
69         [messageScrollback setIntValue:[[NSUserDefaults standardUserDefaults] integerForKey:@"JVChatScrollbackLimit"]];
70         [messageScrollbackStepper setIntValue:[[NSUserDefaults standardUserDefaults] integerForKey:@"JVChatScrollbackLimit"]];
71
72         if( NSAppKitVersionNumber >= 700. ) {
73                 [tabKeyComplete setEnabled:YES];
74                 [tabKeyComplete setState:[[NSUserDefaults standardUserDefaults] boolForKey:@"JVUsePantherTextCompleteOnTab"]];
75         } else {
76                 [tabKeyCompleteLabel setObjectValue:@""];
77         }
78 }
79
80 #pragma mark -
81
82 - (IBAction) changeSortByStatus:(id) sender {
83         [[NSUserDefaults standardUserDefaults] setBool:(BOOL)[sender state] forKey:@"JVSortRoomMembersByStatus"];
84
85         NSEnumerator *enumerator = [[[JVChatController defaultManager] chatViewControllersOfClass:[JVChatRoomPanel class]] objectEnumerator];
86         JVChatRoomPanel *room = nil;
87         while( ( room = [enumerator nextObject] ) )
88                 [room resortMembers];
89 }
90
91 - (IBAction) changeTabbedWindows:(id) sender {
92         [[NSUserDefaults standardUserDefaults] setBool:(BOOL)[sender state] forKey:@"JVUseTabbedWindows"];
93 }
94
95 - (IBAction) changePreferredWindow:(id) sender {
96         NSString *key = nil;
97
98         if( sender == newRooms ) key = @"JVChatRoomPanelPreferredOpenMode";
99         else if( sender == newChats ) key = @"JVDirectChatPanelPreferredOpenMode";
100         else if( sender == newTranscripts ) key = @"JVChatTranscriptPanelPreferredOpenMode";
101         else if( sender == newConsoles ) key = @"JVChatConsolePanelPreferredOpenMode";
102         else return;
103
104         int new = [[sender selectedItem] tag];
105         BOOL groupByServer = (BOOL) [[NSUserDefaults standardUserDefaults] integerForKey:key] & 32;
106
107         if( [[sender selectedItem] tag] == 32 ) {
108                 NSMenuItem *item = [sender selectedItem];
109                 new = [[NSUserDefaults standardUserDefaults] integerForKey:key] & ~32;
110                 groupByServer = ! groupByServer;
111                 [sender selectItemAtIndex:[sender indexOfItemWithTag:new]];
112                 [item setState:( groupByServer ? NSOnState : NSOffState )];
113         } else if( [[sender selectedItem] tag] == 0 || [[sender selectedItem] tag] == 1 || [[sender selectedItem] tag] == 4 ) {
114                 NSMenuItem *item = ( [sender indexOfItemWithTag:32] >= 0 ? [sender itemAtIndex:[sender indexOfItemWithTag:32]] : nil );
115                 [item setState:NSOffState];
116                 [item setEnabled:NO];
117                 groupByServer = NO;
118         } else {
119                 NSMenuItem *item = ( [sender indexOfItemWithTag:32] >= 0 ? [sender itemAtIndex:[sender indexOfItemWithTag:32]] : nil );
120                 [item setState:( groupByServer ? NSOnState : NSOffState )];
121                 [item setEnabled:YES];
122         }
123
124         if( groupByServer ) new |= 32;
125
126         [[NSUserDefaults standardUserDefaults] setInteger:new forKey:key];
127 }
128
129 #pragma mark -
130
131 - (IBAction) changeSpellChecking:(id) sender {
132         [[NSUserDefaults standardUserDefaults] setBool:(BOOL)[sender state] forKey:@"JVChatSpellChecking"];
133 }
134
135 - (IBAction) changeNaturalActionDetection:(id) sender {
136         [[NSUserDefaults standardUserDefaults] setBool:(BOOL)[sender state] forKey:@"MVChatNaturalActions"];
137 }
138
139 - (IBAction) changeSendOnReturnAction:(id) sender {
140         if( [[sender selectedItem] tag] == 0 ) {
141                 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"MVChatSendOnReturn"];
142                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatActionOnReturn"];
143         } else if( [[sender selectedItem] tag] == 1 ) {
144                 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"MVChatActionOnReturn"];
145                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatSendOnReturn"];
146         } else {
147                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatSendOnReturn"];
148                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatActionOnReturn"];
149         }
150 }
151
152 - (IBAction) changeSendOnEnterAction:(id) sender {
153         if( [[sender selectedItem] tag] == 0 ) {
154                 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"MVChatSendOnEnter"];
155                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatActionOnEnter"];
156         } else if( [[sender selectedItem] tag] == 1 ) {
157                 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"MVChatActionOnEnter"];
158                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatSendOnEnter"];
159         } else {
160                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatSendOnEnter"];
161                 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MVChatActionOnEnter"];
162         }
163 }
164
165 - (IBAction) changeSendHistory:(id) sender {
166         int size = [sender intValue];
167         [sendHistory setIntValue:size];
168         [sendHistoryStepper setIntValue:size];
169         [[NSUserDefaults standardUserDefaults] setInteger:[sendHistory intValue] forKey:@"JVChatMaximumHistory"];
170 }
171
172 - (IBAction) changeMessageScrollback:(id) sender {
173         int size = [sender intValue];
174         [messageScrollback setIntValue:size];
175         [messageScrollbackStepper setIntValue:size];
176         [[NSUserDefaults standardUserDefaults] setInteger:[messageScrollback intValue] forKey:@"JVChatScrollbackLimit"];
177 }
178
179 - (IBAction) changeTabKeyComplete:(id) sender {
180         [[NSUserDefaults standardUserDefaults] setBool:(BOOL)[sender state] forKey:@"JVUsePantherTextCompleteOnTab"];
181 }
182 @end
Note: See TracBrowser for help on using the browser.