e1e5bb0f8a26306ebb31a2a40671dae5b59f6ab8
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / theme_blue / bluetheme.C
1
2 /*
3  * CINELERRA
4  * Copyright (C) 1997-2014 Adam Williams <broadcast at earthling dot net>
5  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6  * by Paolo Rampino <akir4d at gmail dot com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  *
22  */
23
24 #include "bcsignals.h"
25 #include "clip.h"
26 #include "cwindowgui.h"
27 #include "bluetheme.h"
28 #include "edl.h"
29 #include "edlsession.h"
30 #include "mainmenu.h"
31 #include "mainsession.h"
32 #include "mbuttons.h"
33 #include "meterpanel.h"
34 #include "mwindow.h"
35 #include "mwindowgui.h"
36 #include "new.h"
37 #include "patchbay.h"
38 #include "preferencesthread.h"
39 #include "recordgui.h"
40 #include "recordmonitor.h"
41 #include "setformat.h"
42 #include "statusbar.h"
43 #include "timebar.h"
44 #include "trackcanvas.h"
45 #include "vframe.h"
46 #include "vwindowgui.h"
47
48
49
50
51 PluginClient* new_plugin(PluginServer *server)
52 {
53         return new BlueDotThemeMain(server);
54 }
55
56
57
58
59
60
61
62 BlueDotThemeMain::BlueDotThemeMain(PluginServer *server)
63  : PluginTClient(server)
64 {
65 }
66
67 BlueDotThemeMain::~BlueDotThemeMain()
68 {
69 }
70
71 const char* BlueDotThemeMain::plugin_title() { return N_("Blue"); }
72
73 Theme* BlueDotThemeMain::new_theme()
74 {
75         theme = new BlueDotTheme;
76         extern unsigned char _binary_theme_blue_data_start[];
77         theme->set_data(_binary_theme_blue_data_start);
78         return theme;
79 }
80
81
82
83
84
85
86
87
88 BlueDotTheme::BlueDotTheme()
89  : Theme()
90 {
91 }
92
93 BlueDotTheme::~BlueDotTheme()
94 {
95         delete camerakeyframe_data;
96         delete channel_position_data;
97         delete keyframe_data;
98         delete maskkeyframe_data;
99         delete modekeyframe_data;
100         delete hardedge_data;
101         delete pankeyframe_data;
102         delete projectorkeyframe_data;
103 }
104
105 void BlueDotTheme::initialize()
106 {
107         BC_Resources *resources = BC_WindowBase::get_resources();
108
109
110         resources->text_default = 0xeeeeff;
111         resources->text_background = 0x1a1447;
112         resources->text_background_disarmed = 0x7282d4;
113         resources->text_border1 = 0x202020;
114         resources->text_border2 = 0x1a1447;
115         resources->text_border3 = 0x1a1447;
116         resources->text_border4 = 0x969696;
117         resources->text_inactive_highlight = 0x707070;
118
119         resources->bg_color = 0x939ed4;
120         resources->border_light2 = resources->bg_color;
121         resources->border_shadow2 = resources->bg_color;
122         resources->default_text_color = 0xeeeeff;
123         resources->menu_title_text = 0xeeeeff;
124         resources->popup_title_text = 0xeeeeff;
125         resources->menu_item_text = 0xeeeeff;
126         resources->menu_highlighted_fontcolor = WHITE;
127         resources->generic_button_margin = 30;
128         resources->pot_needle_color = resources->text_default;
129         resources->pot_offset = 1;
130         resources->progress_text = resources->text_default;
131         resources->meter_font_color = resources->default_text_color;
132
133         resources->menu_light = 0xababab;
134         resources->menu_highlighted = 0x6f6f6f;
135         resources->menu_down = 0x4b4b4b;
136         resources->menu_up = 0x4b4b4b;
137         resources->menu_shadow = 0x202020;
138         resources->popupmenu_margin = 15;
139         resources->popupmenu_triangle_margin = 15;
140
141         resources->listbox_title_color = 0xeeeeff;
142
143         resources->listbox_title_margin = 20;
144         resources->listbox_title_hotspot = 20;
145         resources->listbox_border1 = 0x1a1a1a;
146         resources->listbox_border2 = 0x1a1447;
147         resources->listbox_border3 = 0x1a1447;
148         resources->listbox_border4 = 0x646464;
149         resources->listbox_highlighted = 0x505050;
150         resources->listbox_inactive = 0x1a1447;
151         resources->listbox_bg = 0;
152         resources->listbox_text = 0xeeeeff;
153
154         resources->filebox_margin = 130;
155         resources->file_color = 0xeeeeff;
156         resources->directory_color = 0xa0a0ff;
157
158
159         new_toggle("loadmode_new.png",
160                 "loadmode_up.png",
161                 "loadmode_hi.png",
162                 "loadmode_checked.png",
163                 "loadmode_dn.png",
164                 "loadmode_checkedhi.png",
165                 "loadmode_new");
166         new_toggle("loadmode_none.png",
167                 "loadmode_up.png",
168                 "loadmode_hi.png",
169                 "loadmode_checked.png",
170                 "loadmode_dn.png",
171                 "loadmode_checkedhi.png",
172                 "loadmode_none");
173         new_toggle("loadmode_newcat.png",
174                 "loadmode_up.png",
175                 "loadmode_hi.png",
176                 "loadmode_checked.png",
177                 "loadmode_dn.png",
178                 "loadmode_checkedhi.png",
179                 "loadmode_newcat");
180         new_toggle("loadmode_cat.png",
181                 "loadmode_up.png",
182                 "loadmode_hi.png",
183                 "loadmode_checked.png",
184                 "loadmode_dn.png",
185                 "loadmode_checkedhi.png",
186                 "loadmode_cat");
187         new_toggle("loadmode_newtracks.png",
188                 "loadmode_up.png",
189                 "loadmode_hi.png",
190                 "loadmode_checked.png",
191                 "loadmode_dn.png",
192                 "loadmode_checkedhi.png",
193                 "loadmode_newtracks");
194         new_toggle("loadmode_paste.png",
195                 "loadmode_up.png",
196                 "loadmode_hi.png",
197                 "loadmode_checked.png",
198                 "loadmode_dn.png",
199                 "loadmode_checkedhi.png",
200                 "loadmode_paste");
201         new_toggle("loadmode_resource.png",
202                 "loadmode_up.png",
203                 "loadmode_hi.png",
204                 "loadmode_checked.png",
205                 "loadmode_dn.png",
206                 "loadmode_checkedhi.png",
207                 "loadmode_resource");
208         new_toggle("loadmode_nested.png",
209                 "loadmode_up.png",
210                 "loadmode_hi.png",
211                 "loadmode_checked.png",
212                 "loadmode_dn.png",
213                 "loadmode_checkedhi.png",
214                 "loadmode_nested");
215
216
217         resources->filebox_icons_images = new_button("icons.png",
218                 "fileboxbutton_up.png",
219                 "fileboxbutton_hi.png",
220                 "fileboxbutton_dn.png",
221                 "filebox_icons");
222
223         resources->filebox_text_images = new_button("text.png",
224                 "fileboxbutton_up.png",
225                 "fileboxbutton_hi.png",
226                 "fileboxbutton_dn.png",
227                 "filebox_text");
228
229         resources->filebox_newfolder_images = new_button("folder.png",
230                 "fileboxbutton_up.png",
231                 "fileboxbutton_hi.png",
232                 "fileboxbutton_dn.png",
233                 "filebox_newfolder");
234
235         resources->filebox_rename_images = new_button("rename.png",
236                 "fileboxbutton_up.png",
237                 "fileboxbutton_hi.png",
238                 "fileboxbutton_dn.png",
239                 "filebox_rename");
240
241         resources->filebox_updir_images = new_button("updir.png",
242                 "fileboxbutton_up.png",
243                 "fileboxbutton_hi.png",
244                 "fileboxbutton_dn.png",
245                 "filebox_updir");
246
247         resources->filebox_delete_images = new_button("delete.png",
248                 "fileboxbutton_up.png",
249                 "fileboxbutton_hi.png",
250                 "fileboxbutton_dn.png",
251                 "filebox_delete");
252
253         resources->filebox_reload_images = new_button("reload.png",
254                 "fileboxbutton_up.png",
255                 "fileboxbutton_hi.png",
256                 "fileboxbutton_dn.png",
257                 "filebox_reload");
258
259
260         resources->filebox_descend_images = new_button("openfolder.png",
261                 "filebox_bigbutton_up.png",
262                 "filebox_bigbutton_hi.png",
263                 "filebox_bigbutton_dn.png",
264                 "filebox_descend");
265
266         resources->usethis_button_images =
267                 resources->ok_images = new_button("ok.png",
268                 "filebox_bigbutton_up.png",
269                 "filebox_bigbutton_hi.png",
270                 "filebox_bigbutton_dn.png",
271                 "ok_button");
272
273         new_button("ok.png",
274                 "new_bigbutton_up.png",
275                 "new_bigbutton_hi.png",
276                 "new_bigbutton_dn.png",
277                 "new_ok_images");
278
279         new_button("reset.png",
280                 "reset_up.png",
281                 "reset_hi.png",
282                 "reset_dn.png",
283                 "reset_button");
284
285         resources->cancel_images = new_button("cancel.png",
286                 "filebox_bigbutton_up.png",
287                 "filebox_bigbutton_hi.png",
288                 "filebox_bigbutton_dn.png",
289                 "cancel_button");
290
291         new_button("cancel.png",
292                 "new_bigbutton_up.png",
293                 "new_bigbutton_hi.png",
294                 "new_bigbutton_dn.png",
295                 "new_cancel_images");
296
297         new_button("mask_pnt_linear.png",
298                 "mask_button_up.png",
299                 "mask_button_hi.png",
300                 "mask_button_dn.png",
301                 "mask_pnt_linear_images");
302         new_button("mask_crv_linear.png",
303                 "mask_button_up.png",
304                 "mask_button_hi.png",
305                 "mask_button_dn.png",
306                 "mask_crv_linear_images");
307         new_button("mask_all_linear.png",
308                 "mask_button_up.png",
309                 "mask_button_hi.png",
310                 "mask_button_dn.png",
311                 "mask_all_linear_images");
312
313         new_button("mask_pnt_smooth.png",
314                 "mask_button_up.png",
315                 "mask_button_hi.png",
316                 "mask_button_dn.png",
317                 "mask_pnt_smooth_images");
318         new_button("mask_crv_smooth.png",
319                 "mask_button_up.png",
320                 "mask_button_hi.png",
321                 "mask_button_dn.png",
322                 "mask_crv_smooth_images");
323         new_button("mask_all_smooth.png",
324                 "mask_button_up.png",
325                 "mask_button_hi.png",
326                 "mask_button_dn.png",
327                 "mask_all_smooth_images");
328
329         resources->medium_7segment = new_image_set(TOTAL_7SEGMENT,
330                 "0.png",
331                 "1.png",
332                 "2.png",
333                 "3.png",
334                 "4.png",
335                 "5.png",
336                 "6.png",
337                 "7.png",
338                 "8.png",
339                 "9.png",
340                 "colon.png",
341                 "period.png",
342                 "a.png",
343                 "b.png",
344                 "c.png",
345                 "d.png",
346                 "e.png",
347                 "f.png",
348                 "space.png",
349                 "dash.png");
350
351         resources->bar_data = new_image("bar", "bar.png");
352         resources->check = new_image("check", "check.png");
353
354         resources->min_menu_w = 96;
355         resources->menu_popup_bg = new_image("menu_popup_bg.png");
356         resources->menu_item_bg = new_image_set(3,
357                 "menuitem_up.png",
358                 "menuitem_hi.png",
359                 "menuitem_dn.png");
360         resources->menu_bar_bg = new_image("menubar_bg.png");
361         resources->menu_title_bg = new_image_set(3,
362                 "menubar_up.png",
363                 "menubar_hi.png",
364                 "menubar_dn.png");
365
366
367         resources->popupmenu_images = 0;
368 //              new_image_set(3,
369 //              "menupopup_up.png",
370 //              "menupopup_hi.png",
371 //              "menupopup_dn.png");
372
373         resources->toggle_highlight_bg = new_image("toggle_highlight_bg",
374                 "text_highlight.png");
375
376         resources->generic_button_images = new_image_set(3,
377                         "generic_up.png",
378                         "generic_hi.png",
379                         "generic_dn.png");
380         resources->horizontal_slider_data = new_image_set(6,
381                         "hslider_fg_up.png",
382                         "hslider_fg_hi.png",
383                         "hslider_fg_dn.png",
384                         "hslider_bg_up.png",
385                         "hslider_bg_hi.png",
386                         "hslider_bg_dn.png");
387         resources->vertical_slider_data = new_image_set(6,
388                         "hslider_fg_up.png",
389                         "hslider_fg_hi.png",
390                         "hslider_fg_dn.png",
391                         "hslider_bg_up.png",
392                         "hslider_bg_hi.png",
393                         "hslider_bg_dn.png");
394         for( int i=0; i<6; ++i )
395                 resources->vertical_slider_data[i]->rotate90();
396
397         resources->progress_images = new_image_set(2,
398                         "progress_bg.png",
399                         "progress_hi.png");
400         resources->tumble_data = new_image_set(4,
401                 "tumble_up.png",
402                 "tumble_hi.png",
403                 "tumble_bottom.png",
404                 "tumble_top.png");
405         resources->listbox_button = new_button4("listbox_button.png",
406                 "editpanel_up.png",
407                 "editpanel_hi.png",
408                 "editpanel_dn.png",
409                 "editpanel_hi.png",
410                 "listbox_button");
411         resources->listbox_column = new_image_set(3,
412                 "column_up.png",
413                 "column_hi.png",
414                 "column_dn.png");
415         resources->listbox_up = new_image("listbox_up.png");
416         resources->listbox_dn = new_image("listbox_dn.png");
417         resources->pan_data = new_image_set(7,
418                         "pan_up.png",
419                         "pan_hi.png",
420                         "pan_popup.png",
421                         "pan_channel.png",
422                         "pan_stick.png",
423                         "pan_channel_small.png",
424                         "pan_stick_small.png");
425         resources->pan_text_color = WHITE;
426
427         resources->pot_images = new_image_set(3,
428                 "pot_up.png",
429                 "pot_hi.png",
430                 "pot_dn.png");
431
432         resources->checkbox_images = new_image_set(5,
433                 "checkbox_up.png",
434                 "checkbox_hi.png",
435                 "checkbox_checked.png",
436                 "checkbox_dn.png",
437                 "checkbox_checkedhi.png");
438
439         resources->radial_images = new_image_set(5,
440                 "radial_up.png",
441                 "radial_hi.png",
442                 "radial_checked.png",
443                 "radial_dn.png",
444                 "radial_checkedhi.png");
445
446         resources->xmeter_images = new_image_set(7,
447                 "xmeter_normal.png",
448                 "xmeter_green.png",
449                 "xmeter_red.png",
450                 "xmeter_yellow.png",
451                 "xmeter_white.png",
452                 "xmeter_over.png",
453                 "downmix51_2.png");
454         resources->ymeter_images = new_image_set(7,
455                 "ymeter_normal.png",
456                 "ymeter_green.png",
457                 "ymeter_red.png",
458                 "ymeter_yellow.png",
459                 "ymeter_white.png",
460                 "ymeter_over.png",
461                 "downmix51_2.png");
462
463         resources->hscroll_data = new_image_set(10,
464                         "hscroll_handle_up.png",
465                         "hscroll_handle_hi.png",
466                         "hscroll_handle_dn.png",
467                         "hscroll_handle_bg.png",
468                         "hscroll_left_up.png",
469                         "hscroll_left_hi.png",
470                         "hscroll_left_dn.png",
471                         "hscroll_right_up.png",
472                         "hscroll_right_hi.png",
473                         "hscroll_right_dn.png");
474
475         resources->vscroll_data = new_image_set(10,
476                         "vscroll_handle_up.png",
477                         "vscroll_handle_hi.png",
478                         "vscroll_handle_dn.png",
479                         "vscroll_handle_bg.png",
480                         "vscroll_left_up.png",
481                         "vscroll_left_hi.png",
482                         "vscroll_left_dn.png",
483                         "vscroll_right_up.png",
484                         "vscroll_right_hi.png",
485                         "vscroll_right_dn.png");
486         resources->scroll_minhandle = 20;
487
488
489         new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
490         new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip");
491         new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip");
492         new_button("swap_extents.png",
493                 "editpanel_up.png",
494                 "editpanel_hi.png",
495                 "editpanel_dn.png",
496                 "swap_extents");
497
498
499 // Record windows
500
501
502         preferences_category_overlap = 0;
503         preferencescategory_x = 0;
504         preferencescategory_y = 5;
505         preferencestitle_x = 5;
506         preferencestitle_y = 10;
507         preferencesoptions_x = 5;
508         preferencesoptions_y = 0;
509
510 // MWindow
511         message_normal = resources->text_default;
512         audio_color = GREEN;
513         mtransport_margin = 10;
514         toggle_margin = 10;
515
516         new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane");
517         new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png");
518         new_image_set("ypane", 3, "ypane_up.png", "ypane_hi.png", "ypane_dn.png");
519
520         new_image("mbutton_bg", "mbutton_bg.png");
521         new_image("timebar_bg", "timebar_bg_flat.png");
522         new_image("timebar_brender", "timebar_brender.png");
523         new_image("clock_bg", "mclock_flat.png");
524         new_image("patchbay_bg", "patchbay_bg.png");
525         new_image("statusbar", "statusbar.png");
526 //      new_image("mscroll_filler", "mscroll_filler.png");
527
528         new_image_set("zoombar_menu", 3, "zoompopup_up.png", "zoompopup_hi.png", "zoompopup_dn.png");
529         new_image_set("zoombar_tumbler", 4, "zoomtumble_up.png", "zoomtumble_hi.png", "zoomtumble_bottom.png", "zoomtumble_top.png");
530
531         new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
532         new_image("mode_add", "mode_add.png");
533         new_image("mode_divide", "mode_divide.png");
534         new_image("mode_multiply", "mode_multiply.png");
535         new_image("mode_normal", "mode_normal.png");
536         new_image("mode_replace", "mode_replace.png");
537         new_image("mode_subtract", "mode_subtract.png");
538         new_image("mode_max", "mode_max.png");
539
540         new_image_set("plugin_on", 5, "plugin_on.png", "plugin_onhi.png", "plugin_onselect.png", "plugin_ondn.png", "plugin_onselecthi.png");
541         new_image_set("plugin_show", 5, "plugin_show.png", "plugin_showhi.png", "plugin_showselect.png", "plugin_showdn.png", "plugin_showselecthi.png");
542
543 // CWindow
544         new_image("cpanel_bg", "cpanel_bg.png");
545         new_image("cbuttons_left", "cbuttons_left.png");
546         new_image("cbuttons_right", "cbuttons_right.png");
547         new_image("cmeter_bg", "cmeter_bg.png");
548         new_image("cwindow_focus", "cwindow_focus.png");
549
550 // VWindow
551         new_image("vbuttons_left", "vbuttons_left.png");
552         new_image("vclock", "vclock.png");
553
554         new_image("preferences_bg", "preferences_bg.png");
555
556
557         new_image("new_bg", "new_bg.png");
558         new_image("setformat_bg", "setformat_bg.png");
559
560
561         timebar_view_data = new_image("timebar_view.png");
562
563         setformat_w = get_image("setformat_bg")->get_w();
564         setformat_h = get_image("setformat_bg")->get_h();
565         setformat_x1 = 15;
566         setformat_x2 = 110;
567
568         setformat_x3 = 315;
569         setformat_x4 = 425;
570         setformat_y1 = 20;
571         setformat_y2 = 85;
572         setformat_y3 = 125;
573         setformat_margin = 30;
574         setformat_channels_x = 25;
575         setformat_channels_y = 242;
576         setformat_channels_w = 250;
577         setformat_channels_h = 250;
578
579         loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10;
580         browse_pad = 20;
581
582
583         new_toggle("playpatch.png",
584                 "playpatch_up.png",
585                 "playpatch_hi.png",
586                 "playpatch_checked.png",
587                 "playpatch_dn.png",
588                 "playpatch_checkedhi.png",
589                 "playpatch_data");
590
591         new_toggle("recordpatch.png",
592                 "recordpatch_up.png",
593                 "recordpatch_hi.png",
594                 "recordpatch_checked.png",
595                 "recordpatch_dn.png",
596                 "recordpatch_checkedhi.png",
597                 "recordpatch_data");
598
599         new_toggle("gangpatch.png",
600                 "patch_up.png",
601                 "patch_hi.png",
602                 "patch_checked.png",
603                 "patch_dn.png",
604                 "patch_checkedhi.png",
605                 "gangpatch_data");
606
607         new_toggle("drawpatch.png",
608                 "patch_up.png",
609                 "patch_hi.png",
610                 "patch_checked.png",
611                 "patch_dn.png",
612                 "patch_checkedhi.png",
613                 "drawpatch_data");
614
615
616         new_image_set("mutepatch_data",
617                 5,
618                 "mutepatch_up.png",
619                 "mutepatch_hi.png",
620                 "mutepatch_checked.png",
621                 "mutepatch_dn.png",
622                 "mutepatch_checkedhi.png");
623
624         new_image_set("expandpatch_data",
625                 5,
626                 "expandpatch_up.png",
627                 "expandpatch_hi.png",
628                 "expandpatch_checked.png",
629                 "expandpatch_dn.png",
630                 "expandpatch_checkedhi.png");
631
632         build_bg_data();
633         build_overlays();
634
635
636
637
638         out_point = new_image_set(5,
639                 "out_up.png",
640                 "out_hi.png",
641                 "out_checked.png",
642                 "out_dn.png",
643                 "out_checkedhi.png");
644         in_point = new_image_set(5,
645                 "in_up.png",
646                 "in_hi.png",
647                 "in_checked.png",
648                 "in_dn.png",
649                 "in_checkedhi.png");
650
651         label_toggle = new_image_set(5,
652                 "labeltoggle_up.png",
653                 "labeltoggle_uphi.png",
654                 "label_checked.png",
655                 "labeltoggle_dn.png",
656                 "label_checkedhi.png");
657
658         ffmpeg_toggle = new_image_set(5,
659                 "ff_up.png",
660                 "ff_hi.png",
661                 "ff_checked.png",
662                 "ff_down.png",
663                 "ff_checkedhi.png");
664
665         proxy_p_toggle = new_image_set(5,
666                 "proxy_p_up.png",
667                 "proxy_p_hi.png",
668                 "proxy_p_chkd.png",
669                 "proxy_p_down.png",
670                 "proxy_p_chkdhi.png");
671
672         proxy_s_toggle = new_image_set(5,
673                 "proxy_s_up.png",
674                 "proxy_s_hi.png",
675                 "proxy_s_chkd.png",
676                 "proxy_s_down.png",
677                 "proxy_s_chkdhi.png");
678
679         mask_mode_toggle = new_image_set(5,
680                 "mask_mode_up.png",
681                 "mask_mode_hi.png",
682                 "mask_mode_chkd.png",
683                 "mask_mode_down.png",
684                 "mask_mode_chkdhi.png");
685
686         shbtn_data = new_image_set(3,
687                 "shbtn_up.png",
688                 "shbtn_hi.png",
689                 "shbtn_dn.png");
690
691         new_image_set("preset_edit",
692                 3,
693                 "preset_edit0.png",
694                 "preset_edit1.png",
695                 "preset_edit2.png");
696
697         new_image_set("histogram_carrot",
698                 5,
699                 "histogram_carrot_up.png",
700                 "histogram_carrot_hi.png",
701                 "histogram_carrot_checked.png",
702                 "histogram_carrot_dn.png",
703                 "histogram_carrot_checkedhi.png");
704
705
706         statusbar_cancel_data = new_image_set(3,
707                 "statusbar_cancel_up.png",
708                 "statusbar_cancel_hi.png",
709                 "statusbar_cancel_dn.png");
710
711
712         VFrame *editpanel_up = new_image("editpanel_up.png");
713         VFrame *editpanel_hi = new_image("editpanel_hi.png");
714         VFrame *editpanel_dn = new_image("editpanel_dn.png");
715         VFrame *editpanel_checked = new_image("editpanel_checked.png");
716         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
717
718         new_image("panel_divider", "panel_divider.png");
719         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
720         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
721         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
722         new_button("lok.png", editpanel_up, editpanel_hi, editpanel_dn, "lok");
723
724         new_toggle("histogram_toggle.png",
725                 editpanel_up,
726                 editpanel_hi,
727                 editpanel_checked,
728                 editpanel_dn,
729                 editpanel_checkedhi,
730                 "histogram_toggle");
731         new_toggle("histogram_rgb.png",
732                 editpanel_up,
733                 editpanel_hi,
734                 editpanel_checked,
735                 editpanel_dn,
736                 editpanel_checkedhi,
737                 "histogram_rgb_toggle");
738         new_toggle("waveform.png",
739                 editpanel_up,
740                 editpanel_hi,
741                 editpanel_checked,
742                 editpanel_dn,
743                 editpanel_checkedhi,
744                 "waveform_toggle");
745         new_toggle("waveform_rgb.png",
746                 editpanel_up,
747                 editpanel_hi,
748                 editpanel_checked,
749                 editpanel_dn,
750                 editpanel_checkedhi,
751                 "waveform_rgb_toggle");
752         new_toggle("scope.png",
753                 editpanel_up,
754                 editpanel_hi,
755                 editpanel_checked,
756                 editpanel_dn,
757                 editpanel_checkedhi,
758                 "scope_toggle");
759
760         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
761         new_button("histogram_img.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram_img");
762
763         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
764         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
765         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
766         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
767         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
768         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
769         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
770         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
771         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
772         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
773         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
774         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
775         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
776         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
777         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
778         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn, "overbutton");
779         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn, "overwritebutton");
780         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
781         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
782         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
783         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn, "slicebutton");
784         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
785         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
786         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
787         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
788         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
789
790
791         VFrame *transport_up = new_image("transportup.png");
792         VFrame *transport_hi = new_image("transporthi.png");
793         VFrame *transport_dn = new_image("transportdn.png");
794
795         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
796         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
797         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
798         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
799         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
800         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
801         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
802         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
803         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
804         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
805         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
806         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
807         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
808
809
810
811 // CWindow icons
812         new_image("cwindow_inactive", "cwindow_inactive.png");
813         new_image("cwindow_active", "cwindow_active.png");
814
815
816
817         new_image_set("category_button",
818                 3,
819                 "preferencesbutton_dn.png",
820                 "preferencesbutton_dnhi.png",
821                 "preferencesbutton_dnlo.png");
822
823         new_image_set("category_button_checked",
824                 3,
825                 "preferencesbutton_up.png",
826                 "preferencesbutton_uphi.png",
827                 "preferencesbutton_dnlo.png");
828
829
830
831
832
833         new_image_set("color3way_point",
834                 3,
835                 "color3way_up.png",
836                 "color3way_hi.png",
837                 "color3way_dn.png");
838
839         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
840         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
841         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
842         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
843         new_toggle("blank30x30.png",
844                    new_image("locklabels_locked.png"),
845                    new_image("locklabels_lockedhi.png"),
846                    new_image("locklabels_unlocked.png"),
847                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
848                    new_image("locklabels_unlockedhi.png"),
849                    "locklabels");
850
851         VFrame *cpanel_up = new_image("cpanel_up.png");
852         VFrame *cpanel_hi = new_image("cpanel_hi.png");
853         VFrame *cpanel_dn = new_image("cpanel_dn.png");
854         VFrame *cpanel_checked = new_image("cpanel_checked.png");
855         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
856
857
858         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
859         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
860         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
861         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
862         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
863         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
864         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
865         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
866         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
867         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
868
869         // toggle for tangent mode (compositor/tool window)
870         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
871         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
872
873         new_toggle("mask_scale_x.png",   "mask_scale_xup.png",    "mask_scale_xuphi.png",
874                 "mask_scale_xchkd.png",  "mask_scale_xdown.png",  "mask_scale_xchkdhi.png",
875                 "mask_scale_x");
876         new_toggle("mask_scale_y.png",   "mask_scale_yup.png",    "mask_scale_yuphi.png",
877                 "mask_scale_ychkd.png",  "mask_scale_ydown.png",  "mask_scale_ychkdhi.png",
878                 "mask_scale_y");
879         new_toggle("mask_scale_xy.png",  "mask_scale_xyup.png",   "mask_scale_xyuphi.png",
880                 "mask_scale_xychkd.png", "mask_scale_xydown.png", "mask_scale_xychkdhi.png",
881                 "mask_scale_xy");
882
883         flush_images();
884
885         title_font = MEDIUMFONT_3D;
886         title_color = 0xeeeeff;
887         recordgui_fixed_color = YELLOW;
888         recordgui_variable_color = RED;
889
890         channel_position_color = MEYELLOW;
891         resources->meter_title_w = 25;
892
893         // (asset) edit info text color
894         edit_font_color = YELLOW;
895 }
896
897 #define VWINDOW_METER_MARGIN 5
898
899 void BlueDotTheme::build_bg_data()
900 {
901 // Audio settings
902         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
903
904 // Track bitmaps
905         new_image("resource1024", "resource1024.png");
906         new_image("resource512", "resource512.png");
907         new_image("resource256", "resource256.png");
908         new_image("resource128", "resource128.png");
909         new_image("resource64", "resource64.png");
910         new_image("resource32", "resource32.png");
911         new_image("plugin_bg_data", "plugin_bg.png");
912         new_image("title_bg_data", "title_bg.png");
913         new_image("vtimebar_bg_data", "vwindow_timebar.png");
914 }
915
916 void BlueDotTheme::build_overlays()
917 {
918         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
919         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
920         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
921         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
922         hardedge_data = new VFramePng(get_image_data("hardedge.png"));
923         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
924         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
925 }
926
927 void BlueDotTheme::draw_rwindow_bg(RecordGUI *gui)
928 {
929 //      int y;
930 //      int margin = 50;
931 //      int margin2 = 80;
932 //      gui->draw_9segment(recordgui_batch_x - margin,
933 //              0,
934 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
935 //              recordgui_buttons_y,
936 //              rgui_batch);
937 //      gui->draw_3segmenth(recordgui_options_x - margin2,
938 //              recordgui_buttons_y - 5,
939 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
940 //              rgui_controls);
941 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
942 //      gui->draw_9segment(0,
943 //              y,
944 //              mwindow->session->rwindow_w,
945 //              mwindow->session->rwindow_h - y,
946 //              rgui_list);
947 }
948
949 void BlueDotTheme::draw_rmonitor_bg(RecordMonitorGUI *gui)
950 {
951 //      int margin = 45;
952 //      int panel_w = 300;
953 //      int x = rmonitor_meter_x - margin;
954 //      int w = mwindow->session->rmonitor_w - x;
955 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
956 //      gui->clear_box(0,
957 //              0,
958 //              mwindow->session->rmonitor_w,
959 //              mwindow->session->rmonitor_h);
960 //      gui->draw_9segment(x,
961 //              0,
962 //              w,
963 //              mwindow->session->rmonitor_h,
964 //              rmonitor_meters);
965 }
966
967
968
969
970
971
972 void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui)
973 {
974 // Button bar
975         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
976                 gui->menu_w(), get_image("mbutton_bg"));
977
978         int pdw = get_image("panel_divider")->get_w();
979         int x = mbuttons_x;
980         x += 9 * get_image("play")->get_w();
981         x += mtransport_margin;                                       // the control buttons
982
983         gui->draw_vframe(get_image("panel_divider"),
984                 x - toggle_margin / 2 - pdw / 2 + 2,
985                 mbuttons_y - 1);
986         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
987
988         gui->draw_vframe(get_image("panel_divider"),
989                 x - toggle_margin / 2 - pdw / 2 + 2,
990                 mbuttons_y - 1);
991
992         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
993         gui->draw_vframe(get_image("panel_divider"),
994                 x - toggle_margin / 2 - pdw / 2 + 2,
995                 mbuttons_y - 1);
996
997 // Clock
998         gui->draw_3segmenth(0,
999                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
1000                 get_image("patchbay_bg")->get_w(),
1001                 get_image("clock_bg"));
1002
1003 // Patchbay
1004         gui->draw_3segmentv(patchbay_x,
1005                 patchbay_y,
1006                 patchbay_h,
1007                 get_image("patchbay_bg"));
1008
1009 // Track canvas
1010         gui->set_color(BLACK);
1011         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
1012                 mcanvas_y + mtimebar_h,
1013                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1014                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
1015
1016 // Timebar
1017         gui->draw_3segmenth(mtimebar_x,
1018                 mtimebar_y,
1019                 mtimebar_w,
1020                 get_image("timebar_bg"));
1021
1022 // Zoombar
1023         gui->set_color(0x1a1447);
1024         gui->draw_box(mzoom_x,
1025                 mzoom_y,
1026                 mwindow->session->mwindow_w,
1027                 25);
1028
1029 // Scrollbar filler
1030 //      gui->draw_vframe(get_image("mscroll_filler"),
1031 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1032 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
1033
1034 // Status
1035         gui->draw_3segmenth(mzoom_x,
1036                 mzoom_y,
1037                 mzoom_w,
1038                 get_image("statusbar"));
1039
1040
1041 }
1042
1043 void BlueDotTheme::draw_cwindow_bg(CWindowGUI *gui)
1044 {
1045         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
1046
1047         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
1048
1049         if(mwindow->edl->session->cwindow_meter)
1050         {
1051                 gui->draw_3segmenth(cstatus_x,
1052                         ccomposite_h,
1053                         cmeter_x - widget_border - cstatus_x,
1054                         get_image("cbuttons_right"));
1055                 gui->draw_9segment(cmeter_x - widget_border,
1056                         0,
1057                         mwindow->session->cwindow_w - cmeter_x + widget_border,
1058                         mwindow->session->cwindow_h,
1059                         get_image("cmeter_bg"));
1060         }
1061         else
1062         {
1063                 gui->draw_3segmenth(cstatus_x,
1064                         ccomposite_h,
1065                         cmeter_x - widget_border - cstatus_x + 100,
1066                         get_image("cbuttons_right"));
1067         }
1068 }
1069
1070 void BlueDotTheme::draw_vwindow_bg(VWindowGUI *gui)
1071 {
1072         gui->draw_3segmenth(0,
1073                 vcanvas_h,
1074                 vdivision_x,
1075                 get_image("vbuttons_left"));
1076         if(mwindow->edl->session->vwindow_meter)
1077         {
1078                 gui->draw_3segmenth(vdivision_x,
1079                         vcanvas_h,
1080                         vmeter_x - widget_border - vdivision_x,
1081                         get_image("cbuttons_right"));
1082                 gui->draw_9segment(vmeter_x - widget_border,
1083                         0,
1084                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1085                         mwindow->session->vwindow_h,
1086                         get_image("cmeter_bg"));
1087         }
1088         else
1089         {
1090                 gui->draw_3segmenth(vdivision_x,
1091                         vcanvas_h,
1092                         vmeter_x - widget_border - vdivision_x + 100,
1093                         get_image("cbuttons_right"));
1094         }
1095
1096 // Clock border
1097         gui->draw_3segmenth(vtime_x - 20,
1098                 vtime_y - 1,
1099                 vtime_w + 40,
1100                 get_image("vclock"));
1101 }
1102
1103 void BlueDotTheme::draw_preferences_bg(PreferencesWindow *gui)
1104 {
1105         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1106 }
1107
1108 void BlueDotTheme::draw_new_bg(NewWindow *gui)
1109 {
1110         gui->draw_vframe(get_image("new_bg"), 0, 0);
1111 }
1112
1113 void BlueDotTheme::draw_setformat_bg(SetFormatWindow *gui)
1114 {
1115         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1116 }
1117