9f2318055ac1b0750e772c3475d0a412cfb3280b
[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
874         flush_images();
875
876         title_font = MEDIUMFONT_3D;
877         title_color = 0xeeeeff;
878         recordgui_fixed_color = YELLOW;
879         recordgui_variable_color = RED;
880
881         channel_position_color = MEYELLOW;
882         resources->meter_title_w = 25;
883
884         // (asset) edit info text color
885         edit_font_color = YELLOW;
886 }
887
888 #define VWINDOW_METER_MARGIN 5
889
890 void BlueDotTheme::build_bg_data()
891 {
892 // Audio settings
893         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
894
895 // Track bitmaps
896         new_image("resource1024", "resource1024.png");
897         new_image("resource512", "resource512.png");
898         new_image("resource256", "resource256.png");
899         new_image("resource128", "resource128.png");
900         new_image("resource64", "resource64.png");
901         new_image("resource32", "resource32.png");
902         new_image("plugin_bg_data", "plugin_bg.png");
903         new_image("title_bg_data", "title_bg.png");
904         new_image("vtimebar_bg_data", "vwindow_timebar.png");
905 }
906
907 void BlueDotTheme::build_overlays()
908 {
909         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
910         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
911         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
912         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
913         hardedge_data = new VFramePng(get_image_data("hardedge.png"));
914         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
915         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
916 }
917
918 void BlueDotTheme::draw_rwindow_bg(RecordGUI *gui)
919 {
920 //      int y;
921 //      int margin = 50;
922 //      int margin2 = 80;
923 //      gui->draw_9segment(recordgui_batch_x - margin,
924 //              0,
925 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
926 //              recordgui_buttons_y,
927 //              rgui_batch);
928 //      gui->draw_3segmenth(recordgui_options_x - margin2,
929 //              recordgui_buttons_y - 5,
930 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
931 //              rgui_controls);
932 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
933 //      gui->draw_9segment(0,
934 //              y,
935 //              mwindow->session->rwindow_w,
936 //              mwindow->session->rwindow_h - y,
937 //              rgui_list);
938 }
939
940 void BlueDotTheme::draw_rmonitor_bg(RecordMonitorGUI *gui)
941 {
942 //      int margin = 45;
943 //      int panel_w = 300;
944 //      int x = rmonitor_meter_x - margin;
945 //      int w = mwindow->session->rmonitor_w - x;
946 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
947 //      gui->clear_box(0,
948 //              0,
949 //              mwindow->session->rmonitor_w,
950 //              mwindow->session->rmonitor_h);
951 //      gui->draw_9segment(x,
952 //              0,
953 //              w,
954 //              mwindow->session->rmonitor_h,
955 //              rmonitor_meters);
956 }
957
958
959
960
961
962
963 void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui)
964 {
965 // Button bar
966         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
967                 gui->menu_w(), get_image("mbutton_bg"));
968
969         int pdw = get_image("panel_divider")->get_w();
970         int x = mbuttons_x;
971         x += 9 * get_image("play")->get_w();
972         x += mtransport_margin;                                       // the control buttons
973
974         gui->draw_vframe(get_image("panel_divider"),
975                 x - toggle_margin / 2 - pdw / 2 + 2,
976                 mbuttons_y - 1);
977         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
978
979         gui->draw_vframe(get_image("panel_divider"),
980                 x - toggle_margin / 2 - pdw / 2 + 2,
981                 mbuttons_y - 1);
982
983         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
984         gui->draw_vframe(get_image("panel_divider"),
985                 x - toggle_margin / 2 - pdw / 2 + 2,
986                 mbuttons_y - 1);
987
988 // Clock
989         gui->draw_3segmenth(0,
990                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
991                 get_image("patchbay_bg")->get_w(),
992                 get_image("clock_bg"));
993
994 // Patchbay
995         gui->draw_3segmentv(patchbay_x,
996                 patchbay_y,
997                 patchbay_h,
998                 get_image("patchbay_bg"));
999
1000 // Track canvas
1001         gui->set_color(BLACK);
1002         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
1003                 mcanvas_y + mtimebar_h,
1004                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1005                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
1006
1007 // Timebar
1008         gui->draw_3segmenth(mtimebar_x,
1009                 mtimebar_y,
1010                 mtimebar_w,
1011                 get_image("timebar_bg"));
1012
1013 // Zoombar
1014         gui->set_color(0x1a1447);
1015         gui->draw_box(mzoom_x,
1016                 mzoom_y,
1017                 mwindow->session->mwindow_w,
1018                 25);
1019
1020 // Scrollbar filler
1021 //      gui->draw_vframe(get_image("mscroll_filler"),
1022 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1023 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
1024
1025 // Status
1026         gui->draw_3segmenth(mzoom_x,
1027                 mzoom_y,
1028                 mzoom_w,
1029                 get_image("statusbar"));
1030
1031
1032 }
1033
1034 void BlueDotTheme::draw_cwindow_bg(CWindowGUI *gui)
1035 {
1036         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
1037
1038         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
1039
1040         if(mwindow->edl->session->cwindow_meter)
1041         {
1042                 gui->draw_3segmenth(cstatus_x,
1043                         ccomposite_h,
1044                         cmeter_x - widget_border - cstatus_x,
1045                         get_image("cbuttons_right"));
1046                 gui->draw_9segment(cmeter_x - widget_border,
1047                         0,
1048                         mwindow->session->cwindow_w - cmeter_x + widget_border,
1049                         mwindow->session->cwindow_h,
1050                         get_image("cmeter_bg"));
1051         }
1052         else
1053         {
1054                 gui->draw_3segmenth(cstatus_x,
1055                         ccomposite_h,
1056                         cmeter_x - widget_border - cstatus_x + 100,
1057                         get_image("cbuttons_right"));
1058         }
1059 }
1060
1061 void BlueDotTheme::draw_vwindow_bg(VWindowGUI *gui)
1062 {
1063         gui->draw_3segmenth(0,
1064                 vcanvas_h,
1065                 vdivision_x,
1066                 get_image("vbuttons_left"));
1067         if(mwindow->edl->session->vwindow_meter)
1068         {
1069                 gui->draw_3segmenth(vdivision_x,
1070                         vcanvas_h,
1071                         vmeter_x - widget_border - vdivision_x,
1072                         get_image("cbuttons_right"));
1073                 gui->draw_9segment(vmeter_x - widget_border,
1074                         0,
1075                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1076                         mwindow->session->vwindow_h,
1077                         get_image("cmeter_bg"));
1078         }
1079         else
1080         {
1081                 gui->draw_3segmenth(vdivision_x,
1082                         vcanvas_h,
1083                         vmeter_x - widget_border - vdivision_x + 100,
1084                         get_image("cbuttons_right"));
1085         }
1086
1087 // Clock border
1088         gui->draw_3segmenth(vtime_x - 20,
1089                 vtime_y - 1,
1090                 vtime_w + 40,
1091                 get_image("vclock"));
1092 }
1093
1094 void BlueDotTheme::draw_preferences_bg(PreferencesWindow *gui)
1095 {
1096         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1097 }
1098
1099 void BlueDotTheme::draw_new_bg(NewWindow *gui)
1100 {
1101         gui->draw_vframe(get_image("new_bg"), 0, 0);
1102 }
1103
1104 void BlueDotTheme::draw_setformat_bg(SetFormatWindow *gui)
1105 {
1106         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1107 }
1108