add view thumbnail size pref, rework vicon view popup, add view popup zoom scale
[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         YuvColorSpace *yuv_color_space;
52         YuvColorRange *yuv_color_range;
53 };
54
55
56 class TimeFormatHMS : public BC_Radial
57 {
58 public:
59         TimeFormatHMS(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
60         int handle_event();
61         PreferencesWindow *pwindow;
62         AppearancePrefs *tfwindow;
63 };
64
65 class TimeFormatHMSF : public BC_Radial
66 {
67 public:
68         TimeFormatHMSF(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
69         int handle_event();
70         PreferencesWindow *pwindow;
71         AppearancePrefs *tfwindow;
72 };
73
74 class TimeFormatSamples : public BC_Radial
75 {
76 public:
77         TimeFormatSamples(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
78         int handle_event();
79         PreferencesWindow *pwindow;
80         AppearancePrefs *tfwindow;
81 };
82
83 class TimeFormatFrames : public BC_Radial
84 {
85 public:
86         TimeFormatFrames(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
87         int handle_event();
88         PreferencesWindow *pwindow;
89         AppearancePrefs *tfwindow;
90 };
91
92 class TimeFormatHex : public BC_Radial
93 {
94 public:
95         TimeFormatHex(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
96         int handle_event();
97         PreferencesWindow *pwindow;
98         AppearancePrefs *tfwindow;
99 };
100
101 class TimeFormatFeet : public BC_Radial
102 {
103 public:
104         TimeFormatFeet(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
105         int handle_event();
106         PreferencesWindow *pwindow;
107         AppearancePrefs *tfwindow;
108 };
109
110 class TimeFormatSeconds : public BC_Radial
111 {
112 public:
113         TimeFormatSeconds(PreferencesWindow *pwindow, AppearancePrefs *tfwindow, int value, int x, int y);
114         int handle_event();
115         PreferencesWindow *pwindow;
116         AppearancePrefs *tfwindow;
117 };
118
119 class TimeFormatFeetSetting : public BC_TextBox
120 {
121 public:
122         TimeFormatFeetSetting(PreferencesWindow *pwindow, int x, int y, char *string);
123         int handle_event();
124         PreferencesWindow *pwindow;
125 };
126
127
128
129 class ViewTheme : public BC_PopupMenu
130 {
131 public:
132         ViewTheme(int x, int y, PreferencesWindow *pwindow);
133         ~ViewTheme();
134
135         void create_objects();
136         int handle_event();
137
138         PreferencesWindow *pwindow;
139 };
140
141 class ViewThemeItem : public BC_MenuItem
142 {
143 public:
144         ViewThemeItem(ViewTheme *popup, const char *text);
145         int handle_event();
146         ViewTheme *popup;
147 };
148
149 class ViewPluginIcons : public BC_PopupMenu
150 {
151 public:
152         ViewPluginIcons(int x, int y, PreferencesWindow *pwindow);
153         ~ViewPluginIcons();
154
155         void create_objects();
156         int handle_event();
157
158         PreferencesWindow *pwindow;
159 };
160
161 class ViewPluginIconItem : public BC_MenuItem
162 {
163 public:
164         ViewPluginIconItem(ViewPluginIcons *popup, const char *text);
165         int handle_event();
166         ViewPluginIcons *popup;
167 };
168
169 class ViewThumbnails : public BC_CheckBox
170 {
171 public:
172         ViewThumbnails(int x, int y, PreferencesWindow *pwindow);
173         int handle_event();
174         PreferencesWindow *pwindow;
175 };
176
177 class ViewThumbnailSize : public BC_TumbleTextBox
178 {
179 public:
180         ViewThumbnailSize(PreferencesWindow *pwindow,
181                 AppearancePrefs *aprefs, int x, int y);
182         int handle_event();
183         AppearancePrefs *aprefs;
184         PreferencesWindow *pwindow;
185 };
186
187 class UseTipWindow : public BC_CheckBox
188 {
189 public:
190         UseTipWindow(PreferencesWindow *pwindow, int x, int y);
191         int handle_event();
192         PreferencesWindow *pwindow;
193 };
194
195 class UseWarnIndecies : public BC_CheckBox
196 {
197 public:
198         UseWarnIndecies(PreferencesWindow *pwindow, int x, int y);
199         int handle_event();
200         PreferencesWindow *pwindow;
201 };
202
203 class UseWarnVersion : public BC_CheckBox
204 {
205 public:
206         UseWarnVersion(PreferencesWindow *pwindow, int x, int y);
207         int handle_event();
208         PreferencesWindow *pwindow;
209 };
210
211 class BD_WarnRoot : public BC_CheckBox
212 {
213 public:
214         BD_WarnRoot(PreferencesWindow *pwindow, int x, int y);
215         int handle_event();
216         PreferencesWindow *pwindow;
217 };
218
219 class PopupMenuBtnup : public BC_CheckBox
220 {
221 public:
222         PopupMenuBtnup(PreferencesWindow *pwindow, int x, int y);
223         int handle_event();
224         PreferencesWindow *pwindow;
225 };
226
227 class GrabFocusPolicy : public BC_CheckBox
228 {
229 public:
230         GrabFocusPolicy(PreferencesWindow *pwindow, int x, int y);
231         int handle_event();
232         PreferencesWindow *pwindow;
233 };
234
235 class ActivateFocusPolicy : public BC_CheckBox
236 {
237 public:
238         ActivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
239         int handle_event();
240         PreferencesWindow *pwindow;
241 };
242
243 class DeactivateFocusPolicy : public BC_CheckBox
244 {
245 public:
246         DeactivateFocusPolicy(PreferencesWindow *pwindow, int x, int y);
247         int handle_event();
248         PreferencesWindow *pwindow;
249 };
250
251 class ForwardRenderDisplacement : public BC_CheckBox
252 {
253 public:
254         ForwardRenderDisplacement(PreferencesWindow *pwindow, int x, int y);
255         int handle_event();
256         PreferencesWindow *pwindow;
257 };
258
259 class HighlightInverseColor : public BC_TextBox
260 {
261 public:
262         HighlightInverseColor(PreferencesWindow *pwindow, int x, int y, const char *hex);
263         int handle_event();
264         PreferencesWindow *pwindow;
265 };
266
267 class YuvColorSpace : public BC_PopupMenu
268 {
269         static const char *color_space[3];
270 public:
271         YuvColorSpace(int x, int y, PreferencesWindow *pwindow);
272         ~YuvColorSpace();
273
274         void create_objects();
275         int handle_event();
276
277         PreferencesWindow *pwindow;
278 };
279
280 class YuvColorSpaceItem : public BC_MenuItem
281 {
282 public:
283         YuvColorSpaceItem(YuvColorSpace *popup, const char *text, int id);
284         int handle_event();
285         YuvColorSpace *popup;
286         int id;
287 };
288
289 class YuvColorRange : public BC_PopupMenu
290 {
291         static const char *color_range[2];
292 public:
293         YuvColorRange(int x, int y, PreferencesWindow *pwindow);
294         ~YuvColorRange();
295
296         void create_objects();
297         int handle_event();
298
299         PreferencesWindow *pwindow;
300 };
301
302 class YuvColorRangeItem : public BC_MenuItem
303 {
304 public:
305         YuvColorRangeItem(YuvColorRange *popup, const char *text, int id);
306         int handle_event();
307         YuvColorRange *popup;
308         int id;
309 };
310
311 class PerpetualSession : public BC_CheckBox
312 {
313 public:
314         PerpetualSession(int x, int y, PreferencesWindow *pwindow);
315         int handle_event();
316         PreferencesWindow *pwindow;
317 };
318
319 #endif