r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / plugins / titler / titlewindow.h
blob20e36ffbfc7afc4fc184c28c12c66221ebcefa04
1 #ifndef TITLEWINDOW_H
2 #define TITLEWINDOW_H
4 #include "guicast.h"
6 class TitleThread;
7 class TitleWindow;
8 class TitleInterlace;
10 #include "colorpicker.h"
11 #include "filexml.h"
12 #include "mutex.h"
13 #include "title.h"
15 class TitleThread : public Thread
17 public:
18 TitleThread(TitleMain *client);
19 ~TitleThread();
21 void run();
23 // prevent loading data until the GUI is started
24 Mutex gui_started, completion;
25 TitleMain *client;
26 TitleWindow *window;
31 class TitleFontTumble;
32 class TitleItalic;
33 class TitleBold;
34 class TitleSize;
35 class TitleEncoding;
36 class TitleColorButton;
37 class TitleColorStrokeButton;
38 class TitleStroke;
39 class TitleStrokeW;
40 class TitleDropShadow;
41 class TitleMotion;
42 class TitleLoop;
43 class TitleFade;
44 class TitleFont;
45 class TitleText;
46 class TitleX;
47 class TitleY;
48 class TitleLeft;
49 class TitleCenter;
50 class TitleRight;class TitleTop;
51 class TitleMid;
52 class TitleBottom;
53 class TitleColorThread;
54 class TitleColorStrokeThread;
55 class TitleSpeed;
56 class TitleTimecode;
58 class TitleWindow : public BC_Window
60 public:
61 TitleWindow(TitleMain *client, int x, int y);
62 ~TitleWindow();
64 int create_objects();
65 int close_event();
66 int resize_event(int w, int h);
67 void update_color();
68 void update_justification();
69 void update();
70 void previous_font();
71 void next_font();
73 TitleMain *client;
75 BC_Title *font_title;
76 TitleFont *font;
77 TitleFontTumble *font_tumbler;
78 BC_Title *x_title;
79 TitleX *title_x;
80 BC_Title *y_title;
81 TitleY *title_y;
82 BC_Title *dropshadow_title;
83 TitleDropShadow *dropshadow;
84 BC_Title *style_title;
85 TitleItalic *italic;
86 TitleBold *bold;
88 #ifdef USE_OUTLINE
89 TitleStroke *stroke;
90 TitleColorStrokeButton *color_stroke_button;
91 TitleColorStrokeThread *color_stroke_thread;
92 BC_Title *strokewidth_title;
93 TitleStrokeW *stroke_width;
94 int color_stroke_x, color_stroke_y;
95 #endif
97 int color_x, color_y;
98 BC_Title *size_title;
99 BC_Title *encoding_title;
100 TitleSize *size;
101 TitleEncoding *encoding;
102 TitleColorButton *color_button;
103 TitleColorThread *color_thread;
104 BC_Title *motion_title;
105 TitleMotion *motion;
106 TitleLoop *loop;
107 BC_Title *fadein_title;
108 TitleFade *fade_in;
109 BC_Title *fadeout_title;
110 TitleFade *fade_out;
111 BC_Title *text_title;
112 TitleText *text;
113 BC_Title *justify_title;
114 TitleLeft *left;
115 TitleCenter *center;
116 TitleRight *right;
117 TitleTop *top;
118 TitleMid *mid;
119 TitleBottom *bottom;
120 BC_Title *speed_title;
121 TitleSpeed *speed;
122 TitleTimecode *timecode;
124 // Color preview
125 ArrayList<BC_ListBoxItem*> sizes;
126 ArrayList<BC_ListBoxItem*> encodings;
127 ArrayList<BC_ListBoxItem*> paths;
128 ArrayList<BC_ListBoxItem*> fonts;
132 class TitleFontTumble : public BC_Tumbler
134 public:
135 TitleFontTumble(TitleMain *client, TitleWindow *window, int x, int y);
137 int handle_up_event();
138 int handle_down_event();
140 TitleMain *client;
141 TitleWindow *window;
144 class TitleItalic : public BC_CheckBox
146 public:
147 TitleItalic(TitleMain *client, TitleWindow *window, int x, int y);
148 int handle_event();
149 TitleMain *client;
150 TitleWindow *window;
152 class TitleBold : public BC_CheckBox
154 public:
155 TitleBold(TitleMain *client, TitleWindow *window, int x, int y);
156 int handle_event();
157 TitleMain *client;
158 TitleWindow *window;
161 class TitleStroke : public BC_CheckBox
163 public:
164 TitleStroke(TitleMain *client, TitleWindow *window, int x, int y);
165 int handle_event();
166 TitleMain *client;
167 TitleWindow *window;
171 class TitleSize : public BC_PopupTextBox
173 public:
174 TitleSize(TitleMain *client, TitleWindow *window, int x, int y, char *text);
175 ~TitleSize();
176 int handle_event();
177 void update(int size);
178 TitleMain *client;
179 TitleWindow *window;
181 class TitleEncoding : public BC_PopupTextBox
183 public:
184 TitleEncoding(TitleMain *client, TitleWindow *window, int x, int y);
185 ~TitleEncoding();
186 int handle_event();
187 TitleMain *client;
188 TitleWindow *window;
190 class TitleColorButton : public BC_GenericButton
192 public:
193 TitleColorButton(TitleMain *client, TitleWindow *window, int x, int y);
194 int handle_event();
195 TitleMain *client;
196 TitleWindow *window;
198 class TitleColorStrokeButton : public BC_GenericButton
200 public:
201 TitleColorStrokeButton(TitleMain *client, TitleWindow *window, int x, int y);
202 int handle_event();
203 TitleMain *client;
204 TitleWindow *window;
206 class TitleMotion : public BC_PopupTextBox
208 public:
209 TitleMotion(TitleMain *client, TitleWindow *window, int x, int y);
210 int handle_event();
211 TitleMain *client;
212 TitleWindow *window;
214 class TitleLoop : public BC_CheckBox
216 public:
217 TitleLoop(TitleMain *client, int x, int y);
218 int handle_event();
219 TitleMain *client;
220 TitleWindow *window;
222 class TitleTimecode : public BC_CheckBox
224 public:
225 TitleTimecode(TitleMain *client, int x, int y);
226 int handle_event();
227 TitleMain *client;
228 TitleWindow *window;
230 class TitleFade : public BC_TextBox
232 public:
233 TitleFade(TitleMain *client, TitleWindow *window, double *value, int x, int y);
234 int handle_event();
235 TitleMain *client;
236 TitleWindow *window;
237 double *value;
239 class TitleFont : public BC_PopupTextBox
241 public:
242 TitleFont(TitleMain *client, TitleWindow *window, int x, int y);
243 int handle_event();
244 TitleMain *client;
245 TitleWindow *window;
247 class TitleText : public BC_ScrollTextBox
249 public:
250 TitleText(TitleMain *client,
251 TitleWindow *window,
252 int x,
253 int y,
254 int w,
255 int h);
256 int handle_event();
257 TitleMain *client;
258 TitleWindow *window;
260 class TitleX : public BC_TumbleTextBox
262 public:
263 TitleX(TitleMain *client, TitleWindow *window, int x, int y);
264 int handle_event();
265 TitleMain *client;
266 TitleWindow *window;
268 class TitleY : public BC_TumbleTextBox
270 public:
271 TitleY(TitleMain *client, TitleWindow *window, int x, int y);
272 int handle_event();
273 TitleMain *client;
274 TitleWindow *window;
276 class TitleStrokeW : public BC_TumbleTextBox
278 public:
279 TitleStrokeW(TitleMain *client, TitleWindow *window, int x, int y);
280 int handle_event();
281 TitleMain *client;
282 TitleWindow *window;
284 class TitleDropShadow : public BC_TumbleTextBox
286 public:
287 TitleDropShadow(TitleMain *client, TitleWindow *window, int x, int y);
288 int handle_event();
289 TitleMain *client;
290 TitleWindow *window;
293 class TitleSpeed : public BC_TumbleTextBox
295 public:
296 TitleSpeed(TitleMain *client, TitleWindow *window, int x, int y);
297 int handle_event();
298 TitleMain *client;
301 class TitleLeft : public BC_Radial
303 public:
304 TitleLeft(TitleMain *client, TitleWindow *window, int x, int y);
305 int handle_event();
306 TitleMain *client;
307 TitleWindow *window;
309 class TitleCenter : public BC_Radial
311 public:
312 TitleCenter(TitleMain *client, TitleWindow *window, int x, int y);
313 int handle_event();
314 TitleMain *client;
315 TitleWindow *window;
317 class TitleRight : public BC_Radial
319 public:
320 TitleRight(TitleMain *client, TitleWindow *window, int x, int y);
321 int handle_event();
322 TitleMain *client;
323 TitleWindow *window;
326 class TitleTop : public BC_Radial
328 public:
329 TitleTop(TitleMain *client, TitleWindow *window, int x, int y);
330 int handle_event();
331 TitleMain *client;
332 TitleWindow *window;
334 class TitleMid : public BC_Radial
336 public:
337 TitleMid(TitleMain *client, TitleWindow *window, int x, int y);
338 int handle_event();
339 TitleMain *client;
340 TitleWindow *window;
342 class TitleBottom : public BC_Radial
344 public:
345 TitleBottom(TitleMain *client, TitleWindow *window, int x, int y);
346 int handle_event();
347 TitleMain *client;
348 TitleWindow *window;
351 class TitleColorThread : public ColorThread
353 public:
354 TitleColorThread(TitleMain *client, TitleWindow *window);
355 int handle_event(int output);
356 TitleMain *client;
357 TitleWindow *window;
360 class TitleColorStrokeThread : public ColorThread
362 public:
363 TitleColorStrokeThread(TitleMain *client, TitleWindow *window);
364 int handle_event(int output);
365 TitleMain *client;
366 TitleWindow *window;
369 #endif