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