lock xft, plugin index builder lock, clear clip thumbnails, clear vwin clock, setpoin...
[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 #include "browsebutton.h"
26 #include "deleteallindexes.inc"
27 #include "interfaceprefs.inc"
28 #include "mwindow.inc"
29 #include "preferencesthread.h"
30 #include "probeprefs.inc"
31 #include "shbtnprefs.inc"
32
33
34 class InterfacePrefs : public PreferencesDialog
35 {
36 public:
37         InterfacePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
38         ~InterfacePrefs();
39
40         void create_objects();
41 // must delete each derived class
42         int update(int new_value);
43         const char* behavior_to_text(int mode);
44         int start_shbtn_dialog();
45         void start_probe_dialog();
46
47         BrowseButton *ipath;
48         IndexSize *isize;
49         IndexCount *icount;
50         IndexPathText *ipathtext;
51         DeleteAllIndexes *del_indexes;
52         DeleteAllIndexes *del_clipngs;
53         IndexFFMPEGMarkerFiles *ffmpeg_marker_files;
54
55         ViewBehaviourText *button1, *button2, *button3;
56         MeterMinDB *min_db;
57         MeterMaxDB *max_db;
58
59         ShBtnEditDialog *shbtn_dialog;
60         KeyframeReticle *keyframe_reticle;
61         PrefsYUV420P_DVDlace *yuv420p_dvdlace;
62         FileProbeDialog *file_probe_dialog;
63         PrefsFileProbes *file_probes;
64         PrefsTrapSigSEGV *trap_segv;
65         PrefsTrapSigINTR *trap_intr;
66         SnapshotPathText *snapshot_path;
67 };
68
69
70 class IndexPathText : public BC_TextBox
71 {
72 public:
73         IndexPathText(int x, int y, PreferencesWindow *pwindow, char *text);
74         ~IndexPathText();
75         int handle_event();
76         PreferencesWindow *pwindow;
77 };
78
79 class IndexSize : public BC_TextBox
80 {
81 public:
82         IndexSize(int x, int y, PreferencesWindow *pwindow, char *text);
83         int handle_event();
84         PreferencesWindow *pwindow;
85 };
86
87
88 class IndexCount : public BC_TextBox
89 {
90 public:
91         IndexCount(int x, int y, PreferencesWindow *pwindow, char *text);
92         int handle_event();
93         PreferencesWindow *pwindow;
94 };
95
96
97 class ViewBehaviourText : public BC_PopupMenu
98 {
99 public:
100         ViewBehaviourText(int x, int y, const char *text,
101                 PreferencesWindow *pwindow, int *output);
102         ~ViewBehaviourText();
103
104         int handle_event();  // user copies text to value here
105         void create_objects();         // add initial items
106         InterfacePrefs *tfwindow;
107         int *output;
108 };
109
110 class ViewBehaviourItem : public BC_MenuItem
111 {
112 public:
113         ViewBehaviourItem(ViewBehaviourText *popup, char *text, int behaviour);
114         ~ViewBehaviourItem();
115
116         int handle_event();
117         ViewBehaviourText *popup;
118         int behaviour;
119 };
120
121
122 class MeterMinDB : public BC_TextBox
123 {
124 public:
125         MeterMinDB(PreferencesWindow *pwindow, char *text, int x, int y);
126         int handle_event();
127         PreferencesWindow *pwindow;
128 };
129
130
131 class MeterMaxDB : public BC_TextBox
132 {
133 public:
134         MeterMaxDB(PreferencesWindow *pwindow, char *text, int x, int y);
135         int handle_event();
136         PreferencesWindow *pwindow;
137 };
138
139 class ScanCommercials : public BC_CheckBox
140 {
141 public:
142         ScanCommercials(PreferencesWindow *pwindow, int x, int y);
143         int handle_event();
144         PreferencesWindow *pwindow;
145 };
146
147 class AndroidRemote : public BC_CheckBox
148 {
149 public:
150         AndroidRemote(PreferencesWindow *pwindow, int x, int y);
151         int handle_event();
152         PreferencesWindow *pwindow;
153 };
154
155 class AndroidPIN : public BC_TextBox
156 {
157 public:
158         PreferencesWindow *pwindow;
159         int handle_event();
160         AndroidPIN(PreferencesWindow *pwindow, int x, int y);
161 };
162
163 class AndroidPort : public BC_TextBox
164 {
165 public:
166         PreferencesWindow *pwindow;
167         int handle_event();
168         AndroidPort(PreferencesWindow *pwindow, int x, int y);
169 };
170
171 class ShBtnPrefs : public BC_GenericButton
172 {
173 public:
174         PreferencesWindow *pwindow;
175         InterfacePrefs *iface_prefs;
176
177         int handle_event();
178         ShBtnPrefs(PreferencesWindow *pwindow,
179                 InterfacePrefs *iface_prefs, int x, int y);
180 };
181 class StillImageUseDuration : public BC_CheckBox
182 {
183 public:
184         StillImageUseDuration(PreferencesWindow *pwindow, int value, int x, int y);
185         int handle_event();
186         PreferencesWindow *pwindow;
187 };
188
189 class StillImageDuration : public BC_TextBox
190 {
191 public:
192         StillImageDuration(PreferencesWindow *pwindow, int x, int y);
193         int handle_event();
194         PreferencesWindow *pwindow;
195 };
196
197 class KeyframeReticle : public BC_PopupMenu
198 {
199 public:
200         KeyframeReticle(PreferencesWindow *pwindow,
201                 InterfacePrefs *iface_prefs, int x, int y, int *output);
202         ~KeyframeReticle();
203
204         const char *hairline_to_string(int type);
205         void create_objects();
206
207         PreferencesWindow *pwindow;
208         InterfacePrefs *iface_prefs;
209         int *output;
210 };
211
212 class HairlineItem : public BC_MenuItem
213 {
214 public:
215         HairlineItem(KeyframeReticle *popup, int hairline);
216         ~HairlineItem();
217
218         KeyframeReticle *popup;
219         int handle_event();
220         int hairline;
221 };
222
223 class IndexFFMPEGMarkerFiles : public BC_CheckBox
224 {
225 public:
226         IndexFFMPEGMarkerFiles(InterfacePrefs *iface_prefs, int x, int y);
227         ~IndexFFMPEGMarkerFiles();
228
229         int handle_event();
230
231         InterfacePrefs *iface_prefs;
232 };
233
234
235 class PrefsTrapSigSEGV : public BC_CheckBox
236 {
237 public:
238         PrefsTrapSigSEGV(InterfacePrefs *subwindow, int x, int y);
239         ~PrefsTrapSigSEGV();
240         int handle_event();
241
242         InterfacePrefs *subwindow;
243 };
244
245 class PrefsTrapSigINTR : public BC_CheckBox
246 {
247 public:
248         PrefsTrapSigINTR(InterfacePrefs *subwindow, int x, int y);
249         ~PrefsTrapSigINTR();
250         int handle_event();
251
252         InterfacePrefs *subwindow;
253 };
254
255
256 class PrefsFileProbes : public BC_GenericButton
257 {
258 public:
259         PreferencesWindow *pwindow;
260         InterfacePrefs *subwindow;
261
262         int handle_event();
263         PrefsFileProbes(PreferencesWindow *pwindow, InterfacePrefs *subwindow, int x, int y);
264 };
265
266
267 class PrefsYUV420P_DVDlace : public BC_CheckBox
268 {
269 public:
270         PrefsYUV420P_DVDlace(PreferencesWindow *pwindow,
271                 InterfacePrefs *subwindow, int x, int y);
272         int handle_event();
273
274         InterfacePrefs *subwindow;
275         PreferencesWindow *pwindow;
276 };
277
278 class SnapshotPathText : public BC_TextBox
279 {
280 public:
281         SnapshotPathText(PreferencesWindow *pwindow,
282                 InterfacePrefs *subwindow, int x, int y, int w);
283         ~SnapshotPathText();
284
285         int handle_event();
286         PreferencesWindow *pwindow;
287         InterfacePrefs *subwindow;
288 };
289
290 class PrefsAutostartLV2UI : public BC_CheckBox
291 {
292 public:
293         PrefsAutostartLV2UI(int x, int y, PreferencesWindow *pwindow);
294         int handle_event();
295         PreferencesWindow *pwindow;
296 };
297
298 class PrefsLV2PathText : public BC_TextBox
299 {
300 public:
301         PrefsLV2PathText(PreferencesWindow *pwindow,
302                 InterfacePrefs *subwindow, int x, int y, int w);
303         ~PrefsLV2PathText();
304
305         int handle_event();
306         PreferencesWindow *pwindow;
307         InterfacePrefs *subwindow;
308 };
309
310
311 #endif