update internationalization 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         new_image_set("histogram_carrot",
599                 5,
600                 "histogram_carrot_up.png",
601                 "histogram_carrot_hi.png",
602                 "histogram_carrot_checked.png",
603                 "histogram_carrot_dn.png",
604                 "histogram_carrot_checkedhi.png");
605
606
607         statusbar_cancel_data = new_image_set(3,
608                 "statusbar_cancel_up.png",
609                 "statusbar_cancel_hi.png",
610                 "statusbar_cancel_dn.png");
611
612
613         VFrame *editpanel_up = new_image("editpanel_up.png");
614         VFrame *editpanel_hi = new_image("editpanel_hi.png");
615         VFrame *editpanel_dn = new_image("editpanel_dn.png");
616         VFrame *editpanel_checked = new_image("editpanel_checked.png");
617         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
618
619         new_image("panel_divider", "panel_divider.png");
620         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
621         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
622         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
623
624         new_toggle("histogram.png",
625                 editpanel_up,
626                 editpanel_hi,
627                 editpanel_checked,
628                 editpanel_dn,
629                 editpanel_checkedhi,
630                 "histogram_toggle");
631         new_toggle("histogram_rgb.png",
632                 editpanel_up,
633                 editpanel_hi,
634                 editpanel_checked,
635                 editpanel_dn,
636                 editpanel_checkedhi,
637                 "histogram_rgb_toggle");
638         new_toggle("waveform.png",
639                 editpanel_up,
640                 editpanel_hi,
641                 editpanel_checked,
642                 editpanel_dn,
643                 editpanel_checkedhi,
644                 "waveform_toggle");
645         new_toggle("waveform_rgb.png",
646                 editpanel_up,
647                 editpanel_hi,
648                 editpanel_checked,
649                 editpanel_dn,
650                 editpanel_checkedhi,
651                 "waveform_rgb_toggle");
652         new_toggle("scope.png",
653                 editpanel_up,
654                 editpanel_hi,
655                 editpanel_checked,
656                 editpanel_dn,
657                 editpanel_checkedhi,
658                 "scope_toggle");
659
660         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
661         new_button("histogram.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram");
662
663         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
664         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
665         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
666         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
667         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
668         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
669         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
670         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
671         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
672         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
673         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
674         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
675         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
676         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
677         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
678         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn);
679         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn);
680         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
681         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
682         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
683         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn);
684         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
685         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
686         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
687         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
688
689
690         VFrame *transport_up = new_image("transportup.png");
691         VFrame *transport_hi = new_image("transporthi.png");
692         VFrame *transport_dn = new_image("transportdn.png");
693
694         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
695         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
696         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
697         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
698         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
699         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
700         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
701         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
702         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
703         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
704         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
705         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
706         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
707
708
709
710 // CWindow icons
711         new_image("cwindow_inactive", "cwindow_inactive.png");
712         new_image("cwindow_active", "cwindow_active.png");
713
714
715
716         new_image_set("category_button",
717                 3,
718                 "preferencesbutton_dn.png",
719                 "preferencesbutton_dnhi.png",
720                 "preferencesbutton_dnlo.png");
721
722         new_image_set("category_button_checked",
723                 3,
724                 "preferencesbutton_up.png",
725                 "preferencesbutton_uphi.png",
726                 "preferencesbutton_dnlo.png");
727
728
729
730         new_image_set("color3way_point",
731                 3,
732                 "color3way_up.png",
733                 "color3way_hi.png",
734                 "color3way_dn.png");
735
736
737
738
739         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
740         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
741         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
742         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
743         new_toggle("blank30x30.png",
744                    new_image("locklabels_locked.png"),
745                    new_image("locklabels_lockedhi.png"),
746                    new_image("locklabels_unlocked.png"),
747                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
748                    new_image("locklabels_unlockedhi.png"),
749                    "locklabels");
750
751         VFrame *cpanel_up = new_image("cpanel_up.png");
752         VFrame *cpanel_hi = new_image("cpanel_hi.png");
753         VFrame *cpanel_dn = new_image("cpanel_dn.png");
754         VFrame *cpanel_checked = new_image("cpanel_checked.png");
755         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
756
757
758         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
759         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
760         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
761         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
762         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
763         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
764         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
765         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
766         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
767         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
768
769         // toggle for tangent mode (compositor/tool window)
770         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
771         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
772
773
774         flush_images();
775
776         title_font = MEDIUMFONT;
777         title_color = 0x000000;
778         recordgui_fixed_color = BLACK;
779         recordgui_variable_color = BLACK;
780
781         channel_position_color = BLACK;
782         resources->meter_title_w = 25;
783 }
784
785
786
787 void BrightTheme::build_bg_data()
788 {
789 // Audio settings
790         channel_position_data = new VFrame(get_image_data("channel_position.png"));
791
792 // Track bitmaps
793         new_image("resource1024", "resource1024.png");
794         new_image("resource512", "resource512.png");
795         new_image("resource256", "resource256.png");
796         new_image("resource128", "resource128.png");
797         new_image("resource64", "resource64.png");
798         new_image("resource32", "resource32.png");
799         new_image("plugin_bg_data", "plugin_bg.png");
800         new_image("title_bg_data", "title_bg.png");
801         new_image("vtimebar_bg_data", "vwindow_timebar.png");
802 }
803
804
805
806 void BrightTheme::build_overlays()
807 {
808         keyframe_data = new VFrame(get_image_data("keyframe3.png"));
809         camerakeyframe_data = new VFrame(get_image_data("camerakeyframe.png"));
810         maskkeyframe_data = new VFrame(get_image_data("maskkeyframe.png"));
811         modekeyframe_data = new VFrame(get_image_data("modekeyframe.png"));
812         pankeyframe_data = new VFrame(get_image_data("pankeyframe.png"));
813         projectorkeyframe_data = new VFrame(get_image_data("projectorkeyframe.png"));
814 }
815
816
817
818
819
820
821
822
823
824 void BrightTheme::draw_rwindow_bg(RecordGUI *gui)
825 {
826 //      int y;
827 //      int margin = 50;
828 //      int margin2 = 80;
829 //      gui->draw_9segment(recordgui_batch_x - margin,
830 //              0,
831 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
832 //              recordgui_buttons_y,
833 //              rgui_batch);
834 //      gui->draw_3segmenth(recordgui_options_x - margin2,
835 //              recordgui_buttons_y - 5,
836 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
837 //              rgui_controls);
838 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
839 //      gui->draw_9segment(0,
840 //              y,
841 //              mwindow->session->rwindow_w,
842 //              mwindow->session->rwindow_h - y,
843 //              rgui_list);
844 }
845
846 void BrightTheme::draw_rmonitor_bg(RecordMonitorGUI *gui)
847 {
848 //      int margin = 45;
849 //      int panel_w = 300;
850 //      int x = rmonitor_meter_x - margin;
851 //      int w = mwindow->session->rmonitor_w - x;
852 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
853 //      gui->clear_box(0,
854 //              0,
855 //              mwindow->session->rmonitor_w,
856 //              mwindow->session->rmonitor_h);
857 //      gui->draw_9segment(x,
858 //              0,
859 //              w,
860 //              mwindow->session->rmonitor_h,
861 //              rmonitor_meters);
862 }
863
864
865
866
867
868
869 void BrightTheme::draw_mwindow_bg(MWindowGUI *gui)
870 {
871 // Button bar
872         gui->draw_3segmenth(mbuttons_x,
873                 mbuttons_y - 1,
874                 mwindow->session->mwindow_w,
875                 get_image("mbutton_bg"));
876
877         gui->draw_vframe(get_image("panel_divider"),
878                 mbuttons_x + 228,
879                 mbuttons_y - 1);
880
881         gui->draw_vframe(get_image("panel_divider"),
882                 mbuttons_x + 320,
883                 mbuttons_y - 1);
884
885 // Clock
886         gui->draw_3segmenth(0,
887                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
888                 get_image("patchbay_bg")->get_w(),
889                 get_image("clock_bg"));
890
891 // Patchbay
892         gui->draw_3segmentv(patchbay_x,
893                 patchbay_y,
894                 patchbay_h,
895                 get_image("patchbay_bg"));
896
897 // Track canvas
898         int patchbay_w = get_image("patchbay_bg")->get_w();
899         gui->clear_box(mcanvas_x + patchbay_w, 
900                 mcanvas_y + mtimebar_h,
901                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT) - patchbay_w, 
902                 patchbay_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
903
904 // Timebar
905         gui->draw_3segmenth(mtimebar_x,
906                 mtimebar_y,
907                 mtimebar_w,
908                 get_image("timebar_bg"));
909
910 // Zoombar
911 //      gui->set_color(0x373737);
912 //      gui->draw_box(mzoom_x, 
913 //              mzoom_y,
914 //              mwindow->session->mwindow_w,
915 //              25);
916
917 // Scrollbar filler
918 //      gui->draw_vframe(get_image("mscroll_filler"),
919 //              mhscroll_x + mhscroll_w,
920 //              mvscroll_y + mvscroll_h);
921
922 // Status
923         gui->draw_3segmenth(mzoom_x,
924                 mzoom_y,
925                 mzoom_w,
926                 get_image("statusbar"));
927
928
929 }
930
931 void BrightTheme::draw_cwindow_bg(CWindowGUI *gui)
932 {
933         BC_Resources *resources = BC_WindowBase::get_resources();
934
935         gui->set_color(WHITE);
936         gui->draw_box(ccanvas_x + ccanvas_w - resources->vscroll_data[0]->get_w(),
937                 ccanvas_y + ccanvas_h - resources->hscroll_data[0]->get_h(),
938                 resources->vscroll_data[0]->get_w(),
939                 resources->hscroll_data[0]->get_h());
940         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
941         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
942         if(mwindow->edl->session->cwindow_meter)
943         {
944                 gui->draw_3segmenth(cstatus_x,
945                         ccomposite_h,
946                         cmeter_x - widget_border - cstatus_x,
947                         get_image("cbuttons_right"));
948                 gui->draw_9segment(cmeter_x - widget_border,
949                         0,
950                         mwindow->session->cwindow_w - cmeter_x + widget_border,
951                         mwindow->session->cwindow_h,
952                         get_image("cmeter_bg"));
953         }
954         else
955         {
956                 gui->draw_3segmenth(cstatus_x,
957                         ccomposite_h,
958                         cmeter_x - widget_border - cstatus_x + 100,
959                         get_image("cbuttons_right"));
960         }
961 }
962
963 void BrightTheme::draw_vwindow_bg(VWindowGUI *gui)
964 {
965         gui->draw_3segmenth(0,
966                 vcanvas_h,
967                 vdivision_x,
968                 get_image("vbuttons_left"));
969
970
971         if(mwindow->edl->session->vwindow_meter)
972         {
973                 gui->draw_3segmenth(vdivision_x,
974                         vcanvas_h,
975                         vmeter_x - widget_border - vdivision_x,
976                         get_image("cbuttons_right"));
977                 gui->draw_9segment(vmeter_x - widget_border,
978                         0,
979                         mwindow->session->vwindow_w - vmeter_x + widget_border,
980                         mwindow->session->vwindow_h,
981                         get_image("cmeter_bg"));
982         }
983         else
984         {
985                 gui->draw_3segmenth(vdivision_x,
986                         vcanvas_h,
987                         vmeter_x - widget_border - vdivision_x + 100,
988                         get_image("cbuttons_right"));
989         }
990
991 // Clock border
992         gui->draw_3segmenth(vtime_x - 20,
993                 vtime_y - 1,
994                 vtime_w + 40,
995                 get_image("vclock"));
996 }
997
998
999
1000 void BrightTheme::draw_preferences_bg(PreferencesWindow *gui)
1001 {
1002         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1003 }
1004
1005
1006 void BrightTheme::draw_new_bg(NewWindow *gui)
1007 {
1008         gui->draw_vframe(get_image("new_bg"), 0, 0);
1009 }
1010
1011 void BrightTheme::draw_setformat_bg(SetFormatWindow *gui)
1012 {
1013         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1014 }
1015
1016
1017