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