add zoom slider, fix stop_playback on quit, new msg.txt, rework filelist
[goodguy/history.git] / cinelerra-5.1 / plugins / theme_bright / brighttheme.C
1
2 /*
3  * CINELERRA
4  * Copyright (C) 1997-2014 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #include "bcsignals.h"
23 #include "brighttheme.h"
24 #include "clip.h"
25 #include "cwindowgui.h"
26 #include "edl.h"
27 #include "edlsession.h"
28 #include "mainmenu.h"
29 #include "mainsession.h"
30 #include "mbuttons.h"
31 #include "meterpanel.h"
32 #include "mwindow.h"
33 #include "mwindowgui.h"
34 #include "new.h"
35 #include "patchbay.h"
36 #include "preferencesthread.h"
37 #include "recordgui.h"
38 #include "recordmonitor.h"
39 #include "setformat.h"
40 #include "statusbar.h"
41 #include "timebar.h"
42 #include "trackcanvas.h"
43 #include "vframe.h"
44 #include "vwindowgui.h"
45
46
47
48
49 PluginClient* new_plugin(PluginServer *server)
50 {
51         return new BrightThemeMain(server);
52 }
53
54
55
56
57
58
59
60 BrightThemeMain::BrightThemeMain(PluginServer *server)
61  : PluginTClient(server)
62 {
63 }
64
65 BrightThemeMain::~BrightThemeMain()
66 {
67 }
68
69 const char* BrightThemeMain::plugin_title()
70 {
71         return _("Bright");
72 }
73
74 Theme* BrightThemeMain::new_theme()
75 {
76         theme = new BrightTheme;
77         extern unsigned char _binary_theme_bright_data_start[];
78         theme->set_data(_binary_theme_bright_data_start);
79         return theme;
80 }
81
82
83
84
85
86
87
88
89 BrightTheme::BrightTheme()
90  : Theme()
91 {
92 }
93
94 BrightTheme::~BrightTheme()
95 {
96         delete camerakeyframe_data;
97         delete channel_position_data;
98         delete keyframe_data;
99         delete maskkeyframe_data;
100         delete modekeyframe_data;
101         delete pankeyframe_data;
102         delete projectorkeyframe_data;
103 }
104
105 void BrightTheme::initialize()
106 {
107         BC_Resources *resources = BC_WindowBase::get_resources();
108
109
110         resources->text_default = 0x000000;
111         resources->text_background = 0xffffff;
112         resources->text_background_hi = 0xffffff;
113         resources->text_border1 = 0x000000;
114         resources->text_border2 = 0xffffff;
115         resources->text_border3 = 0xffffff;
116         resources->text_border2_hi = 0x000000;
117         resources->text_border3_hi = 0x000000;
118         resources->text_border4 = 0x000000;
119         resources->text_inactive_highlight = 0xe0e0e0;
120         resources->text_highlight = 0xe0e0e0;
121
122         resources->bg_color = 0xffffff;
123         resources->default_text_color = 0x000000;
124         resources->menu_title_text = 0x000000;
125         resources->popup_title_text = 0x000000;
126         resources->menu_item_text = 0x000000;
127         resources->generic_button_margin = 20;
128         resources->pot_needle_color = resources->text_default;
129         resources->pot_offset = 1;
130         resources->progress_text = resources->text_default;
131         resources->meter_font_color = resources->default_text_color;
132         resources->tooltip_bg_color = WHITE;
133         clock_bg_color = WHITE;
134
135         resources->menu_light = 0x000000;
136         resources->menu_highlighted = 0xe0e0e0;
137         resources->menu_down = 0xc0c0c0;
138         resources->menu_up = 0xffffff;
139         resources->menu_shadow = 0x000000;
140         resources->popupmenu_margin = 10;
141         resources->popupmenu_triangle_margin = 15;
142
143         resources->listbox_title_color = 0x000000;
144
145         resources->listbox_title_overlap = 20;
146         resources->listbox_title_margin = 20;
147         resources->listbox_title_hotspot = 20;
148         resources->listbox_border1 = 0x000000;
149         resources->listbox_border2 = 0xffffff;
150         resources->listbox_border3 = 0xffffff;
151         resources->listbox_border2_hi = 0x000000;
152         resources->listbox_border3_hi = 0x000000;
153         resources->listbox_border4 = 0x000000;
154         resources->listbox_highlighted = 0xfefefe;
155         resources->listbox_inactive = 0xffffff;
156         resources->listbox_selected = 0xe0e0e0;
157         resources->listbox_bg = 0;
158         resources->listbox_text = 0x000000;
159
160         resources->filebox_margin = 130;
161         resources->file_color = 0x000000;
162         resources->directory_color = 0x0000ff;
163
164         resources->scroll_minhandle = 24;
165
166         new_toggle("loadmode_new.png",
167                 "loadmode_up.png",
168                 "loadmode_hi.png",
169                 "loadmode_checked.png",
170                 "loadmode_dn.png",
171                 "loadmode_checkedhi.png",
172                 "loadmode_new");
173         new_toggle("loadmode_none.png",
174                 "loadmode_up.png",
175                 "loadmode_hi.png",
176                 "loadmode_checked.png",
177                 "loadmode_dn.png",
178                 "loadmode_checkedhi.png",
179                 "loadmode_none");
180         new_toggle("loadmode_newcat.png",
181                 "loadmode_up.png",
182                 "loadmode_hi.png",
183                 "loadmode_checked.png",
184                 "loadmode_dn.png",
185                 "loadmode_checkedhi.png",
186                 "loadmode_newcat");
187         new_toggle("loadmode_cat.png",
188                 "loadmode_up.png",
189                 "loadmode_hi.png",
190                 "loadmode_checked.png",
191                 "loadmode_dn.png",
192                 "loadmode_checkedhi.png",
193                 "loadmode_cat");
194         new_toggle("loadmode_newtracks.png",
195                 "loadmode_up.png",
196                 "loadmode_hi.png",
197                 "loadmode_checked.png",
198                 "loadmode_dn.png",
199                 "loadmode_checkedhi.png",
200                 "loadmode_newtracks");
201         new_toggle("loadmode_paste.png",
202                 "loadmode_up.png",
203                 "loadmode_hi.png",
204                 "loadmode_checked.png",
205                 "loadmode_dn.png",
206                 "loadmode_checkedhi.png",
207                 "loadmode_paste");
208         new_toggle("loadmode_resource.png",
209                 "loadmode_up.png",
210                 "loadmode_hi.png",
211                 "loadmode_checked.png",
212                 "loadmode_dn.png",
213                 "loadmode_checkedhi.png",
214                 "loadmode_resource");
215         new_toggle("loadmode_nested.png",
216                 "loadmode_up.png",
217                 "loadmode_hi.png",
218                 "loadmode_checked.png",
219                 "loadmode_dn.png",
220                 "loadmode_checkedhi.png",
221                 "loadmode_nested");
222
223
224
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->vertical_slider_data = new_image_set(6,
344                         "hslider_fg_up.png",
345                         "hslider_fg_hi.png",
346                         "hslider_fg_dn.png",
347                         "hslider_bg_up.png",
348                         "hslider_bg_hi.png",
349                         "hslider_bg_dn.png");
350         for( int i=0; i<6; ++i )
351                 resources->vertical_slider_data[i]->rotate90();
352
353         resources->progress_images = new_image_set(2,
354                         "progress_bg.png",
355                         "progress_hi.png");
356         resources->tumble_data = new_image_set(4,
357                 "tumble_up.png",
358                 "tumble_hi.png",
359                 "tumble_bottom.png",
360                 "tumble_top.png");
361         resources->listbox_button = new_button4("listbox_button.png",
362                 "editpanel_up.png",
363                 "editpanel_hi.png",
364                 "editpanel_dn.png",
365                 "editpanel_hi.png");
366         resources->listbox_column = new_image_set(3,
367                 "column_up.png",
368                 "column_hi.png",
369                 "column_dn.png");
370         resources->listbox_up = new_image("listbox_up.png");
371         resources->listbox_dn = new_image("listbox_dn.png");
372         resources->pan_data = new_image_set(7,
373                         "pan_up.png",
374                         "pan_hi.png",
375                         "pan_popup.png",
376                         "pan_channel.png",
377                         "pan_stick.png",
378                         "pan_channel_small.png",
379                         "pan_stick_small.png");
380         resources->pan_text_color = BLACK;
381
382         resources->pot_images = new_image_set(3,
383                 "bright_pot_up.png",
384                 "bright_pot_hi.png",
385                 "bright_pot_dn.png");
386
387         resources->checkbox_images = new_image_set(5,
388                 "bright_checkbox_up.png",
389                 "bright_checkbox_hi.png",
390                 "bright_checkbox_checked.png",
391                 "bright_checkbox_dn.png",
392                 "bright_checkbox_checkedhi.png");
393
394         resources->radial_images = new_image_set(5,
395                 "radial_up.png",
396                 "radial_hi.png",
397                 "radial_checked.png",
398                 "radial_dn.png",
399                 "radial_checkedhi.png");
400
401         resources->xmeter_images = new_image_set(7,
402                 "xmeter_normal.png",
403                 "xmeter_green.png",
404                 "xmeter_red.png",
405                 "xmeter_yellow.png",
406                 "xmeter_white.png",
407                 "xmeter_over.png",
408                 "downmix51_2.png");
409         resources->ymeter_images = new_image_set(7,
410                 "ymeter_normal.png",
411                 "ymeter_green.png",
412                 "ymeter_red.png",
413                 "ymeter_yellow.png",
414                 "ymeter_white.png",
415                 "ymeter_over.png",
416                 "downmix51_2.png");
417
418         resources->hscroll_data = new_image_set(10,
419                         "bright_hscroll_handle_up.png",
420                         "bright_hscroll_handle_hi.png",
421                         "bright_hscroll_handle_dn.png",
422                         "bright_hscroll_handle_bg.png",
423                         "bright_hscroll_left_up.png",
424                         "bright_hscroll_left_hi.png",
425                         "bright_hscroll_left_dn.png",
426                         "bright_hscroll_right_up.png",
427                         "bright_hscroll_right_hi.png",
428                         "bright_hscroll_right_dn.png");
429
430         resources->vscroll_data = new_image_set(10,
431                         "bright_vscroll_handle_up.png",
432                         "bright_vscroll_handle_hi.png",
433                         "bright_vscroll_handle_dn.png",
434                         "bright_vscroll_handle_bg.png",
435                         "bright_vscroll_left_up.png",
436                         "bright_vscroll_left_hi.png",
437                         "bright_vscroll_left_dn.png",
438                         "bright_vscroll_right_up.png",
439                         "bright_vscroll_right_hi.png",
440                         "bright_vscroll_right_dn.png");
441
442
443         new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
444         new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip");
445         new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip");
446         new_button("swap_extents.png",
447                 "editpanel_up.png",
448                 "editpanel_hi.png",
449                 "editpanel_dn.png",
450                 "swap_extents");
451
452
453
454
455         preferences_category_overlap = 0;
456         preferencescategory_x = 0;
457         preferencescategory_y = 5;
458         preferencestitle_x = 5;
459         preferencestitle_y = 10;
460         preferencesoptions_x = 5;
461         preferencesoptions_y = 0;
462
463 // MWindow
464         message_normal = resources->text_default;
465         audio_color = 0x00ff00;
466         assetedit_color = BLACK;
467         mtransport_margin = 20;
468         toggle_margin = 20;
469         timebar_cursor_color = BLACK;
470
471         new_image("mbutton_bg", "mbutton_bg.png");
472         new_image("timebar_bg", "timebar_bg_flat.png");
473         new_image("timebar_brender", "timebar_brender.png");
474         new_image("clock_bg", "mclock_flat.png");
475         new_image("patchbay_bg", "patchbay_bg.png");
476         new_image("statusbar", "statusbar.png");
477 //      new_image("mscroll_filler", "mscroll_filler.png");
478         pane_color = BLACK;
479         drag_pane_color = BLACK;
480
481         new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane");
482         new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png");
483         new_image_set("ypane", 3, "ypane_up.png", "ypane_hi.png", "ypane_dn.png");
484
485         new_image_set("zoombar_menu", 3, "zoompopup_up.png", "zoompopup_hi.png", "zoompopup_dn.png");
486         new_image_set("zoombar_tumbler", 4, "tumble_up.png", "tumble_hi.png", "tumble_bottom.png", "tumble_top.png");
487
488         new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
489         new_image("mode_add", "mode_add.png");
490         new_image("mode_divide", "mode_divide.png");
491         new_image("mode_multiply", "mode_multiply.png");
492         new_image("mode_normal", "mode_normal.png");
493         new_image("mode_replace", "mode_replace.png");
494         new_image("mode_subtract", "mode_subtract.png");
495         new_image("mode_max", "mode_max.png");
496         new_image("mode_min", "mode_min.png");
497
498         new_image_set("plugin_on", 5, "plugin_on.png", "plugin_onhi.png", "plugin_onselect.png", "plugin_ondn.png", "plugin_onselecthi.png");
499         new_image_set("plugin_show", 5, "plugin_show.png", "plugin_showhi.png", "plugin_showselect.png", "plugin_showdn.png", "plugin_showselecthi.png");
500
501 // CWindow
502         new_image("cpanel_bg", "cpanel_bg.png");
503         new_image("cbuttons_left", "cbuttons_left.png");
504         new_image("cbuttons_right", "cbuttons_right.png");
505         new_image("cmeter_bg", "cmeter_bg.png");
506
507 // VWindow
508         new_image("vbuttons_left", "vbuttons_left.png");
509         new_image("vclock", "vclock.png");
510
511         new_image("preferences_bg", "preferences_bg.png");
512
513
514         new_image("new_bg", "new_bg.png");
515         new_image("setformat_bg", "setformat_bg.png");
516
517
518         timebar_view_data = new_image("timebar_view.png");
519
520         setformat_w = get_image("setformat_bg")->get_w();
521         setformat_h = get_image("setformat_bg")->get_h();
522         setformat_x1 = 15;
523         setformat_x2 = 100;
524
525         setformat_x3 = 315;
526         setformat_x4 = 415;
527         setformat_y1 = 20;
528         setformat_y2 = 85;
529         setformat_y3 = 125;
530         setformat_margin = 30;
531         setformat_channels_x = 25;
532         setformat_channels_y = 242;
533         setformat_channels_w = 250;
534         setformat_channels_h = 250;
535
536         loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10;
537         browse_pad = 20;
538
539
540         new_toggle("playpatch.png",
541                 "patch_up.png",
542                 "patch_hi.png",
543                 "patch_checked.png",
544                 "patch_dn.png",
545                 "patch_checkedhi.png",
546                 "playpatch_data");
547
548         new_toggle("recordpatch.png",
549                 "patch_up.png",
550                 "patch_hi.png",
551                 "patch_checked.png",
552                 "patch_dn.png",
553                 "patch_checkedhi.png",
554                 "recordpatch_data");
555
556         new_toggle("gangpatch.png",
557                 "patch_up.png",
558                 "patch_hi.png",
559                 "patch_checked.png",
560                 "patch_dn.png",
561                 "patch_checkedhi.png",
562                 "gangpatch_data");
563
564         new_toggle("drawpatch.png",
565                 "patch_up.png",
566                 "patch_hi.png",
567                 "patch_checked.png",
568                 "patch_dn.png",
569                 "patch_checkedhi.png",
570                 "drawpatch_data");
571
572
573         new_image_set("mutepatch_data",
574                 5,
575                 "mutepatch_up.png",
576                 "mutepatch_hi.png",
577                 "mutepatch_checked.png",
578                 "mutepatch_dn.png",
579                 "mutepatch_checkedhi.png");
580
581         new_image_set("expandpatch_data",
582                 5,
583                 "expandpatch_up.png",
584                 "expandpatch_hi.png",
585                 "expandpatch_checked.png",
586                 "expandpatch_dn.png",
587                 "expandpatch_checkedhi.png");
588
589         build_bg_data();
590         build_overlays();
591
592
593
594
595         out_point = new_image_set(5,
596                 "out_up.png",
597                 "out_hi.png",
598                 "out_checked.png",
599                 "out_dn.png",
600                 "out_checkedhi.png");
601         in_point = new_image_set(5,
602                 "in_up.png",
603                 "in_hi.png",
604                 "in_checked.png",
605                 "in_dn.png",
606                 "in_checkedhi.png");
607
608         label_toggle = new_image_set(5,
609                 "labeltoggle_up.png",
610                 "labeltoggle_uphi.png",
611                 "label_checked.png",
612                 "labeltoggle_dn.png",
613                 "label_checkedhi.png");
614
615         ffmpeg_toggle = new_image_set(5,
616                 "ff_up.png",
617                 "ff_hi.png",
618                 "ff_checked.png",
619                 "ff_down.png",
620                 "ff_checkedhi.png");
621
622         shbtn_data = new_image_set(3,
623                 "shbtn_up.png",
624                 "shbtn_hi.png",
625                 "shbtn_dn.png");
626
627         new_image_set("histogram_carrot",
628                 5,
629                 "histogram_carrot_up.png",
630                 "histogram_carrot_hi.png",
631                 "histogram_carrot_checked.png",
632                 "histogram_carrot_dn.png",
633                 "histogram_carrot_checkedhi.png");
634
635
636         statusbar_cancel_data = new_image_set(3,
637                 "statusbar_cancel_up.png",
638                 "statusbar_cancel_hi.png",
639                 "statusbar_cancel_dn.png");
640
641
642         VFrame *editpanel_up = new_image("editpanel_up.png");
643         VFrame *editpanel_hi = new_image("editpanel_hi.png");
644         VFrame *editpanel_dn = new_image("editpanel_dn.png");
645         VFrame *editpanel_checked = new_image("editpanel_checked.png");
646         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
647
648         new_image("panel_divider", "panel_divider.png");
649         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
650         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
651         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
652
653         new_toggle("histogram.png",
654                 editpanel_up,
655                 editpanel_hi,
656                 editpanel_checked,
657                 editpanel_dn,
658                 editpanel_checkedhi,
659                 "histogram_toggle");
660         new_toggle("histogram_rgb.png",
661                 editpanel_up,
662                 editpanel_hi,
663                 editpanel_checked,
664                 editpanel_dn,
665                 editpanel_checkedhi,
666                 "histogram_rgb_toggle");
667         new_toggle("waveform.png",
668                 editpanel_up,
669                 editpanel_hi,
670                 editpanel_checked,
671                 editpanel_dn,
672                 editpanel_checkedhi,
673                 "waveform_toggle");
674         new_toggle("waveform_rgb.png",
675                 editpanel_up,
676                 editpanel_hi,
677                 editpanel_checked,
678                 editpanel_dn,
679                 editpanel_checkedhi,
680                 "waveform_rgb_toggle");
681         new_toggle("scope.png",
682                 editpanel_up,
683                 editpanel_hi,
684                 editpanel_checked,
685                 editpanel_dn,
686                 editpanel_checkedhi,
687                 "scope_toggle");
688
689         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
690         new_button("histogram.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram");
691
692         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
693         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
694         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
695         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
696         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
697         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
698         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
699         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
700         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
701         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
702         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
703         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
704         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
705         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
706         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
707         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn);
708         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn);
709         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
710         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
711         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
712         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn);
713         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
714         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
715         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
716         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
717         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
718
719
720         VFrame *transport_up = new_image("transportup.png");
721         VFrame *transport_hi = new_image("transporthi.png");
722         VFrame *transport_dn = new_image("transportdn.png");
723
724         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
725         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
726         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
727         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
728         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
729         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
730         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
731         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
732         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
733         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
734         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
735         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
736         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
737
738
739
740 // CWindow icons
741         new_image("cwindow_inactive", "cwindow_inactive.png");
742         new_image("cwindow_active", "cwindow_active.png");
743
744
745
746         new_image_set("category_button",
747                 3,
748                 "preferencesbutton_dn.png",
749                 "preferencesbutton_dnhi.png",
750                 "preferencesbutton_dnlo.png");
751
752         new_image_set("category_button_checked",
753                 3,
754                 "preferencesbutton_up.png",
755                 "preferencesbutton_uphi.png",
756                 "preferencesbutton_dnlo.png");
757
758
759
760         new_image_set("color3way_point",
761                 3,
762                 "color3way_up.png",
763                 "color3way_hi.png",
764                 "color3way_dn.png");
765
766
767
768
769         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
770         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
771         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
772         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
773         new_toggle("blank30x30.png",
774                    new_image("locklabels_locked.png"),
775                    new_image("locklabels_lockedhi.png"),
776                    new_image("locklabels_unlocked.png"),
777                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
778                    new_image("locklabels_unlockedhi.png"),
779                    "locklabels");
780
781         VFrame *cpanel_up = new_image("cpanel_up.png");
782         VFrame *cpanel_hi = new_image("cpanel_hi.png");
783         VFrame *cpanel_dn = new_image("cpanel_dn.png");
784         VFrame *cpanel_checked = new_image("cpanel_checked.png");
785         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
786
787
788         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
789         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
790         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
791         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
792         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
793         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
794         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
795         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
796         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
797         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
798
799         // toggle for tangent mode (compositor/tool window)
800         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
801         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
802
803
804         flush_images();
805
806         title_font = MEDIUMFONT;
807         title_color = 0x000000;
808         recordgui_fixed_color = BLACK;
809         recordgui_variable_color = BLACK;
810
811         channel_position_color = BLACK;
812         resources->meter_title_w = 25;
813 }
814
815
816
817 void BrightTheme::build_bg_data()
818 {
819 // Audio settings
820         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
821
822 // Track bitmaps
823         new_image("resource1024", "resource1024.png");
824         new_image("resource512", "resource512.png");
825         new_image("resource256", "resource256.png");
826         new_image("resource128", "resource128.png");
827         new_image("resource64", "resource64.png");
828         new_image("resource32", "resource32.png");
829         new_image("plugin_bg_data", "plugin_bg.png");
830         new_image("title_bg_data", "title_bg.png");
831         new_image("vtimebar_bg_data", "vwindow_timebar.png");
832 }
833
834
835
836 void BrightTheme::build_overlays()
837 {
838         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
839         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
840         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
841         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
842         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
843         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
844 }
845
846
847
848
849
850
851
852
853
854 void BrightTheme::draw_rwindow_bg(RecordGUI *gui)
855 {
856 //      int y;
857 //      int margin = 50;
858 //      int margin2 = 80;
859 //      gui->draw_9segment(recordgui_batch_x - margin,
860 //              0,
861 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
862 //              recordgui_buttons_y,
863 //              rgui_batch);
864 //      gui->draw_3segmenth(recordgui_options_x - margin2,
865 //              recordgui_buttons_y - 5,
866 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
867 //              rgui_controls);
868 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
869 //      gui->draw_9segment(0,
870 //              y,
871 //              mwindow->session->rwindow_w,
872 //              mwindow->session->rwindow_h - y,
873 //              rgui_list);
874 }
875
876 void BrightTheme::draw_rmonitor_bg(RecordMonitorGUI *gui)
877 {
878 //      int margin = 45;
879 //      int panel_w = 300;
880 //      int x = rmonitor_meter_x - margin;
881 //      int w = mwindow->session->rmonitor_w - x;
882 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
883 //      gui->clear_box(0,
884 //              0,
885 //              mwindow->session->rmonitor_w,
886 //              mwindow->session->rmonitor_h);
887 //      gui->draw_9segment(x,
888 //              0,
889 //              w,
890 //              mwindow->session->rmonitor_h,
891 //              rmonitor_meters);
892 }
893
894
895
896
897
898
899 void BrightTheme::draw_mwindow_bg(MWindowGUI *gui)
900 {
901 // Button bar
902         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
903                 gui->menu_w(), get_image("mbutton_bg"));
904
905         gui->draw_vframe(get_image("panel_divider"),
906                 mbuttons_x + 228,
907                 mbuttons_y - 1);
908
909         gui->draw_vframe(get_image("panel_divider"),
910                 mbuttons_x + 320,
911                 mbuttons_y - 1);
912
913 // Clock
914         gui->draw_3segmenth(0,
915                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
916                 get_image("patchbay_bg")->get_w(),
917                 get_image("clock_bg"));
918
919 // Patchbay
920         gui->draw_3segmentv(patchbay_x,
921                 patchbay_y,
922                 patchbay_h,
923                 get_image("patchbay_bg"));
924
925 // Track canvas
926         int patchbay_w = get_image("patchbay_bg")->get_w();
927         gui->clear_box(mcanvas_x + patchbay_w,
928                 mcanvas_y + mtimebar_h,
929                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT) - patchbay_w,
930                 patchbay_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
931
932 // Timebar
933         gui->draw_3segmenth(mtimebar_x,
934                 mtimebar_y,
935                 mtimebar_w,
936                 get_image("timebar_bg"));
937
938 // Zoombar
939 //      gui->set_color(0x373737);
940 //      gui->draw_box(mzoom_x,
941 //              mzoom_y,
942 //              mwindow->session->mwindow_w,
943 //              25);
944
945 // Scrollbar filler
946 //      gui->draw_vframe(get_image("mscroll_filler"),
947 //              mhscroll_x + mhscroll_w,
948 //              mvscroll_y + mvscroll_h);
949
950 // Status
951         gui->draw_3segmenth(mzoom_x,
952                 mzoom_y,
953                 mzoom_w,
954                 get_image("statusbar"));
955
956
957 }
958
959 void BrightTheme::draw_cwindow_bg(CWindowGUI *gui)
960 {
961         BC_Resources *resources = BC_WindowBase::get_resources();
962
963         gui->set_color(WHITE);
964         gui->draw_box(ccanvas_x + ccanvas_w - resources->vscroll_data[0]->get_w(),
965                 ccanvas_y + ccanvas_h - resources->hscroll_data[0]->get_h(),
966                 resources->vscroll_data[0]->get_w(),
967                 resources->hscroll_data[0]->get_h());
968         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
969         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
970         if(mwindow->edl->session->cwindow_meter)
971         {
972                 gui->draw_3segmenth(cstatus_x,
973                         ccomposite_h,
974                         cmeter_x - widget_border - cstatus_x,
975                         get_image("cbuttons_right"));
976                 gui->draw_9segment(cmeter_x - widget_border,
977                         0,
978                         mwindow->session->cwindow_w - cmeter_x + widget_border,
979                         mwindow->session->cwindow_h,
980                         get_image("cmeter_bg"));
981         }
982         else
983         {
984                 gui->draw_3segmenth(cstatus_x,
985                         ccomposite_h,
986                         cmeter_x - widget_border - cstatus_x + 100,
987                         get_image("cbuttons_right"));
988         }
989 }
990
991 void BrightTheme::draw_vwindow_bg(VWindowGUI *gui)
992 {
993         gui->draw_3segmenth(0,
994                 vcanvas_h,
995                 vdivision_x,
996                 get_image("vbuttons_left"));
997
998
999         if(mwindow->edl->session->vwindow_meter)
1000         {
1001                 gui->draw_3segmenth(vdivision_x,
1002                         vcanvas_h,
1003                         vmeter_x - widget_border - vdivision_x,
1004                         get_image("cbuttons_right"));
1005                 gui->draw_9segment(vmeter_x - widget_border,
1006                         0,
1007                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1008                         mwindow->session->vwindow_h,
1009                         get_image("cmeter_bg"));
1010         }
1011         else
1012         {
1013                 gui->draw_3segmenth(vdivision_x,
1014                         vcanvas_h,
1015                         vmeter_x - widget_border - vdivision_x + 100,
1016                         get_image("cbuttons_right"));
1017         }
1018
1019 // Clock border
1020         gui->draw_3segmenth(vtime_x - 20,
1021                 vtime_y - 1,
1022                 vtime_w + 40,
1023                 get_image("vclock"));
1024 }
1025
1026
1027
1028 void BrightTheme::draw_preferences_bg(PreferencesWindow *gui)
1029 {
1030         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1031 }
1032
1033
1034 void BrightTheme::draw_new_bg(NewWindow *gui)
1035 {
1036         gui->draw_vframe(get_image("new_bg"), 0, 0);
1037 }
1038
1039 void BrightTheme::draw_setformat_bg(SetFormatWindow *gui)
1040 {
1041         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1042 }
1043
1044
1045