3 * PreferencesController
4 * Preferences window controller
6 * Original Author : Kent Sutherland <ksuther@ithinksw.com>
7 * Responsibility : Kent Sutherland <ksuther@ithinksw.com>
9 * Copyright (c) 2002 iThink Software.
15 #import <Cocoa/Cocoa.h>
17 @class CustomMenuTableView, MainController, ITKeyCombo;
19 @interface PreferencesController : NSObject
21 IBOutlet NSButton *albumArtworkCheckbox;
22 IBOutlet NSButton *albumCheckbox;
23 IBOutlet NSTableView *allTableView;
24 IBOutlet NSPopUpButton *appearanceEffectPopup;
25 IBOutlet NSSlider *appearanceSpeedSlider;
26 IBOutlet NSButton *artistCheckbox;
27 IBOutlet NSButton *audioscrobblerEnabledCheckbox;
28 IBOutlet NSTextField *audioscrobblerPasswordTextField;
29 IBOutlet NSTextField *audioscrobblerStatusTextField;
30 IBOutlet NSButton *audioscrobblerUseCacheCheckbox;
31 IBOutlet NSTextField *audioscrobblerUserTextField;
32 IBOutlet NSPopUpButton *backgroundStylePopup;
33 IBOutlet NSColorWell *backgroundColorWell;
34 IBOutlet NSPopUpButton *backgroundColorPopup;
35 IBOutlet NSTextField *clientPasswordTextField;
36 IBOutlet NSButton *composerCheckbox;
37 IBOutlet NSTextField *hostTextField;
38 IBOutlet NSTableView *hotKeysTableView;
39 IBOutlet NSButton *launchAtLoginCheckbox;
40 IBOutlet NSButton *launchPlayerAtLaunchCheckbox;
41 IBOutlet NSTextField *locationTextField;
42 IBOutlet NSView *manualView;
43 IBOutlet CustomMenuTableView *menuTableView;
44 IBOutlet NSButton *nameCheckbox;
45 IBOutlet NSTextField *nameTextField;
46 IBOutlet NSPanel *passwordPanel;
47 IBOutlet NSTextField *passwordPanelMessage;
48 IBOutlet NSButton *passwordPanelOKButton;
49 IBOutlet NSTextField *passwordPanelTextField;
50 IBOutlet NSTextField *passwordPanelTitle;
51 IBOutlet NSTextField *passwordTextField;
52 IBOutlet NSButton *playCountCheckbox;
53 IBOutlet NSMatrix *positionMatrix;
54 IBOutlet NSButton *ratingCheckbox;
55 IBOutlet NSButton *runScriptsCheckbox;
56 IBOutlet NSPopUpButton *screenPopup;
57 IBOutlet NSTextField *selectedPlayerTextField;
58 IBOutlet NSBox *selectPlayerBox;
59 IBOutlet NSPanel *selectPlayerSheet;
60 IBOutlet NSButton *selectSharedPlayerButton;
61 IBOutlet NSButton *shareMenuTunesCheckbox;
62 IBOutlet NSButton *sharingPanelOKButton;
63 IBOutlet NSTableView *sharingTableView;
64 IBOutlet NSButton *showOnChangeCheckbox;
65 IBOutlet NSButton *showScriptsButton;
66 IBOutlet NSTextField *songsInAdvance;
67 IBOutlet NSButton *trackNumberCheckbox;
68 IBOutlet NSButton *trackTimeCheckbox;
69 IBOutlet NSButton *useSharedMenuTunesCheckbox;
70 IBOutlet NSSlider *vanishDelaySlider;
71 IBOutlet NSPopUpButton *vanishEffectPopup;
72 IBOutlet NSSlider *vanishSpeedSlider;
73 IBOutlet NSWindow *window;
74 IBOutlet NSPopUpButton *windowSizingPopup;
75 IBOutlet NSView *zeroConfView;
77 MainController *controller;
79 NSMutableArray *availableItems;
80 NSMutableArray *myItems;
81 NSArray *submenuItems;
82 NSArray *effectClasses;
84 NSArray *hotKeysArray, *hotKeyNamesArray;
85 NSMutableDictionary *hotKeysDictionary;
88 + (PreferencesController *)sharedPrefs;
89 + (NSString *)getKeychainItemPasswordForUser:(NSString *)user;
92 - (void)setController:(id)object;
94 - (BOOL)showPasswordPanel;
95 - (BOOL)showInvalidPasswordPanel;
97 - (IBAction)changeGeneralSetting:(id)sender;
98 - (IBAction)changeSharingSetting:(id)sender;
99 - (IBAction)changeStatusWindowSetting:(id)sender;
100 - (void)resetRemotePlayerTextFields;
102 - (IBAction)clearHotKey:(id)sender;
103 - (IBAction)editHotKey:(id)sender;
104 - (IBAction)showPrefsWindow:(id)sender;
106 - (void)registerDefaults;
107 - (void)deletePressedInTableView:(NSTableView *)tableView;