add auto zoombar/status color, fix 3 batchrender boobies, rotate plugin tweaks, add...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / theme_bright / brighttheme.C
1
2 /*
3  * CINELERRA
4  * Copyright (C) 1997-2014 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #include "bcsignals.h"
23 #include "brighttheme.h"
24 #include "clip.h"
25 #include "cwindowgui.h"
26 #include "edl.h"
27 #include "edlsession.h"
28 #include "mainmenu.h"
29 #include "mainsession.h"
30 #include "mbuttons.h"
31 #include "meterpanel.h"
32 #include "mwindow.h"
33 #include "mwindowgui.h"
34 #include "new.h"
35 #include "patchbay.h"
36 #include "preferencesthread.h"
37 #include "recordgui.h"
38 #include "recordmonitor.h"
39 #include "setformat.h"
40 #include "statusbar.h"
41 #include "timebar.h"
42 #include "trackcanvas.h"
43 #include "vframe.h"
44 #include "vwindowgui.h"
45
46
47
48
49 PluginClient* new_plugin(PluginServer *server)
50 {
51         return new BrightThemeMain(server);
52 }
53
54
55
56
57
58
59
60 BrightThemeMain::BrightThemeMain(PluginServer *server)
61  : PluginTClient(server)
62 {
63 }
64
65 BrightThemeMain::~BrightThemeMain()
66 {
67 }
68
69 const char* BrightThemeMain::plugin_title() { return N_("Bright"); }
70
71 Theme* BrightThemeMain::new_theme()
72 {
73         theme = new BrightTheme;
74         extern unsigned char _binary_theme_bright_data_start[];
75         theme->set_data(_binary_theme_bright_data_start);
76         return theme;
77 }
78
79
80
81
82
83
84
85
86 BrightTheme::BrightTheme()
87  : Theme()
88 {
89 }
90
91 BrightTheme::~BrightTheme()
92 {
93         delete camerakeyframe_data;
94         delete channel_position_data;
95         delete keyframe_data;
96         delete maskkeyframe_data;
97         delete modekeyframe_data;
98         delete pankeyframe_data;
99         delete projectorkeyframe_data;
100 }
101
102 void BrightTheme::initialize()
103 {
104         BC_Resources *resources = BC_WindowBase::get_resources();
105
106
107         resources->text_default = 0x000000;
108         resources->text_background = 0xffffff;
109         resources->text_background_disarmed = 0xaaaaaa;
110         resources->text_background_hi = 0xffffff;
111         resources->text_border1 = 0x000000;
112         resources->text_border2 = 0xffffff;
113         resources->text_border3 = 0xffffff;
114         resources->text_border2_hi = 0x000000;
115         resources->text_border3_hi = 0x000000;
116         resources->text_border4 = 0x000000;
117         resources->text_inactive_highlight = 0xd0d0d0;
118         resources->text_highlight = 0xe0e0e0;
119         resources->text_selected_highlight = 0xf0e0e0;
120
121         resources->bg_color = 0xffffff;
122         resources->default_text_color = 0x000000;
123         resources->menu_title_text = 0x000000;
124         resources->popup_title_text = 0x000000;
125         resources->menu_item_text = 0x000000;
126         resources->generic_button_margin = 20;
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         resources->tooltip_bg_color = WHITE;
132         clock_bg_color = WHITE;
133
134         resources->menu_light = 0x000000;
135         resources->menu_highlighted = 0xe0e0e0;
136         resources->menu_down = 0xc0c0c0;
137         resources->menu_up = 0xffffff;
138         resources->menu_shadow = 0x000000;
139         resources->popupmenu_margin = 10;
140         resources->popupmenu_triangle_margin = 15;
141
142         resources->listbox_title_color = 0x000000;
143
144         resources->listbox_title_overlap = 20;
145         resources->listbox_title_margin = 20;
146         resources->listbox_title_hotspot = 20;
147         resources->listbox_border1 = 0x000000;
148         resources->listbox_border2 = 0xffffff;
149         resources->listbox_border3 = 0xffffff;
150         resources->listbox_border2_hi = 0x000000;
151         resources->listbox_border3_hi = 0x000000;
152         resources->listbox_border4 = 0x000000;
153         resources->listbox_highlighted = 0xfefefe;
154         resources->listbox_inactive = 0xffffff;
155         resources->listbox_selected = 0xe0e0e0;
156         resources->listbox_bg = 0;
157         resources->listbox_text = 0x000000;
158
159         resources->filebox_margin = 130;
160         resources->file_color = 0x000000;
161         resources->directory_color = 0x0000ff;
162
163         resources->scroll_minhandle = 24;
164
165         new_toggle("loadmode_new.png",
166                 "loadmode_up.png",
167                 "loadmode_hi.png",
168                 "loadmode_checked.png",
169                 "loadmode_dn.png",
170                 "loadmode_checkedhi.png",
171                 "loadmode_new");
172         new_toggle("loadmode_none.png",
173                 "loadmode_up.png",
174                 "loadmode_hi.png",
175                 "loadmode_checked.png",
176                 "loadmode_dn.png",
177                 "loadmode_checkedhi.png",
178                 "loadmode_none");
179         new_toggle("loadmode_newcat.png",
180                 "loadmode_up.png",
181                 "loadmode_hi.png",
182                 "loadmode_checked.png",
183                 "loadmode_dn.png",
184                 "loadmode_checkedhi.png",
185                 "loadmode_newcat");
186         new_toggle("loadmode_cat.png",
187                 "loadmode_up.png",
188                 "loadmode_hi.png",
189                 "loadmode_checked.png",
190                 "loadmode_dn.png",
191                 "loadmode_checkedhi.png",
192                 "loadmode_cat");
193         new_toggle("loadmode_newtracks.png",
194                 "loadmode_up.png",
195                 "loadmode_hi.png",
196                 "loadmode_checked.png",
197                 "loadmode_dn.png",
198                 "loadmode_checkedhi.png",
199                 "loadmode_newtracks");
200         new_toggle("loadmode_paste.png",
201                 "loadmode_up.png",
202                 "loadmode_hi.png",
203                 "loadmode_checked.png",
204                 "loadmode_dn.png",
205                 "loadmode_checkedhi.png",
206                 "loadmode_paste");
207         new_toggle("loadmode_resource.png",
208                 "loadmode_up.png",
209                 "loadmode_hi.png",
210                 "loadmode_checked.png",
211                 "loadmode_dn.png",
212                 "loadmode_checkedhi.png",
213                 "loadmode_resource");
214         new_toggle("loadmode_nested.png",
215                 "loadmode_up.png",
216                 "loadmode_hi.png",
217                 "loadmode_checked.png",
218                 "loadmode_dn.png",
219                 "loadmode_checkedhi.png",
220                 "loadmode_nested");
221
222
223         resources->filebox_icons_images = new_button("icons.png",
224                 "fileboxbutton_up.png",
225                 "fileboxbutton_hi.png",
226                 "fileboxbutton_dn.png",
227                 "filebox_icons");
228
229         resources->filebox_text_images = new_button("text.png",
230                 "fileboxbutton_up.png",
231                 "fileboxbutton_hi.png",
232                 "fileboxbutton_dn.png",
233                 "filebox_text");
234
235         resources->filebox_newfolder_images = new_button("folder.png",
236                 "fileboxbutton_up.png",
237                 "fileboxbutton_hi.png",
238                 "fileboxbutton_dn.png",
239                 "filebox_newfolder");
240
241         resources->filebox_rename_images = new_button("rename.png",
242                 "fileboxbutton_up.png",
243                 "fileboxbutton_hi.png",
244                 "fileboxbutton_dn.png",
245                 "filebox_rename");
246
247         resources->filebox_updir_images = new_button("updir.png",
248                 "fileboxbutton_up.png",
249                 "fileboxbutton_hi.png",
250                 "fileboxbutton_dn.png",
251                 "filebox_updir");
252
253         resources->filebox_delete_images = new_button("delete.png",
254                 "fileboxbutton_up.png",
255                 "fileboxbutton_hi.png",
256                 "fileboxbutton_dn.png",
257                 "filebox_delete");
258
259         resources->filebox_reload_images = new_button("reload.png",
260                 "fileboxbutton_up.png",
261                 "fileboxbutton_hi.png",
262                 "fileboxbutton_dn.png",
263                 "filebox_reload");
264
265
266         resources->filebox_descend_images = new_button("openfolder.png",
267                 "bigbutton_up.png",
268                 "bigbutton_hi.png",
269                 "bigbutton_dn.png",
270                 "filebox_descend");
271
272         resources->usethis_button_images =
273                 resources->ok_images = new_button("ok.png",
274                 "bigbutton_up.png",
275                 "bigbutton_hi.png",
276                 "bigbutton_dn.png",
277                 "ok_button");
278
279         new_button("ok.png",
280                 "bigbutton_up.png",
281                 "bigbutton_hi.png",
282                 "bigbutton_dn.png",
283                 "new_ok_images");
284
285         resources->cancel_images = new_button("cancel.png",
286                 "bigbutton_up.png",
287                 "bigbutton_hi.png",
288                 "bigbutton_dn.png",
289                 "cancel_button");
290
291         new_button("cancel.png",
292                 "bigbutton_up.png",
293                 "bigbutton_hi.png",
294                 "bigbutton_dn.png",
295                 "new_cancel_images");
296
297         resources->medium_7segment = new_image_set(TOTAL_7SEGMENT,
298                 "0.png",
299                 "1.png",
300                 "2.png",
301                 "3.png",
302                 "4.png",
303                 "5.png",
304                 "6.png",
305                 "7.png",
306                 "8.png",
307                 "9.png",
308                 "colon.png",
309                 "period.png",
310                 "a.png",
311                 "b.png",
312                 "c.png",
313                 "d.png",
314                 "e.png",
315                 "f.png",
316                 "space.png",
317                 "dash.png");
318
319         resources->bar_data = new_image("bar", "bar.png");
320
321
322         resources->min_menu_w = 96;
323         resources->menu_popup_bg = new_image("menu_popup_bg.png");
324         resources->menu_item_bg = new_image_set(3,
325                 "menuitem_up.png",
326                 "menuitem_hi.png",
327                 "menuitem_dn.png");
328         resources->menu_bar_bg = new_image("menubar_bg.png");
329         resources->menu_title_bg = new_image_set(3,
330                 "menubar_up.png",
331                 "menubar_hi.png",
332                 "menubar_dn.png");
333
334
335
336         resources->toggle_text_margin = resources->generic_button_margin;
337         resources->toggle_highlight_bg = new_image("toggle_highlight_bg",
338                 "generic_up.png");
339
340         resources->generic_button_images = new_image_set(3,
341                         "generic_up.png",
342                         "generic_hi.png",
343                         "generic_dn.png");
344         resources->horizontal_slider_data = new_image_set(6,
345                         "hslider_fg_up.png",
346                         "hslider_fg_hi.png",
347                         "hslider_fg_dn.png",
348                         "hslider_bg_up.png",
349                         "hslider_bg_hi.png",
350                         "hslider_bg_dn.png");
351         resources->vertical_slider_data = new_image_set(6,
352                         "hslider_fg_up.png",
353                         "hslider_fg_hi.png",
354                         "hslider_fg_dn.png",
355                         "hslider_bg_up.png",
356                         "hslider_bg_hi.png",
357                         "hslider_bg_dn.png");
358         for( int i=0; i<6; ++i )
359                 resources->vertical_slider_data[i]->rotate90();
360
361         resources->progress_images = new_image_set(2,
362                         "progress_bg.png",
363                         "progress_hi.png");
364         resources->tumble_data = new_image_set(4,
365                 "tumble_up.png",
366                 "tumble_hi.png",
367                 "tumble_bottom.png",
368                 "tumble_top.png");
369         resources->listbox_button = new_button4("listbox_button.png",
370                 "editpanel_up.png",
371                 "editpanel_hi.png",
372                 "editpanel_dn.png",
373                 "editpanel_hi.png",
374                 "listbox_button");
375         resources->listbox_column = new_image_set(3,
376                 "column_up.png",
377                 "column_hi.png",
378                 "column_dn.png");
379         resources->listbox_up = new_image("listbox_up.png");
380         resources->listbox_dn = new_image("listbox_dn.png");
381         resources->pan_data = new_image_set(7,
382                         "pan_up.png",
383                         "pan_hi.png",
384                         "pan_popup.png",
385                         "pan_channel.png",
386                         "pan_stick.png",
387                         "pan_channel_small.png",
388                         "pan_stick_small.png");
389         resources->pan_text_color = BLACK;
390
391         resources->pot_images = new_image_set(3,
392                 "bright_pot_up.png",
393                 "bright_pot_hi.png",
394                 "bright_pot_dn.png");
395
396         resources->checkbox_images = new_image_set(5,
397                 "bright_checkbox_up.png",
398                 "bright_checkbox_hi.png",
399                 "bright_checkbox_checked.png",
400                 "bright_checkbox_dn.png",
401                 "bright_checkbox_checkedhi.png");
402
403         resources->radial_images = new_image_set(5,
404                 "radial_up.png",
405                 "radial_hi.png",
406                 "radial_checked.png",
407                 "radial_dn.png",
408                 "radial_checkedhi.png");
409
410         resources->xmeter_images = new_image_set(7,
411                 "xmeter_normal.png",
412                 "xmeter_green.png",
413                 "xmeter_red.png",
414                 "xmeter_yellow.png",
415                 "xmeter_white.png",
416                 "xmeter_over.png",
417                 "downmix51_2.png");
418         resources->ymeter_images = new_image_set(7,
419                 "ymeter_normal.png",
420                 "ymeter_green.png",
421                 "ymeter_red.png",
422                 "ymeter_yellow.png",
423                 "ymeter_white.png",
424                 "ymeter_over.png",
425                 "downmix51_2.png");
426
427         resources->hscroll_data = new_image_set(10,
428                         "bright_hscroll_handle_up.png",
429                         "bright_hscroll_handle_hi.png",
430                         "bright_hscroll_handle_dn.png",
431                         "bright_hscroll_handle_bg.png",
432                         "bright_hscroll_left_up.png",
433                         "bright_hscroll_left_hi.png",
434                         "bright_hscroll_left_dn.png",
435                         "bright_hscroll_right_up.png",
436                         "bright_hscroll_right_hi.png",
437                         "bright_hscroll_right_dn.png");
438
439         resources->vscroll_data = new_image_set(10,
440                         "bright_vscroll_handle_up.png",
441                         "bright_vscroll_handle_hi.png",
442                         "bright_vscroll_handle_dn.png",
443                         "bright_vscroll_handle_bg.png",
444                         "bright_vscroll_left_up.png",
445                         "bright_vscroll_left_hi.png",
446                         "bright_vscroll_left_dn.png",
447                         "bright_vscroll_right_up.png",
448                         "bright_vscroll_right_hi.png",
449                         "bright_vscroll_right_dn.png");
450
451
452         new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
453         new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip");
454         new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip");
455         new_button("swap_extents.png",
456                 "editpanel_up.png",
457                 "editpanel_hi.png",
458                 "editpanel_dn.png",
459                 "swap_extents");
460
461
462
463
464         preferences_category_overlap = 0;
465         preferencescategory_x = 0;
466         preferencescategory_y = 5;
467         preferencestitle_x = 5;
468         preferencestitle_y = 10;
469         preferencesoptions_x = 5;
470         preferencesoptions_y = 0;
471
472 // MWindow
473         message_normal = resources->text_default;
474         audio_color = 0x00ff00;
475         assetedit_color = BLACK;
476         mtransport_margin = 20;
477         toggle_margin = 20;
478         timebar_cursor_color = BLACK;
479
480         new_image("mbutton_bg", "mbutton_bg.png");
481         new_image("timebar_bg", "timebar_bg_flat.png");
482         new_image("timebar_brender", "timebar_brender.png");
483         new_image("clock_bg", "mclock_flat.png");
484         new_image("patchbay_bg", "patchbay_bg.png");
485         new_image("statusbar", "statusbar.png");
486 //      new_image("mscroll_filler", "mscroll_filler.png");
487         pane_color = BLACK;
488         drag_pane_color = BLACK;
489
490         new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane");
491         new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png");
492         new_image_set("ypane", 3, "ypane_up.png", "ypane_hi.png", "ypane_dn.png");
493
494         new_image_set("zoombar_menu", 3, "zoompopup_up.png", "zoompopup_hi.png", "zoompopup_dn.png");
495         new_image_set("zoombar_tumbler", 4, "tumble_up.png", "tumble_hi.png", "tumble_bottom.png", "tumble_top.png");
496
497         new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
498         new_image("mode_add", "mode_add.png");
499         new_image("mode_divide", "mode_divide.png");
500         new_image("mode_multiply", "mode_multiply.png");
501         new_image("mode_normal", "mode_normal.png");
502         new_image("mode_replace", "mode_replace.png");
503         new_image("mode_subtract", "mode_subtract.png");
504         new_image("mode_max", "mode_max.png");
505         new_image("mode_min", "mode_min.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 = 100;
533
534         setformat_x3 = 315;
535         setformat_x4 = 415;
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                 "patch_up.png",
551                 "patch_hi.png",
552                 "patch_checked.png",
553                 "patch_dn.png",
554                 "patch_checkedhi.png",
555                 "playpatch_data");
556
557         new_toggle("recordpatch.png",
558                 "patch_up.png",
559                 "patch_hi.png",
560                 "patch_checked.png",
561                 "patch_dn.png",
562                 "patch_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         shbtn_data = new_image_set(3,
646                 "shbtn_up.png",
647                 "shbtn_hi.png",
648                 "shbtn_dn.png");
649
650         new_image_set("preset_edit",
651                 3,
652                 "preset_edit0.png",
653                 "preset_edit1.png",
654                 "preset_edit2.png");
655
656         new_image_set("histogram_carrot",
657                 5,
658                 "histogram_carrot_up.png",
659                 "histogram_carrot_hi.png",
660                 "histogram_carrot_checked.png",
661                 "histogram_carrot_dn.png",
662                 "histogram_carrot_checkedhi.png");
663
664
665         statusbar_cancel_data = new_image_set(3,
666                 "statusbar_cancel_up.png",
667                 "statusbar_cancel_hi.png",
668                 "statusbar_cancel_dn.png");
669
670
671         VFrame *editpanel_up = new_image("editpanel_up.png");
672         VFrame *editpanel_hi = new_image("editpanel_hi.png");
673         VFrame *editpanel_dn = new_image("editpanel_dn.png");
674         VFrame *editpanel_checked = new_image("editpanel_checked.png");
675         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
676
677         new_image("panel_divider", "panel_divider.png");
678         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
679         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
680         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
681         new_button("lok.png", editpanel_up, editpanel_hi, editpanel_dn, "lok");
682
683         new_toggle("histogram_toggle.png",
684                 editpanel_up,
685                 editpanel_hi,
686                 editpanel_checked,
687                 editpanel_dn,
688                 editpanel_checkedhi,
689                 "histogram_toggle");
690         new_toggle("histogram_rgb.png",
691                 editpanel_up,
692                 editpanel_hi,
693                 editpanel_checked,
694                 editpanel_dn,
695                 editpanel_checkedhi,
696                 "histogram_rgb_toggle");
697         new_toggle("waveform.png",
698                 editpanel_up,
699                 editpanel_hi,
700                 editpanel_checked,
701                 editpanel_dn,
702                 editpanel_checkedhi,
703                 "waveform_toggle");
704         new_toggle("waveform_rgb.png",
705                 editpanel_up,
706                 editpanel_hi,
707                 editpanel_checked,
708                 editpanel_dn,
709                 editpanel_checkedhi,
710                 "waveform_rgb_toggle");
711         new_toggle("scope.png",
712                 editpanel_up,
713                 editpanel_hi,
714                 editpanel_checked,
715                 editpanel_dn,
716                 editpanel_checkedhi,
717                 "scope_toggle");
718
719         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
720         new_button("histogram_img.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram_img");
721
722         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
723         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
724         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
725         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
726         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
727         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
728         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
729         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
730         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
731         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
732         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
733         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
734         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
735         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
736         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
737         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn, "overbutton");
738         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn, "overwritebutton");
739         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
740         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
741         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
742         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn, "slicebutton");
743         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
744         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
745         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
746         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
747         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
748
749
750         VFrame *transport_up = new_image("transportup.png");
751         VFrame *transport_hi = new_image("transporthi.png");
752         VFrame *transport_dn = new_image("transportdn.png");
753
754         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
755         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
756         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
757         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
758         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
759         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
760         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
761         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
762         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
763         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
764         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
765         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
766         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
767
768
769
770 // CWindow icons
771         new_image("cwindow_inactive", "cwindow_inactive.png");
772         new_image("cwindow_active", "cwindow_active.png");
773
774
775
776         new_image_set("category_button",
777                 3,
778                 "preferencesbutton_dn.png",
779                 "preferencesbutton_dnhi.png",
780                 "preferencesbutton_dnlo.png");
781
782         new_image_set("category_button_checked",
783                 3,
784                 "preferencesbutton_up.png",
785                 "preferencesbutton_uphi.png",
786                 "preferencesbutton_dnlo.png");
787
788
789
790         new_image_set("color3way_point",
791                 3,
792                 "color3way_up.png",
793                 "color3way_hi.png",
794                 "color3way_dn.png");
795
796
797
798
799         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
800         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
801         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
802         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
803         new_toggle("blank30x30.png",
804                    new_image("locklabels_locked.png"),
805                    new_image("locklabels_lockedhi.png"),
806                    new_image("locklabels_unlocked.png"),
807                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
808                    new_image("locklabels_unlockedhi.png"),
809                    "locklabels");
810
811         VFrame *cpanel_up = new_image("cpanel_up.png");
812         VFrame *cpanel_hi = new_image("cpanel_hi.png");
813         VFrame *cpanel_dn = new_image("cpanel_dn.png");
814         VFrame *cpanel_checked = new_image("cpanel_checked.png");
815         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
816
817
818         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
819         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
820         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
821         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
822         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
823         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
824         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
825         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
826         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
827         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
828
829         // toggle for tangent mode (compositor/tool window)
830         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
831         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
832
833
834         flush_images();
835
836         title_font = MEDIUMFONT;
837         title_color = 0x000000;
838         recordgui_fixed_color = BLACK;
839         recordgui_variable_color = BLACK;
840
841         channel_position_color = BLACK;
842         resources->meter_title_w = 25;
843 }
844
845
846
847 void BrightTheme::build_bg_data()
848 {
849 // Audio settings
850         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
851
852 // Track bitmaps
853         new_image("resource1024", "resource1024.png");
854         new_image("resource512", "resource512.png");
855         new_image("resource256", "resource256.png");
856         new_image("resource128", "resource128.png");
857         new_image("resource64", "resource64.png");
858         new_image("resource32", "resource32.png");
859         new_image("plugin_bg_data", "plugin_bg.png");
860         new_image("title_bg_data", "title_bg.png");
861         new_image("vtimebar_bg_data", "vwindow_timebar.png");
862 }
863
864
865
866 void BrightTheme::build_overlays()
867 {
868         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
869         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
870         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
871         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
872         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
873         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
874 }
875
876
877
878
879
880
881
882
883
884 void BrightTheme::draw_rwindow_bg(RecordGUI *gui)
885 {
886 //      int y;
887 //      int margin = 50;
888 //      int margin2 = 80;
889 //      gui->draw_9segment(recordgui_batch_x - margin,
890 //              0,
891 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
892 //              recordgui_buttons_y,
893 //              rgui_batch);
894 //      gui->draw_3segmenth(recordgui_options_x - margin2,
895 //              recordgui_buttons_y - 5,
896 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
897 //              rgui_controls);
898 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
899 //      gui->draw_9segment(0,
900 //              y,
901 //              mwindow->session->rwindow_w,
902 //              mwindow->session->rwindow_h - y,
903 //              rgui_list);
904 }
905
906 void BrightTheme::draw_rmonitor_bg(RecordMonitorGUI *gui)
907 {
908 //      int margin = 45;
909 //      int panel_w = 300;
910 //      int x = rmonitor_meter_x - margin;
911 //      int w = mwindow->session->rmonitor_w - x;
912 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
913 //      gui->clear_box(0,
914 //              0,
915 //              mwindow->session->rmonitor_w,
916 //              mwindow->session->rmonitor_h);
917 //      gui->draw_9segment(x,
918 //              0,
919 //              w,
920 //              mwindow->session->rmonitor_h,
921 //              rmonitor_meters);
922 }
923
924
925
926
927
928
929 void BrightTheme::draw_mwindow_bg(MWindowGUI *gui)
930 {
931 // Button bar
932         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
933                 gui->menu_w(), get_image("mbutton_bg"));
934
935         gui->draw_vframe(get_image("panel_divider"),
936                 mbuttons_x + 228,
937                 mbuttons_y - 1);
938
939         gui->draw_vframe(get_image("panel_divider"),
940                 mbuttons_x + 320,
941                 mbuttons_y - 1);
942
943 // Clock
944         gui->draw_3segmenth(0,
945                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
946                 get_image("patchbay_bg")->get_w(),
947                 get_image("clock_bg"));
948
949 // Patchbay
950         gui->draw_3segmentv(patchbay_x,
951                 patchbay_y,
952                 patchbay_h,
953                 get_image("patchbay_bg"));
954
955 // Track canvas
956         int patchbay_w = get_image("patchbay_bg")->get_w();
957         gui->clear_box(mcanvas_x + patchbay_w,
958                 mcanvas_y + mtimebar_h,
959                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT) - patchbay_w,
960                 patchbay_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
961
962 // Timebar
963         gui->draw_3segmenth(mtimebar_x,
964                 mtimebar_y,
965                 mtimebar_w,
966                 get_image("timebar_bg"));
967
968 // Zoombar
969 //      gui->set_color(0x373737);
970 //      gui->draw_box(mzoom_x,
971 //              mzoom_y,
972 //              mwindow->session->mwindow_w,
973 //              25);
974
975 // Scrollbar filler
976 //      gui->draw_vframe(get_image("mscroll_filler"),
977 //              mhscroll_x + mhscroll_w,
978 //              mvscroll_y + mvscroll_h);
979
980 // Status
981         gui->draw_3segmenth(mzoom_x,
982                 mzoom_y,
983                 mzoom_w,
984                 get_image("statusbar"));
985
986
987 }
988
989 void BrightTheme::draw_cwindow_bg(CWindowGUI *gui)
990 {
991         BC_Resources *resources = BC_WindowBase::get_resources();
992
993         gui->set_color(WHITE);
994         gui->draw_box(ccanvas_x + ccanvas_w - resources->vscroll_data[0]->get_w(),
995                 ccanvas_y + ccanvas_h - resources->hscroll_data[0]->get_h(),
996                 resources->vscroll_data[0]->get_w(),
997                 resources->hscroll_data[0]->get_h());
998         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
999         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
1000         if(mwindow->edl->session->cwindow_meter)
1001         {
1002                 gui->draw_3segmenth(cstatus_x,
1003                         ccomposite_h,
1004                         cmeter_x - widget_border - cstatus_x,
1005                         get_image("cbuttons_right"));
1006                 gui->draw_9segment(cmeter_x - widget_border,
1007                         0,
1008                         mwindow->session->cwindow_w - cmeter_x + widget_border,
1009                         mwindow->session->cwindow_h,
1010                         get_image("cmeter_bg"));
1011         }
1012         else
1013         {
1014                 gui->draw_3segmenth(cstatus_x,
1015                         ccomposite_h,
1016                         cmeter_x - widget_border - cstatus_x + 100,
1017                         get_image("cbuttons_right"));
1018         }
1019 }
1020
1021 void BrightTheme::draw_vwindow_bg(VWindowGUI *gui)
1022 {
1023         gui->draw_3segmenth(0,
1024                 vcanvas_h,
1025                 vdivision_x,
1026                 get_image("vbuttons_left"));
1027
1028
1029         if(mwindow->edl->session->vwindow_meter)
1030         {
1031                 gui->draw_3segmenth(vdivision_x,
1032                         vcanvas_h,
1033                         vmeter_x - widget_border - vdivision_x,
1034                         get_image("cbuttons_right"));
1035                 gui->draw_9segment(vmeter_x - widget_border,
1036                         0,
1037                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1038                         mwindow->session->vwindow_h,
1039                         get_image("cmeter_bg"));
1040         }
1041         else
1042         {
1043                 gui->draw_3segmenth(vdivision_x,
1044                         vcanvas_h,
1045                         vmeter_x - widget_border - vdivision_x + 100,
1046                         get_image("cbuttons_right"));
1047         }
1048
1049 // Clock border
1050         gui->draw_3segmenth(vtime_x - 20,
1051                 vtime_y - 1,
1052                 vtime_w + 40,
1053                 get_image("vclock"));
1054 }
1055
1056
1057
1058 void BrightTheme::draw_preferences_bg(PreferencesWindow *gui)
1059 {
1060         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1061 }
1062
1063
1064 void BrightTheme::draw_new_bg(NewWindow *gui)
1065 {
1066         gui->draw_vframe(get_image("new_bg"), 0, 0);
1067 }
1068
1069 void BrightTheme::draw_setformat_bg(SetFormatWindow *gui)
1070 {
1071         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1072 }
1073
1074
1075