4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #ifndef INTERFACEPREFS_H
23 #define INTERFACEPREFS_H
30 class TimeFormatSamples;
31 class TimeFormatFrames;
34 class TimeFormatSeconds;
39 class ViewBehaviourText;
44 class StillImageUseDuration;
45 class StillImageDuration;
46 class KeyframeReticle;
48 #include "browsebutton.h"
49 #include "deleteallindexes.inc"
50 #include "mwindow.inc"
51 #include "preferencesthread.h"
52 #include "shbtnprefs.inc"
55 class InterfacePrefs : public PreferencesDialog
58 InterfacePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
61 void create_objects();
62 // must delete each derived class
63 int update(int new_value);
64 const char* behavior_to_text(int mode);
65 int start_shbtn_dialog();
70 IndexPathText *ipathtext;
71 DeleteAllIndexes *deleteall;
75 TimeFormatSamples *samples;
77 TimeFormatFrames *frames;
79 TimeFormatSeconds *seconds;
84 // MeterVUInt *vu_int;
85 ViewBehaviourText *button1, *button2, *button3;
86 ViewThumbnails *thumbnails;
87 ShBtnEditDialog *shbtn_dialog;
88 KeyframeReticle *keyframe_reticle;
92 class IndexPathText : public BC_TextBox
95 IndexPathText(int x, int y, PreferencesWindow *pwindow, char *text);
98 PreferencesWindow *pwindow;
101 class IndexSize : public BC_TextBox
104 IndexSize(int x, int y, PreferencesWindow *pwindow, char *text);
106 PreferencesWindow *pwindow;
110 class IndexCount : public BC_TextBox
113 IndexCount(int x, int y, PreferencesWindow *pwindow, char *text);
115 PreferencesWindow *pwindow;
118 class TimeFormatHMS : public BC_Radial
121 TimeFormatHMS(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
123 PreferencesWindow *pwindow;
124 InterfacePrefs *tfwindow;
127 class TimeFormatHMSF : public BC_Radial
130 TimeFormatHMSF(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
132 PreferencesWindow *pwindow;
133 InterfacePrefs *tfwindow;
136 class TimeFormatSamples : public BC_Radial
139 TimeFormatSamples(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
141 PreferencesWindow *pwindow;
142 InterfacePrefs *tfwindow;
145 class TimeFormatFrames : public BC_Radial
148 TimeFormatFrames(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
150 PreferencesWindow *pwindow;
151 InterfacePrefs *tfwindow;
154 class TimeFormatHex : public BC_Radial
157 TimeFormatHex(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
159 PreferencesWindow *pwindow;
160 InterfacePrefs *tfwindow;
163 class TimeFormatFeet : public BC_Radial
166 TimeFormatFeet(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
168 PreferencesWindow *pwindow;
169 InterfacePrefs *tfwindow;
172 class TimeFormatSeconds : public BC_Radial
175 TimeFormatSeconds(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
177 PreferencesWindow *pwindow;
178 InterfacePrefs *tfwindow;
181 class TimeFormatFeetSetting : public BC_TextBox
184 TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string);
186 PreferencesWindow *pwindow;
191 class MeterMinDB : public BC_TextBox
194 MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y);
196 PreferencesWindow *pwindow;
200 class MeterMaxDB : public BC_TextBox
203 MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y);
205 PreferencesWindow *pwindow;
208 class MeterVUDB : public BC_Radial
211 MeterVUDB(PreferencesWindow *pwindow, char *text, int y);
213 // MeterVUInt *vu_int;
214 PreferencesWindow *pwindow;
217 class MeterVUInt : public BC_Radial
220 MeterVUInt(PreferencesWindow *pwindow, char *text, int y);
223 PreferencesWindow *pwindow;
226 class ViewBehaviourText : public BC_PopupMenu
229 ViewBehaviourText(int x,
232 PreferencesWindow *pwindow,
234 ~ViewBehaviourText();
236 int handle_event(); // user copies text to value here
237 void create_objects(); // add initial items
238 InterfacePrefs *tfwindow;
242 class ViewBehaviourItem : public BC_MenuItem
245 ViewBehaviourItem(ViewBehaviourText *popup, char *text, int behaviour);
246 ~ViewBehaviourItem();
249 ViewBehaviourText *popup;
253 class ViewTheme : public BC_PopupMenu
256 ViewTheme(int x, int y, PreferencesWindow *pwindow);
259 void create_objects();
262 PreferencesWindow *pwindow;
265 class ViewThumbnails : public BC_CheckBox
268 ViewThumbnails(int x, int y, PreferencesWindow *pwindow);
270 PreferencesWindow *pwindow;
273 class ViewThemeItem : public BC_MenuItem
276 ViewThemeItem(ViewTheme *popup, char *text);
281 class UseTipWindow : public BC_CheckBox
284 UseTipWindow(PreferencesWindow *pwindow, int x, int y);
286 PreferencesWindow *pwindow;
289 class UseWarnIndecies : public BC_CheckBox
292 UseWarnIndecies(PreferencesWindow *pwindow, int x, int y);
294 PreferencesWindow *pwindow;
297 class ScanCommercials : public BC_CheckBox
300 ScanCommercials(PreferencesWindow *pwindow, int x, int y);
302 PreferencesWindow *pwindow;
305 class AndroidRemote : public BC_CheckBox
308 AndroidRemote(PreferencesWindow *pwindow, int x, int y);
310 PreferencesWindow *pwindow;
313 class AndroidPIN : public BC_TextBox
316 PreferencesWindow *pwindow;
318 AndroidPIN(PreferencesWindow *pwindow, int x, int y);
321 class AndroidPort : public BC_TextBox
324 PreferencesWindow *pwindow;
326 AndroidPort(PreferencesWindow *pwindow, int x, int y);
329 class ShBtnPrefs : public BC_GenericButton
332 PreferencesWindow *pwindow;
333 InterfacePrefs *iface_prefs;
336 ShBtnPrefs(PreferencesWindow *pwindow, InterfacePrefs *iface_prefs, int x, int y);
338 class StillImageUseDuration : public BC_CheckBox
341 StillImageUseDuration(PreferencesWindow *pwindow, int value, int x, int y);
343 PreferencesWindow *pwindow;
346 class StillImageDuration : public BC_TextBox
349 StillImageDuration(PreferencesWindow *pwindow, int x, int y);
351 PreferencesWindow *pwindow;
354 class KeyframeReticle : public BC_PopupMenu
357 KeyframeReticle(int x, int y, int *output);
360 const char* hairline_to_string(int type);
361 void create_objects();
365 class HairlineItem : public BC_MenuItem
368 HairlineItem(KeyframeReticle *popup, int hairline);
371 KeyframeReticle *popup;