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