7ef924e91d9ab8c76c73dcccf6bf4b1c56547cbb
[goodguy/history.git] / cinelerra-5.1 / plugins / theme_unflat / unflattheme.C
1
2 /*
3  * CINELERRA unflat theme
4  * Based on S.U.V. theme
5  * CINELERRA
6  * Copyright (C) 1997-2014 Adam Williams <broadcast at earthling dot net>
7  * by Paolo Rampino <info at tuttoainternet dot it>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22  *
23  */
24
25 #include "bcsignals.h"
26 #include "clip.h"
27 #include "cwindowgui.h"
28 #include "unflattheme.h"
29 #include "edl.h"
30 #include "edlsession.h"
31 #include "mainmenu.h"
32 #include "mainsession.h"
33 #include "mbuttons.h"
34 #include "meterpanel.h"
35 #include "mwindow.h"
36 #include "mwindowgui.h"
37 #include "new.h"
38 #include "patchbay.h"
39 #include "preferencesthread.h"
40 #include "recordgui.h"
41 #include "recordmonitor.h"
42 #include "setformat.h"
43 #include "statusbar.h"
44 #include "timebar.h"
45 #include "trackcanvas.h"
46 #include "vframe.h"
47 #include "vwindowgui.h"
48
49
50
51
52 PluginClient* new_plugin(PluginServer *server)
53 {
54         return new UNFLATTHEMEMain(server);
55 }
56
57 UNFLATTHEMEMain::UNFLATTHEMEMain(PluginServer *server)
58  : PluginTClient(server)
59 {
60 }
61
62 UNFLATTHEMEMain::~UNFLATTHEMEMain()
63 {
64 }
65
66 const char* UNFLATTHEMEMain::plugin_title() { return N_("UnFlat"); }
67
68 Theme* UNFLATTHEMEMain::new_theme()
69 {
70         theme = new UNFLATTHEME;
71         extern unsigned char _binary_theme_unflat_data_start[];
72         theme->set_data(_binary_theme_unflat_data_start);
73         return theme;
74 }
75
76
77
78
79
80
81
82
83 UNFLATTHEME::UNFLATTHEME()
84  : Theme()
85 {
86 }
87
88 UNFLATTHEME::~UNFLATTHEME()
89 {
90         delete camerakeyframe_data;
91         delete channel_position_data;
92         delete keyframe_data;
93         delete maskkeyframe_data;
94         delete modekeyframe_data;
95         delete pankeyframe_data;
96         delete projectorkeyframe_data;
97 }
98
99 void UNFLATTHEME::initialize()
100 {
101         BC_Resources *resources = BC_WindowBase::get_resources();
102
103
104         resources->text_default = 0xbfbfbf;
105         resources->text_background = 0x333333;
106         resources->text_background_disarmed = 0xaf0000;
107         resources->text_border1 = 0x202020;
108         resources->text_border2 = 0x333333;
109         resources->text_border3 = 0x333333;
110         resources->text_border4 = 0x969696;
111         resources->text_inactive_highlight = 0x707070;
112
113         resources->bg_color = 0x4d4d4d;
114         resources->border_light2 = resources->bg_color;
115         resources->border_shadow2 = resources->bg_color;
116         resources->default_text_color = 0xbfbfbf;
117         resources->menu_title_text = 0xbfbfbf;
118         resources->popup_title_text = 0xbfbfbf;
119         resources->menu_item_text = 0xbfbfbf;
120         resources->menu_highlighted_fontcolor = WHITE;
121         resources->generic_button_margin = 30;
122         resources->pot_needle_color = resources->text_default;
123         resources->pot_offset = 1;
124         resources->progress_text = resources->text_default;
125         resources->meter_font_color = resources->default_text_color;
126
127         resources->menu_light = 0xababab;
128         resources->menu_highlighted = 0x6f6f6f;
129         resources->menu_down = 0x4b4b4b;
130         resources->menu_up = 0x4b4b4b;
131         resources->menu_shadow = 0x202020;
132         resources->popupmenu_margin = 15;
133         resources->popupmenu_triangle_margin = 15;
134
135         resources->listbox_title_color = 0xbfbfbf;
136
137         resources->listbox_title_margin = 20;
138         resources->listbox_title_hotspot = 20;
139         resources->listbox_border1 = 0x1a1a1a;
140         resources->listbox_border2 = 0x333333;
141         resources->listbox_border3 = 0x333333;
142         resources->listbox_border4 = 0x646464;
143         resources->listbox_highlighted = 0x505050;
144         resources->listbox_inactive = 0x333333;
145         resources->listbox_bg = 0;
146         resources->listbox_text = 0xbfbfbf;
147
148         resources->filebox_margin = 130;
149         resources->file_color = 0xbfbfbf;
150         resources->directory_color = 0xa0a0ff;
151
152
153         new_toggle("loadmode_new.png",
154                 "loadmode_up.png",
155                 "loadmode_hi.png",
156                 "loadmode_checked.png",
157                 "loadmode_dn.png",
158                 "loadmode_checkedhi.png",
159                 "loadmode_new");
160         new_toggle("loadmode_none.png",
161                 "loadmode_up.png",
162                 "loadmode_hi.png",
163                 "loadmode_checked.png",
164                 "loadmode_dn.png",
165                 "loadmode_checkedhi.png",
166                 "loadmode_none");
167         new_toggle("loadmode_newcat.png",
168                 "loadmode_up.png",
169                 "loadmode_hi.png",
170                 "loadmode_checked.png",
171                 "loadmode_dn.png",
172                 "loadmode_checkedhi.png",
173                 "loadmode_newcat");
174         new_toggle("loadmode_cat.png",
175                 "loadmode_up.png",
176                 "loadmode_hi.png",
177                 "loadmode_checked.png",
178                 "loadmode_dn.png",
179                 "loadmode_checkedhi.png",
180                 "loadmode_cat");
181         new_toggle("loadmode_newtracks.png",
182                 "loadmode_up.png",
183                 "loadmode_hi.png",
184                 "loadmode_checked.png",
185                 "loadmode_dn.png",
186                 "loadmode_checkedhi.png",
187                 "loadmode_newtracks");
188         new_toggle("loadmode_paste.png",
189                 "loadmode_up.png",
190                 "loadmode_hi.png",
191                 "loadmode_checked.png",
192                 "loadmode_dn.png",
193                 "loadmode_checkedhi.png",
194                 "loadmode_paste");
195         new_toggle("loadmode_resource.png",
196                 "loadmode_up.png",
197                 "loadmode_hi.png",
198                 "loadmode_checked.png",
199                 "loadmode_dn.png",
200                 "loadmode_checkedhi.png",
201                 "loadmode_resource");
202         new_toggle("loadmode_nested.png",
203                 "loadmode_up.png",
204                 "loadmode_hi.png",
205                 "loadmode_checked.png",
206                 "loadmode_dn.png",
207                 "loadmode_checkedhi.png",
208                 "loadmode_nested");
209
210
211         resources->filebox_icons_images = new_button("icons.png",
212                 "fileboxbutton_up.png",
213                 "fileboxbutton_hi.png",
214                 "fileboxbutton_dn.png",
215                 "filebox_icons");
216
217         resources->filebox_text_images = new_button("text.png",
218                 "fileboxbutton_up.png",
219                 "fileboxbutton_hi.png",
220                 "fileboxbutton_dn.png",
221                 "filebox_text");
222
223         resources->filebox_newfolder_images = new_button("folder.png",
224                 "fileboxbutton_up.png",
225                 "fileboxbutton_hi.png",
226                 "fileboxbutton_dn.png",
227                 "filebox_newfolder");
228
229         resources->filebox_rename_images = new_button("rename.png",
230                 "fileboxbutton_up.png",
231                 "fileboxbutton_hi.png",
232                 "fileboxbutton_dn.png",
233                 "filebox_rename");
234
235         resources->filebox_updir_images = new_button("updir.png",
236                 "fileboxbutton_up.png",
237                 "fileboxbutton_hi.png",
238                 "fileboxbutton_dn.png",
239                 "filebox_updir");
240
241         resources->filebox_delete_images = new_button("delete.png",
242                 "fileboxbutton_up.png",
243                 "fileboxbutton_hi.png",
244                 "fileboxbutton_dn.png",
245                 "filebox_delete");
246
247         resources->filebox_reload_images = new_button("reload.png",
248                 "fileboxbutton_up.png",
249                 "fileboxbutton_hi.png",
250                 "fileboxbutton_dn.png",
251                 "filebox_reload");
252
253
254         resources->filebox_descend_images = new_button("openfolder.png",
255                 "filebox_bigbutton_up.png",
256                 "filebox_bigbutton_hi.png",
257                 "filebox_bigbutton_dn.png",
258                 "filebox_descend");
259
260         resources->usethis_button_images =
261                 resources->ok_images = new_button("ok.png",
262                 "filebox_bigbutton_up.png",
263                 "filebox_bigbutton_hi.png",
264                 "filebox_bigbutton_dn.png",
265                 "ok_button");
266
267         new_button("ok.png",
268                 "new_bigbutton_up.png",
269                 "new_bigbutton_hi.png",
270                 "new_bigbutton_dn.png",
271                 "new_ok_images");
272
273         resources->cancel_images = new_button("cancel.png",
274                 "filebox_bigbutton_up.png",
275                 "filebox_bigbutton_hi.png",
276                 "filebox_bigbutton_dn.png",
277                 "cancel_button");
278
279         new_button("cancel.png",
280                 "new_bigbutton_up.png",
281                 "new_bigbutton_hi.png",
282                 "new_bigbutton_dn.png",
283                 "new_cancel_images");
284
285         resources->medium_7segment = new_image_set(TOTAL_7SEGMENT,
286                 "0.png",
287                 "1.png",
288                 "2.png",
289                 "3.png",
290                 "4.png",
291                 "5.png",
292                 "6.png",
293                 "7.png",
294                 "8.png",
295                 "9.png",
296                 "colon.png",
297                 "period.png",
298                 "a.png",
299                 "b.png",
300                 "c.png",
301                 "d.png",
302                 "e.png",
303                 "f.png",
304                 "space.png",
305                 "dash.png");
306
307         resources->bar_data = new_image("bar", "bar.png");
308         resources->check = new_image("check", "check.png");
309
310         resources->min_menu_w = 96;
311         resources->menu_popup_bg = new_image("menu_popup_bg.png");
312         resources->menu_item_bg = new_image_set(3,
313                 "menuitem_up.png",
314                 "menuitem_hi.png",
315                 "menuitem_dn.png");
316         resources->menu_bar_bg = new_image("menubar_bg.png");
317         resources->menu_title_bg = new_image_set(3,
318                 "menubar_up.png",
319                 "menubar_hi.png",
320                 "menubar_dn.png");
321
322
323         resources->popupmenu_images = 0;
324 //              new_image_set(3,
325 //              "menupopup_up.png",
326 //              "menupopup_hi.png",
327 //              "menupopup_dn.png");
328
329         resources->toggle_highlight_bg = new_image("toggle_highlight_bg",
330                 "text_highlight.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                 "listbox_button");
367         resources->listbox_column = new_image_set(3,
368                 "column_up.png",
369                 "column_hi.png",
370                 "column_dn.png");
371         resources->listbox_up = new_image("listbox_up.png");
372         resources->listbox_dn = new_image("listbox_dn.png");
373         resources->pan_data = new_image_set(7,
374                         "pan_up.png",
375                         "pan_hi.png",
376                         "pan_popup.png",
377                         "pan_channel.png",
378                         "pan_stick.png",
379                         "pan_channel_small.png",
380                         "pan_stick_small.png");
381         resources->pan_text_color = WHITE;
382
383         resources->pot_images = new_image_set(3,
384                 "pot_up.png",
385                 "pot_hi.png",
386                 "pot_dn.png");
387
388         resources->checkbox_images = new_image_set(5,
389                 "checkbox_up.png",
390                 "checkbox_hi.png",
391                 "checkbox_checked.png",
392                 "checkbox_dn.png",
393                 "checkbox_checkedhi.png");
394
395         resources->radial_images = new_image_set(5,
396                 "radial_up.png",
397                 "radial_hi.png",
398                 "radial_checked.png",
399                 "radial_dn.png",
400                 "radial_checkedhi.png");
401
402         resources->xmeter_images = new_image_set(7,
403                 "xmeter_normal.png",
404                 "xmeter_green.png",
405                 "xmeter_red.png",
406                 "xmeter_yellow.png",
407                 "xmeter_white.png",
408                 "xmeter_over.png",
409                 "downmix51_2.png");
410         resources->ymeter_images = new_image_set(7,
411                 "ymeter_normal.png",
412                 "ymeter_green.png",
413                 "ymeter_red.png",
414                 "ymeter_yellow.png",
415                 "ymeter_white.png",
416                 "ymeter_over.png",
417                 "downmix51_2.png");
418
419         resources->hscroll_data = new_image_set(10,
420                         "hscroll_handle_up.png",
421                         "hscroll_handle_hi.png",
422                         "hscroll_handle_dn.png",
423                         "hscroll_handle_bg.png",
424                         "hscroll_left_up.png",
425                         "hscroll_left_hi.png",
426                         "hscroll_left_dn.png",
427                         "hscroll_right_up.png",
428                         "hscroll_right_hi.png",
429                         "hscroll_right_dn.png");
430
431         resources->vscroll_data = new_image_set(10,
432                         "vscroll_handle_up.png",
433                         "vscroll_handle_hi.png",
434                         "vscroll_handle_dn.png",
435                         "vscroll_handle_bg.png",
436                         "vscroll_left_up.png",
437                         "vscroll_left_hi.png",
438                         "vscroll_left_dn.png",
439                         "vscroll_right_up.png",
440                         "vscroll_right_hi.png",
441                         "vscroll_right_dn.png");
442         resources->scroll_minhandle = 20;
443
444
445         new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
446         new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip");
447         new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip");
448         new_button("swap_extents.png",
449                 "editpanel_up.png",
450                 "editpanel_hi.png",
451                 "editpanel_dn.png",
452                 "swap_extents");
453
454
455 // Record windows
456
457
458         preferences_category_overlap = 0;
459         preferencescategory_x = 0;
460         preferencescategory_y = 5;
461         preferencestitle_x = 5;
462         preferencestitle_y = 10;
463         preferencesoptions_x = 5;
464         preferencesoptions_y = 0;
465
466 // MWindow
467         message_normal = resources->text_default;
468         audio_color = GREEN;
469         mtransport_margin = 10;
470         toggle_margin = 10;
471
472         new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane");
473         new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png");
474         new_image_set("ypane", 3, "ypane_up.png", "ypane_hi.png", "ypane_dn.png");
475
476         new_image("mbutton_bg", "mbutton_bg.png");
477         new_image("timebar_bg", "timebar_bg_flat.png");
478         new_image("timebar_brender", "timebar_brender.png");
479         new_image("clock_bg", "mclock_flat.png");
480         new_image("patchbay_bg", "patchbay_bg.png");
481         new_image("statusbar", "statusbar.png");
482 //      new_image("mscroll_filler", "mscroll_filler.png");
483
484         new_image_set("zoombar_menu", 3, "zoompopup_up.png", "zoompopup_hi.png", "zoompopup_dn.png");
485         new_image_set("zoombar_tumbler", 4, "zoomtumble_up.png", "zoomtumble_hi.png", "zoomtumble_bottom.png", "zoomtumble_top.png");
486
487         new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
488         new_image("mode_add", "mode_add.png");
489         new_image("mode_divide", "mode_divide.png");
490         new_image("mode_multiply", "mode_multiply.png");
491         new_image("mode_normal", "mode_normal.png");
492         new_image("mode_replace", "mode_replace.png");
493         new_image("mode_subtract", "mode_subtract.png");
494         new_image("mode_max", "mode_max.png");
495
496         new_image_set("plugin_on", 5, "plugin_on.png", "plugin_onhi.png", "plugin_onselect.png", "plugin_ondn.png", "plugin_onselecthi.png");
497         new_image_set("plugin_show", 5, "plugin_show.png", "plugin_showhi.png", "plugin_showselect.png", "plugin_showdn.png", "plugin_showselecthi.png");
498
499 // CWindow
500         new_image("cpanel_bg", "cpanel_bg.png");
501         new_image("cbuttons_left", "cbuttons_left.png");
502         new_image("cbuttons_right", "cbuttons_right.png");
503         new_image("cmeter_bg", "cmeter_bg.png");
504
505 // VWindow
506         new_image("vbuttons_left", "vbuttons_left.png");
507         new_image("vclock", "vclock.png");
508
509         new_image("preferences_bg", "preferences_bg.png");
510
511
512         new_image("new_bg", "new_bg.png");
513         new_image("setformat_bg", "setformat_bg.png");
514
515
516         timebar_view_data = new_image("timebar_view.png");
517
518         setformat_w = get_image("setformat_bg")->get_w();
519         setformat_h = get_image("setformat_bg")->get_h();
520         setformat_x1 = 15;
521         setformat_x2 = 110;
522
523         setformat_x3 = 315;
524         setformat_x4 = 425;
525         setformat_y1 = 20;
526         setformat_y2 = 85;
527         setformat_y3 = 125;
528         setformat_margin = 30;
529         setformat_channels_x = 25;
530         setformat_channels_y = 242;
531         setformat_channels_w = 250;
532         setformat_channels_h = 250;
533
534         loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10;
535         browse_pad = 20;
536
537
538         new_toggle("playpatch.png",
539                 "playpatch_up.png",
540                 "playpatch_hi.png",
541                 "playpatch_checked.png",
542                 "playpatch_dn.png",
543                 "playpatch_checkedhi.png",
544                 "playpatch_data");
545
546         new_toggle("recordpatch.png",
547                 "recordpatch_up.png",
548                 "recordpatch_hi.png",
549                 "recordpatch_checked.png",
550                 "recordpatch_dn.png",
551                 "recordpatch_checkedhi.png",
552                 "recordpatch_data");
553
554         new_toggle("gangpatch.png",
555                 "patch_up.png",
556                 "patch_hi.png",
557                 "patch_checked.png",
558                 "patch_dn.png",
559                 "patch_checkedhi.png",
560                 "gangpatch_data");
561
562         new_toggle("drawpatch.png",
563                 "patch_up.png",
564                 "patch_hi.png",
565                 "patch_checked.png",
566                 "patch_dn.png",
567                 "patch_checkedhi.png",
568                 "drawpatch_data");
569
570
571         new_image_set("mutepatch_data",
572                 5,
573                 "mutepatch_up.png",
574                 "mutepatch_hi.png",
575                 "mutepatch_checked.png",
576                 "mutepatch_dn.png",
577                 "mutepatch_checkedhi.png");
578
579         new_image_set("expandpatch_data",
580                 5,
581                 "expandpatch_up.png",
582                 "expandpatch_hi.png",
583                 "expandpatch_checked.png",
584                 "expandpatch_dn.png",
585                 "expandpatch_checkedhi.png");
586
587         build_bg_data();
588         build_overlays();
589
590
591
592
593         out_point = new_image_set(5,
594                 "out_up.png",
595                 "out_hi.png",
596                 "out_checked.png",
597                 "out_dn.png",
598                 "out_checkedhi.png");
599         in_point = new_image_set(5,
600                 "in_up.png",
601                 "in_hi.png",
602                 "in_checked.png",
603                 "in_dn.png",
604                 "in_checkedhi.png");
605
606         label_toggle = new_image_set(5,
607                 "labeltoggle_up.png",
608                 "labeltoggle_uphi.png",
609                 "label_checked.png",
610                 "labeltoggle_dn.png",
611                 "label_checkedhi.png");
612
613         ffmpeg_toggle = new_image_set(5,
614                 "ff_up.png",
615                 "ff_hi.png",
616                 "ff_checked.png",
617                 "ff_down.png",
618                 "ff_checkedhi.png");
619
620         proxy_toggle = new_image_set(5,
621                 "proxy_up.png",
622                 "proxy_hi.png",
623                 "proxy_chkd.png",
624                 "proxy_down.png",
625                 "proxy_chkdhi.png");
626
627         shbtn_data = new_image_set(3,
628                 "shbtn_up.png",
629                 "shbtn_hi.png",
630                 "shbtn_dn.png");
631
632         new_image_set("preset_edit",
633                 3,
634                 "preset_edit0.png",
635                 "preset_edit1.png",
636                 "preset_edit2.png");
637
638         new_image_set("histogram_carrot",
639                 5,
640                 "histogram_carrot_up.png",
641                 "histogram_carrot_hi.png",
642                 "histogram_carrot_checked.png",
643                 "histogram_carrot_dn.png",
644                 "histogram_carrot_checkedhi.png");
645
646
647         statusbar_cancel_data = new_image_set(3,
648                 "statusbar_cancel_up.png",
649                 "statusbar_cancel_hi.png",
650                 "statusbar_cancel_dn.png");
651
652
653         VFrame *editpanel_up = new_image("editpanel_up.png");
654         VFrame *editpanel_hi = new_image("editpanel_hi.png");
655         VFrame *editpanel_dn = new_image("editpanel_dn.png");
656         VFrame *editpanel_checked = new_image("editpanel_checked.png");
657         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
658
659         new_image("panel_divider", "panel_divider.png");
660         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
661         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
662         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
663
664         new_toggle("histogram_toggle.png",
665                 editpanel_up,
666                 editpanel_hi,
667                 editpanel_checked,
668                 editpanel_dn,
669                 editpanel_checkedhi,
670                 "histogram_toggle");
671         new_toggle("histogram_rgb.png",
672                 editpanel_up,
673                 editpanel_hi,
674                 editpanel_checked,
675                 editpanel_dn,
676                 editpanel_checkedhi,
677                 "histogram_rgb_toggle");
678         new_toggle("waveform.png",
679                 editpanel_up,
680                 editpanel_hi,
681                 editpanel_checked,
682                 editpanel_dn,
683                 editpanel_checkedhi,
684                 "waveform_toggle");
685         new_toggle("waveform_rgb.png",
686                 editpanel_up,
687                 editpanel_hi,
688                 editpanel_checked,
689                 editpanel_dn,
690                 editpanel_checkedhi,
691                 "waveform_rgb_toggle");
692         new_toggle("scope.png",
693                 editpanel_up,
694                 editpanel_hi,
695                 editpanel_checked,
696                 editpanel_dn,
697                 editpanel_checkedhi,
698                 "scope_toggle");
699
700         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
701         new_button("histogram_img.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram_img");
702
703
704         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
705         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
706         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
707         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
708         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
709         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
710         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
711         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
712         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
713         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
714         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
715         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
716         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
717         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
718         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
719         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn,"overbutton");
720         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn,"overwritebutton");
721         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
722         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
723         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
724         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn,"splicebutton");
725         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
726         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
727         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
728         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
729         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
730
731
732         VFrame *transport_up = new_image("transportup.png");
733         VFrame *transport_hi = new_image("transporthi.png");
734         VFrame *transport_dn = new_image("transportdn.png");
735
736         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
737         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
738         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
739         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
740         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
741         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
742         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
743         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
744         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
745         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
746         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
747         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
748         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
749
750
751
752 // CWindow icons
753         new_image("cwindow_inactive", "cwindow_inactive.png");
754         new_image("cwindow_active", "cwindow_active.png");
755
756
757
758         new_image_set("category_button",
759                 3,
760                 "preferencesbutton_dn.png",
761                 "preferencesbutton_dnhi.png",
762                 "preferencesbutton_dnlo.png");
763
764         new_image_set("category_button_checked",
765                 3,
766                 "preferencesbutton_up.png",
767                 "preferencesbutton_uphi.png",
768                 "preferencesbutton_dnlo.png");
769
770
771
772
773
774         new_image_set("color3way_point",
775                 3,
776                 "color3way_up.png",
777                 "color3way_hi.png",
778                 "color3way_dn.png");
779
780         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
781         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
782         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
783         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
784         new_toggle("blank30x30.png",
785                    new_image("locklabels_locked.png"),
786                    new_image("locklabels_lockedhi.png"),
787                    new_image("locklabels_unlocked.png"),
788                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
789                    new_image("locklabels_unlockedhi.png"),
790                    "locklabels");
791
792         VFrame *cpanel_up = new_image("cpanel_up.png");
793         VFrame *cpanel_hi = new_image("cpanel_hi.png");
794         VFrame *cpanel_dn = new_image("cpanel_dn.png");
795         VFrame *cpanel_checked = new_image("cpanel_checked.png");
796         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
797
798
799         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
800         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
801         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
802         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
803         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
804         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
805         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
806         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
807         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
808         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
809
810         // toggle for tangent mode (compositor/tool window)
811         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
812         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
813
814
815         flush_images();
816
817         title_font = MEDIUMFONT_3D;
818         title_color = 0xbfbfbf;
819         recordgui_fixed_color = YELLOW;
820         recordgui_variable_color = RED;
821
822         channel_position_color = MEYELLOW;
823         resources->meter_title_w = 25;
824
825         // (asset) edit info text color
826         edit_font_color = YELLOW;
827 }
828
829 #define VWINDOW_METER_MARGIN 5
830
831 void UNFLATTHEME::build_bg_data()
832 {
833 // Audio settings
834         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
835
836 // Track bitmaps
837         new_image("resource1024", "resource1024.png");
838         new_image("resource512", "resource512.png");
839         new_image("resource256", "resource256.png");
840         new_image("resource128", "resource128.png");
841         new_image("resource64", "resource64.png");
842         new_image("resource32", "resource32.png");
843         new_image("plugin_bg_data", "plugin_bg.png");
844         new_image("title_bg_data", "title_bg.png");
845         new_image("vtimebar_bg_data", "vwindow_timebar.png");
846 }
847
848 void UNFLATTHEME::build_overlays()
849 {
850         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
851         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
852         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
853         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
854         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
855         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
856 }
857
858 void UNFLATTHEME::draw_rwindow_bg(RecordGUI *gui)
859 {
860 //      int y;
861 //      int margin = 50;
862 //      int margin2 = 80;
863 //      gui->draw_9segment(recordgui_batch_x - margin,
864 //              0,
865 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
866 //              recordgui_buttons_y,
867 //              rgui_batch);
868 //      gui->draw_3segmenth(recordgui_options_x - margin2,
869 //              recordgui_buttons_y - 5,
870 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
871 //              rgui_controls);
872 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
873 //      gui->draw_9segment(0,
874 //              y,
875 //              mwindow->session->rwindow_w,
876 //              mwindow->session->rwindow_h - y,
877 //              rgui_list);
878 }
879
880 void UNFLATTHEME::draw_rmonitor_bg(RecordMonitorGUI *gui)
881 {
882 //      int margin = 45;
883 //      int panel_w = 300;
884 //      int x = rmonitor_meter_x - margin;
885 //      int w = mwindow->session->rmonitor_w - x;
886 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
887 //      gui->clear_box(0,
888 //              0,
889 //              mwindow->session->rmonitor_w,
890 //              mwindow->session->rmonitor_h);
891 //      gui->draw_9segment(x,
892 //              0,
893 //              w,
894 //              mwindow->session->rmonitor_h,
895 //              rmonitor_meters);
896 }
897
898
899
900
901
902
903 void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui)
904 {
905 // Button bar
906         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
907                 gui->menu_w(), get_image("mbutton_bg"));
908
909         int pdw = get_image("panel_divider")->get_w();
910         int x = mbuttons_x;
911         x += 9 * get_image("play")->get_w();
912         x += mtransport_margin;                                       // the control buttons
913
914         gui->draw_vframe(get_image("panel_divider"),
915                 x - toggle_margin / 2 - pdw / 2 + 2,
916                 mbuttons_y - 1);
917         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
918
919         gui->draw_vframe(get_image("panel_divider"),
920                 x - toggle_margin / 2 - pdw / 2 + 2,
921                 mbuttons_y - 1);
922
923         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
924         gui->draw_vframe(get_image("panel_divider"),
925                 x - toggle_margin / 2 - pdw / 2 + 2,
926                 mbuttons_y - 1);
927
928 // Clock
929         gui->draw_3segmenth(0,
930                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
931                 get_image("patchbay_bg")->get_w(),
932                 get_image("clock_bg"));
933
934 // Patchbay
935         gui->draw_3segmentv(patchbay_x,
936                 patchbay_y,
937                 patchbay_h,
938                 get_image("patchbay_bg"));
939
940 // Track canvas
941         gui->set_color(BLACK);
942         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
943                 mcanvas_y + mtimebar_h,
944                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
945                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
946
947 // Timebar
948         gui->draw_3segmenth(mtimebar_x,
949                 mtimebar_y,
950                 mtimebar_w,
951                 get_image("timebar_bg"));
952
953 // Zoombar
954         gui->set_color(0x333333);
955         gui->draw_box(mzoom_x,
956                 mzoom_y,
957                 mwindow->session->mwindow_w,
958                 25);
959
960 // Scrollbar filler
961 //      gui->draw_vframe(get_image("mscroll_filler"),
962 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
963 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
964
965 // Status
966         gui->draw_3segmenth(mzoom_x,
967                 mzoom_y,
968                 mzoom_w,
969                 get_image("statusbar"));
970
971
972 }
973
974 void UNFLATTHEME::draw_cwindow_bg(CWindowGUI *gui)
975 {
976         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
977
978         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
979
980         if(mwindow->edl->session->cwindow_meter)
981         {
982                 gui->draw_3segmenth(cstatus_x,
983                         ccomposite_h,
984                         cmeter_x - widget_border - cstatus_x,
985                         get_image("cbuttons_right"));
986                 gui->draw_9segment(cmeter_x - widget_border,
987                         0,
988                         mwindow->session->cwindow_w - cmeter_x + widget_border,
989                         mwindow->session->cwindow_h,
990                         get_image("cmeter_bg"));
991         }
992         else
993         {
994                 gui->draw_3segmenth(cstatus_x,
995                         ccomposite_h,
996                         cmeter_x - widget_border - cstatus_x + 100,
997                         get_image("cbuttons_right"));
998         }
999 }
1000
1001 void UNFLATTHEME::draw_vwindow_bg(VWindowGUI *gui)
1002 {
1003         gui->draw_3segmenth(0,
1004                 vcanvas_h,
1005                 vdivision_x,
1006                 get_image("vbuttons_left"));
1007         if(mwindow->edl->session->vwindow_meter)
1008         {
1009                 gui->draw_3segmenth(vdivision_x,
1010                         vcanvas_h,
1011                         vmeter_x - widget_border - vdivision_x,
1012                         get_image("cbuttons_right"));
1013                 gui->draw_9segment(vmeter_x - widget_border,
1014                         0,
1015                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1016                         mwindow->session->vwindow_h,
1017                         get_image("cmeter_bg"));
1018         }
1019         else
1020         {
1021                 gui->draw_3segmenth(vdivision_x,
1022                         vcanvas_h,
1023                         vmeter_x - widget_border - vdivision_x + 100,
1024                         get_image("cbuttons_right"));
1025         }
1026
1027 // Clock border
1028         gui->draw_3segmenth(vtime_x - 20,
1029                 vtime_y - 1,
1030                 vtime_w + 40,
1031                 get_image("vclock"));
1032 }
1033
1034
1035 void UNFLATTHEME::draw_preferences_bg(PreferencesWindow *gui)
1036 {
1037         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1038 }
1039
1040 void UNFLATTHEME::draw_new_bg(NewWindow *gui)
1041 {
1042         gui->draw_vframe(get_image("new_bg"), 0, 0);
1043 }
1044
1045 void UNFLATTHEME::draw_setformat_bg(SetFormatWindow *gui)
1046 {
1047         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1048 }
1049
1050