file probe prefs, updated dcraw, bugs - garbage, accel, ffmpeg/giphy.gif
[goodguy/history.git] / cinelerra-5.1 / cinelerra / interfaceprefs.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
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.
10  *
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.
15  *
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
19  *
20  */
21
22 #ifndef INTERFACEPREFS_H
23 #define INTERFACEPREFS_H
24
25 class InterfacePrefs;
26 class IndexPathText;
27 class IndexSize;
28 class IndexCount;
29 class TimeFormatHMS;
30 class TimeFormatHMSF;
31 class TimeFormatSamples;
32 class TimeFormatFrames;
33 class TimeFormatHex;
34 class TimeFormatFeet;
35 class TimeFormatSeconds;
36 class TimeFormatFeetSetting;
37 class MeterMinDB;
38 class MeterMaxDB;
39 class MeterVUDB;
40 class MeterVUInt;
41 class ViewBehaviourText;
42 class ViewBehaviourItem;
43 class ViewTheme;
44 class ViewThumbnails;
45 class ViewThemeItem;
46 class UseTipWindow;
47 class UseWarnIndecies;
48 class UseWarnVersion;
49 class BD_WarnRoot;
50 class ScanCommercials;
51 class AndroidRemote;
52 class PopupMenuBtnup;
53 class ActivateFocusPolicy;
54 class DeactivateFocusPolicy;
55 class AndroidPIN;
56 class AndroidPort;
57 class ShBtnPrefs;
58 class StillImageUseDuration;
59 class StillImageDuration;
60 class KeyframeReticle;
61 class HairlineItem;
62 class IndexFFMPEGMarkerFiles;
63
64 #include "browsebutton.h"
65 #include "deleteallindexes.inc"
66 #include "mwindow.inc"
67 #include "preferencesthread.h"
68 #include "shbtnprefs.inc"
69
70
71 class InterfacePrefs : public PreferencesDialog
72 {
73 public:
74         InterfacePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
75         ~InterfacePrefs();
76
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();
82
83         BrowseButton *ipath;
84         IndexSize *isize;
85         IndexCount *icount;
86         IndexPathText *ipathtext;
87         DeleteAllIndexes *deleteall;
88         IndexFFMPEGMarkerFiles *ffmpeg_marker_files;
89
90         TimeFormatHMS *hms;
91         TimeFormatHMSF *hmsf;
92         TimeFormatSamples *samples;
93         TimeFormatHex *hex;
94         TimeFormatFrames *frames;
95         TimeFormatFeet *feet;
96         TimeFormatSeconds *seconds;
97
98         MeterMinDB *min_db;
99         MeterMaxDB *max_db;
100         MeterVUDB *vu_db;
101 //      MeterVUInt *vu_int;
102         ViewBehaviourText *button1, *button2, *button3;
103         ViewThumbnails *thumbnails;
104         ShBtnEditDialog *shbtn_dialog;
105         KeyframeReticle *keyframe_reticle;
106 };
107
108
109 class IndexPathText : public BC_TextBox
110 {
111 public:
112         IndexPathText(int x, int y, PreferencesWindow *pwindow, char *text);
113         ~IndexPathText();
114         int handle_event();
115         PreferencesWindow *pwindow;
116 };
117
118 class IndexSize : public BC_TextBox
119 {
120 public:
121         IndexSize(int x, int y, PreferencesWindow *pwindow, char *text);
122         int handle_event();
123         PreferencesWindow *pwindow;
124 };
125
126
127 class IndexCount : public BC_TextBox
128 {
129 public:
130         IndexCount(int x, int y, PreferencesWindow *pwindow, char *text);
131         int handle_event();
132         PreferencesWindow *pwindow;
133 };
134
135 class TimeFormatHMS : public BC_Radial
136 {
137 public:
138         TimeFormatHMS(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
139         int handle_event();
140         PreferencesWindow *pwindow;
141         InterfacePrefs *tfwindow;
142 };
143
144 class TimeFormatHMSF : public BC_Radial
145 {
146 public:
147         TimeFormatHMSF(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
148         int handle_event();
149         PreferencesWindow *pwindow;
150         InterfacePrefs *tfwindow;
151 };
152
153 class TimeFormatSamples : public BC_Radial
154 {
155 public:
156         TimeFormatSamples(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
157         int handle_event();
158         PreferencesWindow *pwindow;
159         InterfacePrefs *tfwindow;
160 };
161
162 class TimeFormatFrames : public BC_Radial
163 {
164 public:
165         TimeFormatFrames(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
166         int handle_event();
167         PreferencesWindow *pwindow;
168         InterfacePrefs *tfwindow;
169 };
170
171 class TimeFormatHex : public BC_Radial
172 {
173 public:
174         TimeFormatHex(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
175         int handle_event();
176         PreferencesWindow *pwindow;
177         InterfacePrefs *tfwindow;
178 };
179
180 class TimeFormatFeet : public BC_Radial
181 {
182 public:
183         TimeFormatFeet(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
184         int handle_event();
185         PreferencesWindow *pwindow;
186         InterfacePrefs *tfwindow;
187 };
188
189 class TimeFormatSeconds : public BC_Radial
190 {
191 public:
192         TimeFormatSeconds(PreferencesWindow *pwindow, InterfacePrefs *tfwindow, int value, int x, int y);
193         int handle_event();
194         PreferencesWindow *pwindow;
195         InterfacePrefs *tfwindow;
196 };
197
198 class TimeFormatFeetSetting : public BC_TextBox
199 {
200 public:
201         TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string);
202         int handle_event();
203         PreferencesWindow *pwindow;
204 };
205
206
207
208 class MeterMinDB : public BC_TextBox
209 {
210 public:
211         MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y);
212         int handle_event();
213         PreferencesWindow *pwindow;
214 };
215
216
217 class MeterMaxDB : public BC_TextBox
218 {
219 public:
220         MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y);
221         int handle_event();
222         PreferencesWindow *pwindow;
223 };
224
225 class MeterVUDB : public BC_Radial
226 {
227 public:
228         MeterVUDB(PreferencesWindow *pwindow, char *text, int y);
229         int handle_event();
230 //      MeterVUInt *vu_int;
231         PreferencesWindow *pwindow;
232 };
233
234 class MeterVUInt : public BC_Radial
235 {
236 public:
237         MeterVUInt(PreferencesWindow *pwindow, char *text, int y);
238         int handle_event();
239         MeterVUDB *vu_db;
240         PreferencesWindow *pwindow;
241 };
242
243 class ViewBehaviourText : public BC_PopupMenu
244 {
245 public:
246         ViewBehaviourText(int x,
247                 int y,
248                 const char *text,
249                 PreferencesWindow *pwindow,
250                 int *output);
251         ~ViewBehaviourText();
252
253         int handle_event();  // user copies text to value here
254         void create_objects();         // add initial items
255         InterfacePrefs *tfwindow;
256         int *output;
257 };
258
259 class ViewBehaviourItem : public BC_MenuItem
260 {
261 public:
262         ViewBehaviourItem(ViewBehaviourText *popup, char *text, int behaviour);
263         ~ViewBehaviourItem();
264
265         int handle_event();
266         ViewBehaviourText *popup;
267         int behaviour;
268 };
269
270 class ViewTheme : public BC_PopupMenu
271 {
272 public:
273         ViewTheme(int x, int y, PreferencesWindow *pwindow);
274         ~ViewTheme();
275
276         void create_objects();
277         int handle_event();
278
279         PreferencesWindow *pwindow;
280 };
281
282 class ViewThumbnails : public BC_CheckBox
283 {
284 public:
285         ViewThumbnails(int x, int y, PreferencesWindow *pwindow);
286         int handle_event();
287         PreferencesWindow *pwindow;
288 };
289
290 class ViewThemeItem : public BC_MenuItem
291 {
292 public:
293         ViewThemeItem(ViewTheme *popup, char *text);
294         int handle_event();
295         ViewTheme *popup;
296 };
297
298 class UseTipWindow : public BC_CheckBox
299 {
300 public:
301         UseTipWindow(PreferencesWindow *pwindow, int x, int y);
302         int handle_event();
303         PreferencesWindow *pwindow;
304 };
305
306 class UseWarnIndecies : public BC_CheckBox
307 {
308 public:
309         UseWarnIndecies(PreferencesWindow *pwindow, int x, int y);
310         int handle_event();
311         PreferencesWindow *pwindow;
312 };
313
314 class UseWarnVersion : public BC_CheckBox
315 {
316 public:
317         UseWarnVersion(PreferencesWindow *pwindow, int x, int y);
318         int handle_event();
319         PreferencesWindow *pwindow;
320 };
321
322 class BD_WarnRoot : public BC_CheckBox
323 {
324 public:
325         BD_WarnRoot(PreferencesWindow *pwindow, int x, int y);
326         int handle_event();
327         PreferencesWindow *pwindow;
328 };
329
330 class ScanCommercials : public BC_CheckBox
331 {
332 public:
333         ScanCommercials(PreferencesWindow *pwindow, int x, int y);
334         int handle_event();
335         PreferencesWindow *pwindow;
336 };
337
338 class AndroidRemote : public BC_CheckBox
339 {
340 public:
341         AndroidRemote(PreferencesWindow *pwindow, int x, int y);
342         int handle_event();
343         PreferencesWindow *pwindow;
344 };
345
346 class PopupMenuBtnup : public BC_CheckBox
347 {
348 public:
349         PopupMenuBtnup(PreferencesWindow *pwindow, int x, int y);
350         int handle_event();
351         PreferencesWindow *pwindow;
352 };
353
354 class ActivateFocusPolicy : public BC_CheckBox
355 {
356 public:
357         ActivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
358         int handle_event();
359         PreferencesWindow *pwindow;
360 };
361
362 class DeactivateFocusPolicy : public BC_CheckBox
363 {
364 public:
365         DeactivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
366         int handle_event();
367         PreferencesWindow *pwindow;
368 };
369
370 class AndroidPIN : public BC_TextBox
371 {
372 public:
373         PreferencesWindow *pwindow;
374         int handle_event();
375         AndroidPIN(PreferencesWindow *pwindow, int x, int y);
376 };
377
378 class AndroidPort : public BC_TextBox
379 {
380 public:
381         PreferencesWindow *pwindow;
382         int handle_event();
383         AndroidPort(PreferencesWindow *pwindow, int x, int y);
384 };
385
386 class ShBtnPrefs : public BC_GenericButton
387 {
388 public:
389         PreferencesWindow *pwindow;
390         InterfacePrefs *iface_prefs;
391
392         int handle_event();
393         ShBtnPrefs(PreferencesWindow *pwindow, InterfacePrefs *iface_prefs, int x, int y);
394 };
395 class StillImageUseDuration : public BC_CheckBox
396 {
397 public:
398         StillImageUseDuration(PreferencesWindow *pwindow, int value, int x, int y);
399         int handle_event();
400         PreferencesWindow *pwindow;
401 };
402
403 class StillImageDuration : public BC_TextBox
404 {
405 public:
406         StillImageDuration(PreferencesWindow *pwindow, int x, int y);
407         int handle_event();
408         PreferencesWindow *pwindow;
409 };
410
411 class KeyframeReticle : public BC_PopupMenu
412 {
413 public:
414         KeyframeReticle(int x, int y, int *output);
415         ~KeyframeReticle();
416
417         const char* hairline_to_string(int type);
418         void create_objects();
419         int *output;
420 };
421
422 class HairlineItem : public BC_MenuItem
423 {
424 public:
425         HairlineItem(KeyframeReticle *popup, int hairline);
426         ~HairlineItem();
427
428         KeyframeReticle *popup;
429         int handle_event();
430         int hairline;
431 };
432
433 class IndexFFMPEGMarkerFiles : public BC_CheckBox
434 {
435 public:
436         IndexFFMPEGMarkerFiles(InterfacePrefs *iface_prefs, int x, int y);
437         ~IndexFFMPEGMarkerFiles();
438
439         int handle_event();
440
441         InterfacePrefs *iface_prefs;
442 };
443
444
445 #endif