remove whitespace at eol
[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->progress_images = new_image_set(2,
341                         "progress_bg.png",
342                         "progress_hi.png");
343         resources->tumble_data = new_image_set(4,
344                 "tumble_up.png",
345                 "tumble_hi.png",
346                 "tumble_bottom.png",
347                 "tumble_top.png");
348         resources->listbox_button = new_button4("listbox_button.png",
349                 "editpanel_up.png",
350                 "editpanel_hi.png",
351                 "editpanel_dn.png",
352                 "editpanel_hi.png");
353         resources->listbox_column = new_image_set(3,
354                 "column_up.png",
355                 "column_hi.png",
356                 "column_dn.png");
357         resources->listbox_up = new_image("listbox_up.png");
358         resources->listbox_dn = new_image("listbox_dn.png");
359         resources->pan_data = new_image_set(7,
360                         "pan_up.png",
361                         "pan_hi.png",
362                         "pan_popup.png",
363                         "pan_channel.png",
364                         "pan_stick.png",
365                         "pan_channel_small.png",
366                         "pan_stick_small.png");
367         resources->pan_text_color = WHITE;
368
369         resources->pot_images = new_image_set(3,
370                 "pot_up.png",
371                 "pot_hi.png",
372                 "pot_dn.png");
373
374         resources->checkbox_images = new_image_set(5,
375                 "checkbox_up.png",
376                 "checkbox_hi.png",
377                 "checkbox_checked.png",
378                 "checkbox_dn.png",
379                 "checkbox_checkedhi.png");
380
381         resources->radial_images = new_image_set(5,
382                 "radial_up.png",
383                 "radial_hi.png",
384                 "radial_checked.png",
385                 "radial_dn.png",
386                 "radial_checkedhi.png");
387
388         resources->xmeter_images = new_image_set(7,
389                 "xmeter_normal.png",
390                 "xmeter_green.png",
391                 "xmeter_red.png",
392                 "xmeter_yellow.png",
393                 "xmeter_white.png",
394                 "xmeter_over.png",
395                 "downmix51_2.png");
396         resources->ymeter_images = new_image_set(7,
397                 "ymeter_normal.png",
398                 "ymeter_green.png",
399                 "ymeter_red.png",
400                 "ymeter_yellow.png",
401                 "ymeter_white.png",
402                 "ymeter_over.png",
403                 "downmix51_2.png");
404
405         resources->hscroll_data = new_image_set(10,
406                         "hscroll_handle_up.png",
407                         "hscroll_handle_hi.png",
408                         "hscroll_handle_dn.png",
409                         "hscroll_handle_bg.png",
410                         "hscroll_left_up.png",
411                         "hscroll_left_hi.png",
412                         "hscroll_left_dn.png",
413                         "hscroll_right_up.png",
414                         "hscroll_right_hi.png",
415                         "hscroll_right_dn.png");
416
417         resources->vscroll_data = new_image_set(10,
418                         "vscroll_handle_up.png",
419                         "vscroll_handle_hi.png",
420                         "vscroll_handle_dn.png",
421                         "vscroll_handle_bg.png",
422                         "vscroll_left_up.png",
423                         "vscroll_left_hi.png",
424                         "vscroll_left_dn.png",
425                         "vscroll_right_up.png",
426                         "vscroll_right_hi.png",
427                         "vscroll_right_dn.png");
428         resources->scroll_minhandle = 20;
429
430
431         new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
432         new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip");
433         new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip");
434         new_button("swap_extents.png",
435                 "editpanel_up.png",
436                 "editpanel_hi.png",
437                 "editpanel_dn.png",
438                 "swap_extents");
439
440
441 // Record windows
442
443
444         preferences_category_overlap = 0;
445         preferencescategory_x = 0;
446         preferencescategory_y = 5;
447         preferencestitle_x = 5;
448         preferencestitle_y = 10;
449         preferencesoptions_x = 5;
450         preferencesoptions_y = 0;
451
452 // MWindow
453         message_normal = resources->text_default;
454         audio_color = GREEN;
455         mtransport_margin = 10;
456         toggle_margin = 10;
457
458         new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane");
459         new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png");
460         new_image_set("ypane", 3, "ypane_up.png", "ypane_hi.png", "ypane_dn.png");
461
462         new_image("mbutton_bg", "mbutton_bg.png");
463         new_image("timebar_bg", "timebar_bg_flat.png");
464         new_image("timebar_brender", "timebar_brender.png");
465         new_image("clock_bg", "mclock_flat.png");
466         new_image("patchbay_bg", "patchbay_bg.png");
467         new_image("statusbar", "statusbar.png");
468 //      new_image("mscroll_filler", "mscroll_filler.png");
469
470         new_image_set("zoombar_menu", 3, "zoompopup_up.png", "zoompopup_hi.png", "zoompopup_dn.png");
471         new_image_set("zoombar_tumbler", 4, "zoomtumble_up.png", "zoomtumble_hi.png", "zoomtumble_bottom.png", "zoomtumble_top.png");
472
473         new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
474         new_image("mode_add", "mode_add.png");
475         new_image("mode_divide", "mode_divide.png");
476         new_image("mode_multiply", "mode_multiply.png");
477         new_image("mode_normal", "mode_normal.png");
478         new_image("mode_replace", "mode_replace.png");
479         new_image("mode_subtract", "mode_subtract.png");
480         new_image("mode_max", "mode_max.png");
481
482         new_image_set("plugin_on", 5, "plugin_on.png", "plugin_onhi.png", "plugin_onselect.png", "plugin_ondn.png", "plugin_onselecthi.png");
483         new_image_set("plugin_show", 5, "plugin_show.png", "plugin_showhi.png", "plugin_showselect.png", "plugin_showdn.png", "plugin_showselecthi.png");
484
485 // CWindow
486         new_image("cpanel_bg", "cpanel_bg.png");
487         new_image("cbuttons_left", "cbuttons_left.png");
488         new_image("cbuttons_right", "cbuttons_right.png");
489         new_image("cmeter_bg", "cmeter_bg.png");
490
491 // VWindow
492         new_image("vbuttons_left", "vbuttons_left.png");
493         new_image("vclock", "vclock.png");
494
495         new_image("preferences_bg", "preferences_bg.png");
496
497
498         new_image("new_bg", "new_bg.png");
499         new_image("setformat_bg", "setformat_bg.png");
500
501
502         timebar_view_data = new_image("timebar_view.png");
503
504         setformat_w = get_image("setformat_bg")->get_w();
505         setformat_h = get_image("setformat_bg")->get_h();
506         setformat_x1 = 15;
507         setformat_x2 = 100;
508
509         setformat_x3 = 315;
510         setformat_x4 = 415;
511         setformat_y1 = 20;
512         setformat_y2 = 85;
513         setformat_y3 = 125;
514         setformat_margin = 30;
515         setformat_channels_x = 25;
516         setformat_channels_y = 242;
517         setformat_channels_w = 250;
518         setformat_channels_h = 250;
519
520         loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10;
521         browse_pad = 20;
522
523
524         new_toggle("playpatch.png",
525                 "playpatch_up.png",
526                 "playpatch_hi.png",
527                 "playpatch_checked.png",
528                 "playpatch_dn.png",
529                 "playpatch_checkedhi.png",
530                 "playpatch_data");
531
532         new_toggle("recordpatch.png",
533                 "recordpatch_up.png",
534                 "recordpatch_hi.png",
535                 "recordpatch_checked.png",
536                 "recordpatch_dn.png",
537                 "recordpatch_checkedhi.png",
538                 "recordpatch_data");
539
540         new_toggle("gangpatch.png",
541                 "patch_up.png",
542                 "patch_hi.png",
543                 "patch_checked.png",
544                 "patch_dn.png",
545                 "patch_checkedhi.png",
546                 "gangpatch_data");
547
548         new_toggle("drawpatch.png",
549                 "patch_up.png",
550                 "patch_hi.png",
551                 "patch_checked.png",
552                 "patch_dn.png",
553                 "patch_checkedhi.png",
554                 "drawpatch_data");
555
556
557         new_image_set("mutepatch_data",
558                 5,
559                 "mutepatch_up.png",
560                 "mutepatch_hi.png",
561                 "mutepatch_checked.png",
562                 "mutepatch_dn.png",
563                 "mutepatch_checkedhi.png");
564
565         new_image_set("expandpatch_data",
566                 5,
567                 "expandpatch_up.png",
568                 "expandpatch_hi.png",
569                 "expandpatch_checked.png",
570                 "expandpatch_dn.png",
571                 "expandpatch_checkedhi.png");
572
573         build_bg_data();
574         build_overlays();
575
576
577
578
579         out_point = new_image_set(5,
580                 "out_up.png",
581                 "out_hi.png",
582                 "out_checked.png",
583                 "out_dn.png",
584                 "out_checkedhi.png");
585         in_point = new_image_set(5,
586                 "in_up.png",
587                 "in_hi.png",
588                 "in_checked.png",
589                 "in_dn.png",
590                 "in_checkedhi.png");
591
592         label_toggle = new_image_set(5,
593                 "labeltoggle_up.png",
594                 "labeltoggle_uphi.png",
595                 "label_checked.png",
596                 "labeltoggle_dn.png",
597                 "label_checkedhi.png");
598
599         ffmpeg_toggle = new_image_set(5,
600                 "ff_up.png",
601                 "ff_hi.png",
602                 "ff_checked.png",
603                 "ff_down.png",
604                 "ff_checkedhi.png");
605
606         shbtn_data = new_image_set(3,
607                 "shbtn_up.png",
608                 "shbtn_hi.png",
609                 "shbtn_dn.png");
610
611         new_image_set("histogram_carrot",
612                 5,
613                 "histogram_carrot_up.png",
614                 "histogram_carrot_hi.png",
615                 "histogram_carrot_checked.png",
616                 "histogram_carrot_dn.png",
617                 "histogram_carrot_checkedhi.png");
618
619
620         statusbar_cancel_data = new_image_set(3,
621                 "statusbar_cancel_up.png",
622                 "statusbar_cancel_hi.png",
623                 "statusbar_cancel_dn.png");
624
625
626         VFrame *editpanel_up = new_image("editpanel_up.png");
627         VFrame *editpanel_hi = new_image("editpanel_hi.png");
628         VFrame *editpanel_dn = new_image("editpanel_dn.png");
629         VFrame *editpanel_checked = new_image("editpanel_checked.png");
630         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
631
632         new_image("panel_divider", "panel_divider.png");
633         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
634         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
635         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
636
637         new_toggle("histogram.png",
638                 editpanel_up,
639                 editpanel_hi,
640                 editpanel_checked,
641                 editpanel_dn,
642                 editpanel_checkedhi,
643                 "histogram_toggle");
644         new_toggle("histogram_rgb.png",
645                 editpanel_up,
646                 editpanel_hi,
647                 editpanel_checked,
648                 editpanel_dn,
649                 editpanel_checkedhi,
650                 "histogram_rgb_toggle");
651         new_toggle("waveform.png",
652                 editpanel_up,
653                 editpanel_hi,
654                 editpanel_checked,
655                 editpanel_dn,
656                 editpanel_checkedhi,
657                 "waveform_toggle");
658         new_toggle("waveform_rgb.png",
659                 editpanel_up,
660                 editpanel_hi,
661                 editpanel_checked,
662                 editpanel_dn,
663                 editpanel_checkedhi,
664                 "waveform_rgb_toggle");
665         new_toggle("scope.png",
666                 editpanel_up,
667                 editpanel_hi,
668                 editpanel_checked,
669                 editpanel_dn,
670                 editpanel_checkedhi,
671                 "scope_toggle");
672
673         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
674         new_button("histogram.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram");
675
676
677         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
678         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
679         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
680         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
681         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
682         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
683         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
684         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
685         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
686         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
687         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
688         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
689         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
690         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
691         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
692         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn);
693         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn);
694         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
695         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
696         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
697         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn);
698         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
699         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
700         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
701         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
702         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
703
704
705         VFrame *transport_up = new_image("transportup.png");
706         VFrame *transport_hi = new_image("transporthi.png");
707         VFrame *transport_dn = new_image("transportdn.png");
708
709         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
710         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
711         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
712         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
713         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
714         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
715         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
716         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
717         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
718         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
719         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
720         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
721         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
722
723
724
725 // CWindow icons
726         new_image("cwindow_inactive", "cwindow_inactive.png");
727         new_image("cwindow_active", "cwindow_active.png");
728
729
730
731         new_image_set("category_button",
732                 3,
733                 "preferencesbutton_dn.png",
734                 "preferencesbutton_dnhi.png",
735                 "preferencesbutton_dnlo.png");
736
737         new_image_set("category_button_checked",
738                 3,
739                 "preferencesbutton_up.png",
740                 "preferencesbutton_uphi.png",
741                 "preferencesbutton_dnlo.png");
742
743
744
745
746
747         new_image_set("color3way_point",
748                 3,
749                 "color3way_up.png",
750                 "color3way_hi.png",
751                 "color3way_dn.png");
752
753         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
754         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
755         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
756         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
757         new_toggle("blank30x30.png",
758                    new_image("locklabels_locked.png"),
759                    new_image("locklabels_lockedhi.png"),
760                    new_image("locklabels_unlocked.png"),
761                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
762                    new_image("locklabels_unlockedhi.png"),
763                    "locklabels");
764
765         VFrame *cpanel_up = new_image("cpanel_up.png");
766         VFrame *cpanel_hi = new_image("cpanel_hi.png");
767         VFrame *cpanel_dn = new_image("cpanel_dn.png");
768         VFrame *cpanel_checked = new_image("cpanel_checked.png");
769         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
770
771
772         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
773         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
774         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
775         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
776         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
777         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
778         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
779         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
780         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
781         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
782
783         // toggle for tangent mode (compositor/tool window)
784         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
785         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
786
787
788         flush_images();
789
790         title_font = MEDIUMFONT_3D;
791         title_color = 0xeeeeff;
792         recordgui_fixed_color = YELLOW;
793         recordgui_variable_color = RED;
794
795         channel_position_color = MEYELLOW;
796         resources->meter_title_w = 25;
797
798         // (asset) edit info text color
799         edit_font_color = YELLOW;
800 }
801
802 #define VWINDOW_METER_MARGIN 5
803
804 void BlueDotTheme::build_bg_data()
805 {
806 // Audio settings
807         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
808
809 // Track bitmaps
810         new_image("resource1024", "resource1024.png");
811         new_image("resource512", "resource512.png");
812         new_image("resource256", "resource256.png");
813         new_image("resource128", "resource128.png");
814         new_image("resource64", "resource64.png");
815         new_image("resource32", "resource32.png");
816         new_image("plugin_bg_data", "plugin_bg.png");
817         new_image("title_bg_data", "title_bg.png");
818         new_image("vtimebar_bg_data", "vwindow_timebar.png");
819 }
820
821 void BlueDotTheme::build_overlays()
822 {
823         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
824         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
825         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
826         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
827         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
828         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
829 }
830
831 void BlueDotTheme::draw_rwindow_bg(RecordGUI *gui)
832 {
833 //      int y;
834 //      int margin = 50;
835 //      int margin2 = 80;
836 //      gui->draw_9segment(recordgui_batch_x - margin,
837 //              0,
838 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
839 //              recordgui_buttons_y,
840 //              rgui_batch);
841 //      gui->draw_3segmenth(recordgui_options_x - margin2,
842 //              recordgui_buttons_y - 5,
843 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
844 //              rgui_controls);
845 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
846 //      gui->draw_9segment(0,
847 //              y,
848 //              mwindow->session->rwindow_w,
849 //              mwindow->session->rwindow_h - y,
850 //              rgui_list);
851 }
852
853 void BlueDotTheme::draw_rmonitor_bg(RecordMonitorGUI *gui)
854 {
855 //      int margin = 45;
856 //      int panel_w = 300;
857 //      int x = rmonitor_meter_x - margin;
858 //      int w = mwindow->session->rmonitor_w - x;
859 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
860 //      gui->clear_box(0,
861 //              0,
862 //              mwindow->session->rmonitor_w,
863 //              mwindow->session->rmonitor_h);
864 //      gui->draw_9segment(x,
865 //              0,
866 //              w,
867 //              mwindow->session->rmonitor_h,
868 //              rmonitor_meters);
869 }
870
871
872
873
874
875
876 void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui)
877 {
878 // Button bar
879         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
880                 gui->menu_w(), get_image("mbutton_bg"));
881
882         int pdw = get_image("panel_divider")->get_w();
883         int x = mbuttons_x;
884         x += 9 * get_image("play")->get_w();
885         x += mtransport_margin;                                       // the control buttons
886
887         gui->draw_vframe(get_image("panel_divider"),
888                 x - toggle_margin / 2 - pdw / 2 + 2,
889                 mbuttons_y - 1);
890         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
891
892         gui->draw_vframe(get_image("panel_divider"),
893                 x - toggle_margin / 2 - pdw / 2 + 2,
894                 mbuttons_y - 1);
895
896         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
897         gui->draw_vframe(get_image("panel_divider"),
898                 x - toggle_margin / 2 - pdw / 2 + 2,
899                 mbuttons_y - 1);
900
901 // Clock
902         gui->draw_3segmenth(0,
903                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
904                 get_image("patchbay_bg")->get_w(),
905                 get_image("clock_bg"));
906
907 // Patchbay
908         gui->draw_3segmentv(patchbay_x,
909                 patchbay_y,
910                 patchbay_h,
911                 get_image("patchbay_bg"));
912
913 // Track canvas
914         gui->set_color(BLACK);
915         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
916                 mcanvas_y + mtimebar_h,
917                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
918                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
919
920 // Timebar
921         gui->draw_3segmenth(mtimebar_x,
922                 mtimebar_y,
923                 mtimebar_w,
924                 get_image("timebar_bg"));
925
926 // Zoombar
927         gui->set_color(0x1a1447);
928         gui->draw_box(mzoom_x,
929                 mzoom_y,
930                 mwindow->session->mwindow_w,
931                 25);
932
933 // Scrollbar filler
934 //      gui->draw_vframe(get_image("mscroll_filler"),
935 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
936 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
937
938 // Status
939         gui->draw_3segmenth(mzoom_x,
940                 mzoom_y,
941                 mzoom_w,
942                 get_image("statusbar"));
943
944
945 }
946
947 void BlueDotTheme::draw_cwindow_bg(CWindowGUI *gui)
948 {
949         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
950
951         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
952
953         if(mwindow->edl->session->cwindow_meter)
954         {
955                 gui->draw_3segmenth(cstatus_x,
956                         ccomposite_h,
957                         cmeter_x - widget_border - cstatus_x,
958                         get_image("cbuttons_right"));
959                 gui->draw_9segment(cmeter_x - widget_border,
960                         0,
961                         mwindow->session->cwindow_w - cmeter_x + widget_border,
962                         mwindow->session->cwindow_h,
963                         get_image("cmeter_bg"));
964         }
965         else
966         {
967                 gui->draw_3segmenth(cstatus_x,
968                         ccomposite_h,
969                         cmeter_x - widget_border - cstatus_x + 100,
970                         get_image("cbuttons_right"));
971         }
972 }
973
974 void BlueDotTheme::draw_vwindow_bg(VWindowGUI *gui)
975 {
976         gui->draw_3segmenth(0,
977                 vcanvas_h,
978                 vdivision_x,
979                 get_image("vbuttons_left"));
980         if(mwindow->edl->session->vwindow_meter)
981         {
982                 gui->draw_3segmenth(vdivision_x,
983                         vcanvas_h,
984                         vmeter_x - widget_border - vdivision_x,
985                         get_image("cbuttons_right"));
986                 gui->draw_9segment(vmeter_x - widget_border,
987                         0,
988                         mwindow->session->vwindow_w - vmeter_x + widget_border,
989                         mwindow->session->vwindow_h,
990                         get_image("cmeter_bg"));
991         }
992         else
993         {
994                 gui->draw_3segmenth(vdivision_x,
995                         vcanvas_h,
996                         vmeter_x - widget_border - vdivision_x + 100,
997                         get_image("cbuttons_right"));
998         }
999
1000 // Clock border
1001         gui->draw_3segmenth(vtime_x - 20,
1002                 vtime_y - 1,
1003                 vtime_w + 40,
1004                 get_image("vclock"));
1005 }
1006
1007 void BlueDotTheme::draw_preferences_bg(PreferencesWindow *gui)
1008 {
1009         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1010 }
1011
1012 void BlueDotTheme::draw_new_bg(NewWindow *gui)
1013 {
1014         gui->draw_vframe(get_image("new_bg"), 0, 0);
1015 }
1016
1017 void BlueDotTheme::draw_setformat_bg(SetFormatWindow *gui)
1018 {
1019         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1020 }
1021