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