fast drag/drop rework, modify labels in mwin->cwin locks, mods to cut/paste, marks...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / appearanceprefs.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 APPEARANCEPREFS_H
23 #define APPEARANCEPREFS_H
24
25 #include "appearanceprefs.inc"
26 #include "browsebutton.h"
27 #include "deleteallindexes.inc"
28 #include "mwindow.inc"
29 #include "preferencesthread.h"
30 #include "shbtnprefs.inc"
31
32
33 class AppearancePrefs : public PreferencesDialog
34 {
35 public:
36         AppearancePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
37         ~AppearancePrefs();
38
39         void create_objects();
40
41         int update(int new_value);
42         TimeFormatHMS *hms;
43         TimeFormatHMSF *hmsf;
44         TimeFormatSamples *samples;
45         TimeFormatHex *hex;
46         TimeFormatFrames *frames;
47         TimeFormatFeet *feet;
48         TimeFormatSeconds *seconds;
49         ViewThumbnails *thumbnails;
50         ViewThumbnailSize *thumbnail_size;
51         ViewViconSize *vicon_size;
52         ViewViconColorMode *vicon_color_mode;
53         YuvColorSpace *yuv_color_space;
54         YuvColorRange *yuv_color_range;
55 };
56
57
58 class TimeFormatHMS : public BC_Radial
59 {
60 public:
61         TimeFormatHMS(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
62         int handle_event();
63         PreferencesWindow *pwindow;
64         AppearancePrefs *tfwindow;
65 };
66
67 class TimeFormatHMSF : public BC_Radial
68 {
69 public:
70         TimeFormatHMSF(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
71         int handle_event();
72         PreferencesWindow *pwindow;
73         AppearancePrefs *tfwindow;
74 };
75
76 class TimeFormatSamples : public BC_Radial
77 {
78 public:
79         TimeFormatSamples(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
80         int handle_event();
81         PreferencesWindow *pwindow;
82         AppearancePrefs *tfwindow;
83 };
84
85 class TimeFormatFrames : public BC_Radial
86 {
87 public:
88         TimeFormatFrames(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
89         int handle_event();
90         PreferencesWindow *pwindow;
91         AppearancePrefs *tfwindow;
92 };
93
94 class TimeFormatHex : public BC_Radial
95 {
96 public:
97         TimeFormatHex(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
98         int handle_event();
99         PreferencesWindow *pwindow;
100         AppearancePrefs *tfwindow;
101 };
102
103 class TimeFormatFeet : public BC_Radial
104 {
105 public:
106         TimeFormatFeet(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
107         int handle_event();
108         PreferencesWindow *pwindow;
109         AppearancePrefs *tfwindow;
110 };
111
112 class TimeFormatSeconds : public BC_Radial
113 {
114 public:
115         TimeFormatSeconds(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
116         int handle_event();
117         PreferencesWindow *pwindow;
118         AppearancePrefs *tfwindow;
119 };
120
121 class TimeFormatFeetSetting : public BC_TextBox
122 {
123 public:
124         TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string);
125         int handle_event();
126         PreferencesWindow *pwindow;
127 };
128
129
130
131 class ViewTheme : public BC_PopupMenu
132 {
133 public:
134         ViewTheme(int x, int y, PreferencesWindow *pwindow);
135         ~ViewTheme();
136
137         void create_objects();
138         int handle_event();
139
140         PreferencesWindow *pwindow;
141 };
142
143 class ViewThemeItem : public BC_MenuItem
144 {
145 public:
146         ViewThemeItem(ViewTheme *popup, const char *text);
147         int handle_event();
148         ViewTheme *popup;
149 };
150
151 class ViewPluginIcons : public BC_PopupMenu
152 {
153 public:
154         ViewPluginIcons(int x, int y, PreferencesWindow *pwindow);
155         ~ViewPluginIcons();
156
157         void create_objects();
158         int handle_event();
159
160         PreferencesWindow *pwindow;
161 };
162
163 class ViewPluginIconItem : public BC_MenuItem
164 {
165 public:
166         ViewPluginIconItem(ViewPluginIcons *popup, const char *text);
167         int handle_event();
168         ViewPluginIcons *popup;
169 };
170
171 class ViewThumbnails : public BC_CheckBox
172 {
173 public:
174         ViewThumbnails(int x, int y, PreferencesWindow *pwindow);
175         int handle_event();
176         PreferencesWindow *pwindow;
177 };
178
179 class ViewThumbnailSize : public BC_TumbleTextBox
180 {
181 public:
182         ViewThumbnailSize(PreferencesWindow *pwindow,
183                 AppearancePrefs *aprefs, int x, int y);
184         int handle_event();
185         AppearancePrefs *aprefs;
186         PreferencesWindow *pwindow;
187 };
188
189 class ViewViconSize : public BC_TumbleTextBox
190 {
191 public:
192         ViewViconSize(PreferencesWindow *pwindow,
193                 AppearancePrefs *aprefs, int x, int y);
194         int handle_event();
195         AppearancePrefs *aprefs;
196         PreferencesWindow *pwindow;
197 };
198
199 class ViewViconColorMode : public BC_PopupMenu
200 {
201         static const char *vicon_color_modes[3];
202 public:
203         ViewViconColorMode(PreferencesWindow *pwindow, int x, int y);
204         ~ViewViconColorMode();
205
206         void create_objects();
207         int handle_event();
208
209         PreferencesWindow *pwindow;
210 };
211
212 class ViewViconColorModeItem : public BC_MenuItem
213 {
214 public:
215         ViewViconColorModeItem(ViewViconColorMode *popup, const char *text, int id);
216         int handle_event();
217         ViewViconColorMode *popup;
218         int id;
219 };
220
221 class UseTipWindow : public BC_CheckBox
222 {
223 public:
224         UseTipWindow(PreferencesWindow *pwindow, int x, int y);
225         int handle_event();
226         PreferencesWindow *pwindow;
227 };
228
229 class UseWarnIndecies : public BC_CheckBox
230 {
231 public:
232         UseWarnIndecies(PreferencesWindow *pwindow, int x, int y);
233         int handle_event();
234         PreferencesWindow *pwindow;
235 };
236
237 class UseWarnVersion : public BC_CheckBox
238 {
239 public:
240         UseWarnVersion(PreferencesWindow *pwindow, int x, int y);
241         int handle_event();
242         PreferencesWindow *pwindow;
243 };
244
245 class BD_WarnRoot : public BC_CheckBox
246 {
247 public:
248         BD_WarnRoot(PreferencesWindow *pwindow, int x, int y);
249         int handle_event();
250         PreferencesWindow *pwindow;
251 };
252
253 class PopupMenuBtnup : public BC_CheckBox
254 {
255 public:
256         PopupMenuBtnup(PreferencesWindow *pwindow, int x, int y);
257         int handle_event();
258         PreferencesWindow *pwindow;
259 };
260
261 class GrabFocusPolicy : public BC_CheckBox
262 {
263 public:
264         GrabFocusPolicy(PreferencesWindow *pwindow, int x, int y);
265         int handle_event();
266         PreferencesWindow *pwindow;
267 };
268
269 class ActivateFocusPolicy : public BC_CheckBox
270 {
271 public:
272         ActivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
273         int handle_event();
274         PreferencesWindow *pwindow;
275 };
276
277 class DeactivateFocusPolicy : public BC_CheckBox
278 {
279 public:
280         DeactivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
281         int handle_event();
282         PreferencesWindow *pwindow;
283 };
284
285 class ForwardRenderDisplacement : public BC_CheckBox
286 {
287 public:
288         ForwardRenderDisplacement(PreferencesWindow *pwindow, int x, int y);
289         int handle_event();
290         PreferencesWindow *pwindow;
291 };
292
293 class AutocolorAssets : public BC_CheckBox
294 {
295 public:
296         AutocolorAssets(PreferencesWindow *pwindow, int x, int y);
297         int handle_event();
298         PreferencesWindow *pwindow;
299 };
300
301 class HighlightInverseColor : public BC_TextBox
302 {
303 public:
304         HighlightInverseColor(PreferencesWindow *pwindow, int x, int y, const char *hex);
305         int handle_event();
306         PreferencesWindow *pwindow;
307 };
308
309 class YuvColorSpace : public BC_PopupMenu
310 {
311         static const char *color_space[3];
312 public:
313         YuvColorSpace(int x, int y, PreferencesWindow *pwindow);
314         ~YuvColorSpace();
315
316         void create_objects();
317         int handle_event();
318
319         PreferencesWindow *pwindow;
320 };
321
322 class YuvColorSpaceItem : public BC_MenuItem
323 {
324 public:
325         YuvColorSpaceItem(YuvColorSpace *popup, const char *text, int id);
326         int handle_event();
327         YuvColorSpace *popup;
328         int id;
329 };
330
331 class YuvColorRange : public BC_PopupMenu
332 {
333         static const char *color_range[2];
334 public:
335         YuvColorRange(int x, int y, PreferencesWindow *pwindow);
336         ~YuvColorRange();
337
338         void create_objects();
339         int handle_event();
340
341         PreferencesWindow *pwindow;
342 };
343
344 class YuvColorRangeItem : public BC_MenuItem
345 {
346 public:
347         YuvColorRangeItem(YuvColorRange *popup, const char *text, int id);
348         int handle_event();
349         YuvColorRange *popup;
350         int id;
351 };
352
353 class PerpetualSession : public BC_CheckBox
354 {
355 public:
356         PerpetualSession(int x, int y, PreferencesWindow *pwindow);
357         int handle_event();
358         PreferencesWindow *pwindow;
359 };
360
361 class CtrlToggle : public BC_CheckBox
362 {
363 public:
364         CtrlToggle(int x, int y, PreferencesWindow *pwindow);
365         int handle_event();
366         PreferencesWindow *pwindow;
367 };
368
369 #endif