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