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