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;
45 class ViewPluginIcons;
46 class ViewPluginIconItem;
49 class UseWarnIndecies;
52 class ScanCommercials;
55 class ActivateFocusPolicy;
56 class DeactivateFocusPolicy;
60 class StillImageUseDuration;
61 class StillImageDuration;
62 class KeyframeReticle;
64 class IndexFFMPEGMarkerFiles;
66 #include "browsebutton.h"
67 #include "deleteallindexes.inc"
68 #include "mwindow.inc"
69 #include "preferencesthread.h"
70 #include "shbtnprefs.inc"
73 class InterfacePrefs : public PreferencesDialog
76 InterfacePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
79 void create_objects();
80 // must delete each derived class
81 int update(int new_value);
82 const char* behavior_to_text(int mode);
83 int start_shbtn_dialog();
88 IndexPathText *ipathtext;
89 DeleteAllIndexes *deleteall;
90 IndexFFMPEGMarkerFiles *ffmpeg_marker_files;
94 TimeFormatSamples *samples;
96 TimeFormatFrames *frames;
98 TimeFormatSeconds *seconds;
103 // MeterVUInt *vu_int;
104 ViewBehaviourText *button1, *button2, *button3;
105 ViewThumbnails *thumbnails;
106 ShBtnEditDialog *shbtn_dialog;
107 KeyframeReticle *keyframe_reticle;
111 class IndexPathText : public BC_TextBox
114 IndexPathText(int x, int y, PreferencesWindow *pwindow, char *text);
117 PreferencesWindow *pwindow;
120 class IndexSize : public BC_TextBox
123 IndexSize(int x, int y, PreferencesWindow *pwindow, char *text);
125 PreferencesWindow *pwindow;
129 class IndexCount : public BC_TextBox
132 IndexCount(int x, int y, PreferencesWindow *pwindow, char *text);
134 PreferencesWindow *pwindow;
137 class TimeFormatHMS : public BC_Radial
140 TimeFormatHMS(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
142 PreferencesWindow *pwindow;
143 InterfacePrefs *tfwindow;
146 class TimeFormatHMSF : public BC_Radial
149 TimeFormatHMSF(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
151 PreferencesWindow *pwindow;
152 InterfacePrefs *tfwindow;
155 class TimeFormatSamples : public BC_Radial
158 TimeFormatSamples(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
160 PreferencesWindow *pwindow;
161 InterfacePrefs *tfwindow;
164 class TimeFormatFrames : public BC_Radial
167 TimeFormatFrames(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
169 PreferencesWindow *pwindow;
170 InterfacePrefs *tfwindow;
173 class TimeFormatHex : public BC_Radial
176 TimeFormatHex(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
178 PreferencesWindow *pwindow;
179 InterfacePrefs *tfwindow;
182 class TimeFormatFeet : public BC_Radial
185 TimeFormatFeet(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
187 PreferencesWindow *pwindow;
188 InterfacePrefs *tfwindow;
191 class TimeFormatSeconds : public BC_Radial
194 TimeFormatSeconds(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
196 PreferencesWindow *pwindow;
197 InterfacePrefs *tfwindow;
200 class TimeFormatFeetSetting : public BC_TextBox
203 TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string);
205 PreferencesWindow *pwindow;
210 class MeterMinDB : public BC_TextBox
213 MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y);
215 PreferencesWindow *pwindow;
219 class MeterMaxDB : public BC_TextBox
222 MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y);
224 PreferencesWindow *pwindow;
227 class MeterVUDB : public BC_Radial
230 MeterVUDB(PreferencesWindow *pwindow, char *text, int y);
232 // MeterVUInt *vu_int;
233 PreferencesWindow *pwindow;
236 class MeterVUInt : public BC_Radial
239 MeterVUInt(PreferencesWindow *pwindow, char *text, int y);
242 PreferencesWindow *pwindow;
245 class ViewBehaviourText : public BC_PopupMenu
248 ViewBehaviourText(int x,
251 PreferencesWindow *pwindow,
253 ~ViewBehaviourText();
255 int handle_event(); // user copies text to value here
256 void create_objects(); // add initial items
257 InterfacePrefs *tfwindow;
261 class ViewBehaviourItem : public BC_MenuItem
264 ViewBehaviourItem(ViewBehaviourText *popup, char *text, int behaviour);
265 ~ViewBehaviourItem();
268 ViewBehaviourText *popup;
272 class ViewTheme : public BC_PopupMenu
275 ViewTheme(int x, int y, PreferencesWindow *pwindow);
278 void create_objects();
281 PreferencesWindow *pwindow;
284 class ViewThemeItem : public BC_MenuItem
287 ViewThemeItem(ViewTheme *popup, const char *text);
292 class ViewPluginIcons : public BC_PopupMenu
295 ViewPluginIcons(int x, int y, PreferencesWindow *pwindow);
298 void create_objects();
301 PreferencesWindow *pwindow;
304 class ViewPluginIconItem : public BC_MenuItem
307 ViewPluginIconItem(ViewPluginIcons *popup, const char *text);
309 ViewPluginIcons *popup;
312 class ViewThumbnails : public BC_CheckBox
315 ViewThumbnails(int x, int y, PreferencesWindow *pwindow);
317 PreferencesWindow *pwindow;
320 class UseTipWindow : public BC_CheckBox
323 UseTipWindow(PreferencesWindow *pwindow, int x, int y);
325 PreferencesWindow *pwindow;
328 class UseWarnIndecies : public BC_CheckBox
331 UseWarnIndecies(PreferencesWindow *pwindow, int x, int y);
333 PreferencesWindow *pwindow;
336 class UseWarnVersion : public BC_CheckBox
339 UseWarnVersion(PreferencesWindow *pwindow, int x, int y);
341 PreferencesWindow *pwindow;
344 class BD_WarnRoot : public BC_CheckBox
347 BD_WarnRoot(PreferencesWindow *pwindow, int x, int y);
349 PreferencesWindow *pwindow;
352 class ScanCommercials : public BC_CheckBox
355 ScanCommercials(PreferencesWindow *pwindow, int x, int y);
357 PreferencesWindow *pwindow;
360 class AndroidRemote : public BC_CheckBox
363 AndroidRemote(PreferencesWindow *pwindow, int x, int y);
365 PreferencesWindow *pwindow;
368 class PopupMenuBtnup : public BC_CheckBox
371 PopupMenuBtnup(PreferencesWindow *pwindow, int x, int y);
373 PreferencesWindow *pwindow;
376 class ActivateFocusPolicy : public BC_CheckBox
379 ActivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
381 PreferencesWindow *pwindow;
384 class DeactivateFocusPolicy : public BC_CheckBox
387 DeactivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
389 PreferencesWindow *pwindow;
392 class AndroidPIN : public BC_TextBox
395 PreferencesWindow *pwindow;
397 AndroidPIN(PreferencesWindow *pwindow, int x, int y);
400 class AndroidPort : public BC_TextBox
403 PreferencesWindow *pwindow;
405 AndroidPort(PreferencesWindow *pwindow, int x, int y);
408 class ShBtnPrefs : public BC_GenericButton
411 PreferencesWindow *pwindow;
412 InterfacePrefs *iface_prefs;
415 ShBtnPrefs(PreferencesWindow *pwindow, InterfacePrefs *iface_prefs, int x, int y);
417 class StillImageUseDuration : public BC_CheckBox
420 StillImageUseDuration(PreferencesWindow *pwindow, int value, int x, int y);
422 PreferencesWindow *pwindow;
425 class StillImageDuration : public BC_TextBox
428 StillImageDuration(PreferencesWindow *pwindow, int x, int y);
430 PreferencesWindow *pwindow;
433 class KeyframeReticle : public BC_PopupMenu
436 KeyframeReticle(int x, int y, int *output);
439 const char* hairline_to_string(int type);
440 void create_objects();
444 class HairlineItem : public BC_MenuItem
447 HairlineItem(KeyframeReticle *popup, int hairline);
450 KeyframeReticle *popup;
455 class IndexFFMPEGMarkerFiles : public BC_CheckBox
458 IndexFFMPEGMarkerFiles(InterfacePrefs *iface_prefs, int x, int y);
459 ~IndexFFMPEGMarkerFiles();
463 InterfacePrefs *iface_prefs;