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