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