1 /*****************************************************************************
2 * simple_prefs.h: Simple Preferences for Mac OS X
3 *****************************************************************************
4 * Copyright (C) 2008-2011 VLC authors and VideoLAN
7 * Authors: Felix Paul Kühne <fkuehne at videolan dot org>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22 *****************************************************************************/
24 #import <Cocoa/Cocoa.h>
26 #import <vlc_common.h>
28 @interface VLCSimplePrefs : NSObject <NSToolbarDelegate>
30 IBOutlet id o_audio_dolby_pop;
31 IBOutlet id o_audio_dolby_txt;
32 IBOutlet id o_audio_effects_box;
33 IBOutlet id o_audio_enable_ckb;
34 IBOutlet id o_audio_general_box;
35 IBOutlet id o_audio_lang_fld;
36 IBOutlet id o_audio_lang_txt;
37 IBOutlet id o_audio_last_box;
38 IBOutlet id o_audio_last_ckb;
39 IBOutlet id o_audio_lastpwd_sfld;
40 IBOutlet id o_audio_lastpwd_txt;
41 IBOutlet id o_audio_lastuser_fld;
42 IBOutlet id o_audio_lastuser_txt;
43 IBOutlet id o_audio_spdif_ckb;
44 IBOutlet id o_audio_view;
45 IBOutlet id o_audio_visual_pop;
46 IBOutlet id o_audio_visual_txt;
47 IBOutlet id o_audio_vol_fld;
48 IBOutlet id o_audio_vol_sld;
49 IBOutlet id o_audio_autosavevol_matrix;
50 IBOutlet id o_audio_autosavevol_yes_bcell;
51 IBOutlet id o_audio_autosavevol_no_bcell;
53 IBOutlet id o_hotkeys_change_btn;
54 IBOutlet id o_hotkeys_change_lbl;
55 IBOutlet id o_hotkeys_change_keys_lbl;
56 IBOutlet id o_hotkeys_change_taken_lbl;
57 IBOutlet id o_hotkeys_change_win;
58 IBOutlet id o_hotkeys_change_cancel_btn;
59 IBOutlet id o_hotkeys_change_ok_btn;
60 IBOutlet id o_hotkeys_clear_btn;
61 IBOutlet id o_hotkeys_lbl;
62 IBOutlet id o_hotkeys_listbox;
63 IBOutlet id o_hotkeys_view;
65 IBOutlet id o_input_record_box;
66 IBOutlet id o_input_record_fld;
67 IBOutlet id o_input_record_btn;
68 IBOutlet id o_input_avi_pop;
69 IBOutlet id o_input_avi_txt;
70 IBOutlet id o_input_cachelevel_pop;
71 IBOutlet id o_input_cachelevel_txt;
72 IBOutlet id o_input_cachelevel_custom_txt;
73 IBOutlet id o_input_caching_box;
74 IBOutlet id o_input_httpproxy_fld;
75 IBOutlet id o_input_httpproxy_txt;
76 IBOutlet id o_input_httpproxypwd_sfld;
77 IBOutlet id o_input_httpproxypwd_txt;
78 IBOutlet id o_input_mux_box;
79 IBOutlet id o_input_net_box;
80 IBOutlet id o_input_postproc_fld;
81 IBOutlet id o_input_postproc_txt;
82 IBOutlet id o_input_rtsp_ckb;
83 IBOutlet id o_input_skipLoop_txt;
84 IBOutlet id o_input_skipLoop_pop;
85 IBOutlet id o_input_mkv_preload_dir_ckb;
86 IBOutlet id o_input_view;
88 IBOutlet id o_intf_style_txt;
89 IBOutlet id o_intf_style_dark_bcell;
90 IBOutlet id o_intf_style_bright_bcell;
91 IBOutlet id o_intf_art_pop;
92 IBOutlet id o_intf_art_txt;
93 IBOutlet id o_intf_embedded_ckb;
94 IBOutlet id o_intf_fspanel_ckb;
96 IBOutlet id o_intf_appleremote_ckb;
98 IBOutlet id o_intf_mediakeys_ckb;
99 IBOutlet id o_intf_lang_pop;
100 IBOutlet id o_intf_lang_txt;
101 IBOutlet id o_intf_network_box;
102 IBOutlet id o_intf_view;
103 IBOutlet id o_intf_update_ckb;
104 IBOutlet id o_intf_last_update_lbl;
105 IBOutlet id o_intf_enableGrowl_ckb;
106 IBOutlet id o_intf_nativefullscreen_ckb;
107 IBOutlet id o_intf_autoresize_ckb;
108 IBOutlet id o_intf_pauseminimized_ckb;
110 IBOutlet id o_osd_encoding_pop;
111 IBOutlet id o_osd_encoding_txt;
112 IBOutlet id o_osd_font_box;
113 IBOutlet id o_osd_font_btn;
114 IBOutlet id o_osd_font_color_pop;
115 IBOutlet id o_osd_font_color_txt;
116 IBOutlet id o_osd_font_fld;
117 IBOutlet id o_osd_font_size_pop;
118 IBOutlet id o_osd_font_size_txt;
119 IBOutlet id o_osd_font_txt;
120 IBOutlet id o_osd_lang_box;
121 IBOutlet id o_osd_lang_fld;
122 IBOutlet id o_osd_lang_txt;
123 IBOutlet id o_osd_opacity_txt;
124 IBOutlet id o_osd_opacity_fld;
125 IBOutlet id o_osd_opacity_sld;
126 IBOutlet id o_osd_outline_color_pop;
127 IBOutlet id o_osd_outline_color_txt;
128 IBOutlet id o_osd_outline_thickness_pop;
129 IBOutlet id o_osd_outline_thickness_txt;
130 IBOutlet id o_osd_forcebold_ckb;
131 IBOutlet id o_osd_osd_box;
132 IBOutlet id o_osd_osd_ckb;
133 IBOutlet id o_osd_view;
135 IBOutlet id o_sprefs_showAll_btn;
136 IBOutlet id o_sprefs_cancel_btn;
137 IBOutlet id o_sprefs_controls_box;
138 IBOutlet id o_sprefs_reset_btn;
139 IBOutlet id o_sprefs_save_btn;
140 IBOutlet id o_sprefs_win;
142 IBOutlet id o_video_black_ckb;
143 IBOutlet id o_video_device_pop;
144 IBOutlet id o_video_device_txt;
145 IBOutlet id o_video_display_box;
146 IBOutlet id o_video_enable_ckb;
147 IBOutlet id o_video_fullscreen_ckb;
148 IBOutlet id o_video_onTop_ckb;
149 IBOutlet id o_video_output_pop;
150 IBOutlet id o_video_output_txt;
151 IBOutlet id o_video_skipFrames_ckb;
152 IBOutlet id o_video_snap_box;
153 IBOutlet id o_video_snap_folder_btn;
154 IBOutlet id o_video_snap_folder_fld;
155 IBOutlet id o_video_snap_folder_txt;
156 IBOutlet id o_video_snap_format_pop;
157 IBOutlet id o_video_snap_format_txt;
158 IBOutlet id o_video_snap_prefix_fld;
159 IBOutlet id o_video_snap_prefix_txt;
160 IBOutlet id o_video_snap_seqnum_ckb;
161 IBOutlet id o_video_view;
163 BOOL b_audioSettingChanged;
164 BOOL b_intfSettingChanged;
165 BOOL b_videoSettingChanged;
166 BOOL b_osdSettingChanged;
167 BOOL b_inputSettingChanged;
168 BOOL b_hotkeyChanged;
169 id o_currentlyShownCategoryView;
171 NSOpenPanel *o_selectFolderPanel;
172 NSArray *o_hotkeyDescriptions;
173 NSArray *o_hotkeyNames;
174 NSArray *o_hotkeysNonUseableKeys;
175 NSMutableArray *o_hotkeySettings;
176 NSString *o_keyInTransition;
178 intf_thread_t *p_intf;
180 + (VLCSimplePrefs *)sharedInstance;
181 - (NSString *)OSXStringKeyToString:(NSString *)theString;
184 - (NSToolbarItem *) toolbar: (NSToolbar *)o_toolbar
185 itemForItemIdentifier: (NSString *)o_itemIdent
186 willBeInsertedIntoToolbar: (BOOL)b_willBeInserted;
187 - (NSArray *)toolbarDefaultItemIdentifiers: (NSToolbar *)toolbar;
188 - (NSArray *)toolbarAllowedItemIdentifiers: (NSToolbar *)toolbar;
191 - (void)resetControls;
192 - (void)showSimplePrefs;
194 - (IBAction)buttonAction:(id)sender;
195 - (void)sheetDidEnd:(NSWindow *)o_sheet
196 returnCode:(int)i_return
197 contextInfo:(void *)o_context;
199 - (void)saveChangedSettings;
202 - (IBAction)interfaceSettingChanged:(id)sender;
203 - (void)showInterfaceSettings;
206 - (IBAction)audioSettingChanged:(id)sender;
207 - (void)showAudioSettings;
210 - (IBAction)videoSettingChanged:(id)sender;
211 - (void)showVideoSettings;
213 /* OSD / subtitles */
214 - (IBAction)osdSettingChanged:(id)sender;
215 - (IBAction)showFontPicker:(id)sender;
216 - (void)showOSDSettings;
217 - (void)changeFont:(id)sender;
220 - (IBAction)inputSettingChanged:(id)sender;
221 - (void)showInputSettings;
224 - (IBAction)hotkeySettingChanged:(id)sender;
225 - (void)showHotkeySettings;
226 - (int)numberOfRowsInTableView:(NSTableView *)aTableView;
227 - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
228 - (BOOL)changeHotkeyTo: (NSString *)theKey;
232 @interface VLCHotkeyChangeWindow : NSWindow
236 @interface VLCSimplePrefsWindow : NSWindow