2 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 // File: PreferenceController.m
6 // Created: Wed Sep 24 2003
8 // Copyright: 2003 Chaz McGarvey. All rights reserved.
9 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 #import "PreferenceController.h"
14 @implementation PreferenceController
17 - (id)initWithDelegate
:(id)del
19 if ( self = [super initWithWindowNibName
:@
"Preferences"] )
21 [self setWindowFrameAutosaveName
:@
"TCPreferencWindowPosition"];
31 [self initialInterfaceSetup
];
32 [self interfaceUpdate
];
36 - (void)initialInterfaceSetup
38 [playSoundsButton setState
:(TCGlobalPlaySounds
)? NSOnState
:NSOffState
];
39 [windowsOnTopButton setState
:(TCGlobalWindowsOnTop
)? NSOnState
:NSOffState
];
40 [allowRemoteButton setState
:(TCGlobalAllowRemote
)? NSOnState
:NSOffState
];
41 [listenPortTextField setIntValue
:TCGlobalListenPort
];
42 [broadcastNameTextField setStringValue
:[[NSUserDefaults standardUserDefaults
] objectForKey
:TCBroadcastNamePref
]];
45 - (void)interfaceUpdate
47 if ( TCGlobalAllowRemote
)
49 [listenPortTextField setEnabled
:YES
];
50 [broadcastNameTextField setEnabled
:YES
];
54 [listenPortTextField setEnabled
:NO
];
55 [broadcastNameTextField setEnabled
:NO
];
60 - (IBAction
)playSoundsButton
:(id)sender
62 if ( [playSoundsButton state
] == NSOnState
)
64 TCGlobalPlaySounds
= YES
;
65 [[NSUserDefaults standardUserDefaults
] setBool
:YES forKey
:TCPlaySoundsPref
];
69 TCGlobalPlaySounds
= NO
;
70 [[NSUserDefaults standardUserDefaults
] setBool
:NO forKey
:TCPlaySoundsPref
];
74 - (IBAction
)windowsOnTopButton
:(id)sender
76 if ( [windowsOnTopButton state
] == NSOnState
)
78 TCGlobalWindowsOnTop
= YES
;
79 [[NSUserDefaults standardUserDefaults
] setBool
:YES forKey
:TCWindowsOnTopPref
];
83 TCGlobalWindowsOnTop
= NO
;
84 [[NSUserDefaults standardUserDefaults
] setBool
:NO forKey
:TCWindowsOnTopPref
];
87 [[NSNotificationCenter defaultCenter
] postNotificationName
:@
"TCWindowsOnTopChanged" object
:nil];
90 - (IBAction
)allowRemoteButton
:(id)sender
92 if ( [allowRemoteButton state
] == NSOnState
)
94 TCGlobalAllowRemote
= YES
;
95 [[NSUserDefaults standardUserDefaults
] setBool
:YES forKey
:TCAllowRemotePref
];
99 TCGlobalAllowRemote
= NO
;
100 [[NSUserDefaults standardUserDefaults
] setBool
:NO forKey
:TCAllowRemotePref
];
103 [self interfaceUpdate
];
105 [delegate preferenceAllowRemoteChanged
:TCGlobalAllowRemote
];
108 - (IBAction
)listenPortTextField
:(id)sender
110 TCGlobalListenPort
= [listenPortTextField intValue
];
112 [[NSUserDefaults standardUserDefaults
] setObject
:[NSNumber numberWithInt
:TCGlobalListenPort
] forKey
:TCListenPortPref
];
114 [delegate preferenceListenPortChanged
:TCGlobalListenPort
];
117 - (IBAction
)broadcastNameTextField
:(id)sender
119 NSString
*name
= [broadcastNameTextField stringValue
];
121 [[NSUserDefaults standardUserDefaults
] setObject
:name forKey
:TCBroadcastNamePref
];
123 [delegate preferenceBroadcastNameChanged
:name
];