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
31 class TimeFormatSamples;
32 class TimeFormatFrames;
35 class TimeFormatSeconds;
36 class TimeFormatFeetSetting;
41 class ViewBehaviourText;
42 class ViewBehaviourItem;
47 class UseWarnIndecies;
50 class ScanCommercials;
53 class ActivateFocusPolicy;
54 class DeactivateFocusPolicy;
58 class StillImageUseDuration;
59 class StillImageDuration;
60 class KeyframeReticle;
62 class IndexFFMPEGMarkerFiles;
64 #include "browsebutton.h"
65 #include "deleteallindexes.inc"
66 #include "mwindow.inc"
67 #include "preferencesthread.h"
68 #include "shbtnprefs.inc"
71 class InterfacePrefs : public PreferencesDialog
74 InterfacePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
77 void create_objects();
78 // must delete each derived class
79 int update(int new_value);
80 const char* behavior_to_text(int mode);
81 int start_shbtn_dialog();
86 IndexPathText *ipathtext;
87 DeleteAllIndexes *deleteall;
88 IndexFFMPEGMarkerFiles *ffmpeg_marker_files;
92 TimeFormatSamples *samples;
94 TimeFormatFrames *frames;
96 TimeFormatSeconds *seconds;
101 // MeterVUInt *vu_int;
102 ViewBehaviourText *button1, *button2, *button3;
103 ViewThumbnails *thumbnails;
104 ShBtnEditDialog *shbtn_dialog;
105 KeyframeReticle *keyframe_reticle;
109 class IndexPathText : public BC_TextBox
112 IndexPathText(int x, int y, PreferencesWindow *pwindow, char *text);
115 PreferencesWindow *pwindow;
118 class IndexSize : public BC_TextBox
121 IndexSize(int x, int y, PreferencesWindow *pwindow, char *text);
123 PreferencesWindow *pwindow;
127 class IndexCount : public BC_TextBox
130 IndexCount(int x, int y, PreferencesWindow *pwindow, char *text);
132 PreferencesWindow *pwindow;
135 class TimeFormatHMS : public BC_Radial
138 TimeFormatHMS(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
140 PreferencesWindow *pwindow;
141 InterfacePrefs *tfwindow;
144 class TimeFormatHMSF : public BC_Radial
147 TimeFormatHMSF(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
149 PreferencesWindow *pwindow;
150 InterfacePrefs *tfwindow;
153 class TimeFormatSamples : public BC_Radial
156 TimeFormatSamples(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
158 PreferencesWindow *pwindow;
159 InterfacePrefs *tfwindow;
162 class TimeFormatFrames : public BC_Radial
165 TimeFormatFrames(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
167 PreferencesWindow *pwindow;
168 InterfacePrefs *tfwindow;
171 class TimeFormatHex : public BC_Radial
174 TimeFormatHex(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
176 PreferencesWindow *pwindow;
177 InterfacePrefs *tfwindow;
180 class TimeFormatFeet : public BC_Radial
183 TimeFormatFeet(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
185 PreferencesWindow *pwindow;
186 InterfacePrefs *tfwindow;
189 class TimeFormatSeconds : public BC_Radial
192 TimeFormatSeconds(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
194 PreferencesWindow *pwindow;
195 InterfacePrefs *tfwindow;
198 class TimeFormatFeetSetting : public BC_TextBox
201 TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string);
203 PreferencesWindow *pwindow;
208 class MeterMinDB : public BC_TextBox
211 MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y);
213 PreferencesWindow *pwindow;
217 class MeterMaxDB : public BC_TextBox
220 MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y);
222 PreferencesWindow *pwindow;
225 class MeterVUDB : public BC_Radial
228 MeterVUDB(PreferencesWindow *pwindow, char *text, int y);
230 // MeterVUInt *vu_int;
231 PreferencesWindow *pwindow;
234 class MeterVUInt : public BC_Radial
237 MeterVUInt(PreferencesWindow *pwindow, char *text, int y);
240 PreferencesWindow *pwindow;
243 class ViewBehaviourText : public BC_PopupMenu
246 ViewBehaviourText(int x,
249 PreferencesWindow *pwindow,
251 ~ViewBehaviourText();
253 int handle_event(); // user copies text to value here
254 void create_objects(); // add initial items
255 InterfacePrefs *tfwindow;
259 class ViewBehaviourItem : public BC_MenuItem
262 ViewBehaviourItem(ViewBehaviourText *popup, char *text, int behaviour);
263 ~ViewBehaviourItem();
266 ViewBehaviourText *popup;
270 class ViewTheme : public BC_PopupMenu
273 ViewTheme(int x, int y, PreferencesWindow *pwindow);
276 void create_objects();
279 PreferencesWindow *pwindow;
282 class ViewThumbnails : public BC_CheckBox
285 ViewThumbnails(int x, int y, PreferencesWindow *pwindow);
287 PreferencesWindow *pwindow;
290 class ViewThemeItem : public BC_MenuItem
293 ViewThemeItem(ViewTheme *popup, char *text);
298 class UseTipWindow : public BC_CheckBox
301 UseTipWindow(PreferencesWindow *pwindow, int x, int y);
303 PreferencesWindow *pwindow;
306 class UseWarnIndecies : public BC_CheckBox
309 UseWarnIndecies(PreferencesWindow *pwindow, int x, int y);
311 PreferencesWindow *pwindow;
314 class UseWarnVersion : public BC_CheckBox
317 UseWarnVersion(PreferencesWindow *pwindow, int x, int y);
319 PreferencesWindow *pwindow;
322 class BD_WarnRoot : public BC_CheckBox
325 BD_WarnRoot(PreferencesWindow *pwindow, int x, int y);
327 PreferencesWindow *pwindow;
330 class ScanCommercials : public BC_CheckBox
333 ScanCommercials(PreferencesWindow *pwindow, int x, int y);
335 PreferencesWindow *pwindow;
338 class AndroidRemote : public BC_CheckBox
341 AndroidRemote(PreferencesWindow *pwindow, int x, int y);
343 PreferencesWindow *pwindow;
346 class PopupMenuBtnup : public BC_CheckBox
349 PopupMenuBtnup(PreferencesWindow *pwindow, int x, int y);
351 PreferencesWindow *pwindow;
354 class ActivateFocusPolicy : public BC_CheckBox
357 ActivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
359 PreferencesWindow *pwindow;
362 class DeactivateFocusPolicy : public BC_CheckBox
365 DeactivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
367 PreferencesWindow *pwindow;
370 class AndroidPIN : public BC_TextBox
373 PreferencesWindow *pwindow;
375 AndroidPIN(PreferencesWindow *pwindow, int x, int y);
378 class AndroidPort : public BC_TextBox
381 PreferencesWindow *pwindow;
383 AndroidPort(PreferencesWindow *pwindow, int x, int y);
386 class ShBtnPrefs : public BC_GenericButton
389 PreferencesWindow *pwindow;
390 InterfacePrefs *iface_prefs;
393 ShBtnPrefs(PreferencesWindow *pwindow, InterfacePrefs *iface_prefs, int x, int y);
395 class StillImageUseDuration : public BC_CheckBox
398 StillImageUseDuration(PreferencesWindow *pwindow, int value, int x, int y);
400 PreferencesWindow *pwindow;
403 class StillImageDuration : public BC_TextBox
406 StillImageDuration(PreferencesWindow *pwindow, int x, int y);
408 PreferencesWindow *pwindow;
411 class KeyframeReticle : public BC_PopupMenu
414 KeyframeReticle(int x, int y, int *output);
417 const char* hairline_to_string(int type);
418 void create_objects();
422 class HairlineItem : public BC_MenuItem
425 HairlineItem(KeyframeReticle *popup, int hairline);
428 KeyframeReticle *popup;
433 class IndexFFMPEGMarkerFiles : public BC_CheckBox
436 IndexFFMPEGMarkerFiles(InterfacePrefs *iface_prefs, int x, int y);
437 ~IndexFFMPEGMarkerFiles();
441 InterfacePrefs *iface_prefs;