opengl dot() fix, add file dates, sort file name/time, fix icon image lookup, sync...
[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()
67 {
68         return _("UnFlat");
69 }
70
71 Theme* UNFLATTHEMEMain::new_theme()
72 {
73         theme = new UNFLATTHEME;
74         extern unsigned char _binary_theme_unflat_data_start[];
75         theme->set_data(_binary_theme_unflat_data_start);
76         return theme;
77 }
78
79
80
81
82
83
84
85
86 UNFLATTHEME::UNFLATTHEME()
87  : Theme()
88 {
89 }
90
91 UNFLATTHEME::~UNFLATTHEME()
92 {
93         delete camerakeyframe_data;
94         delete channel_position_data;
95         delete keyframe_data;
96         delete maskkeyframe_data;
97         delete modekeyframe_data;
98         delete pankeyframe_data;
99         delete projectorkeyframe_data;
100 }
101
102 void UNFLATTHEME::initialize()
103 {
104         BC_Resources *resources = BC_WindowBase::get_resources();
105
106
107         resources->text_default = 0xbfbfbf;
108         resources->text_background = 0x333333;
109         resources->text_border1 = 0x202020;
110         resources->text_border2 = 0x333333;
111         resources->text_border3 = 0x333333;
112         resources->text_border4 = 0x969696;
113         resources->text_inactive_highlight = 0x707070;
114
115         resources->bg_color = 0x4d4d4d;
116         resources->border_light2 = resources->bg_color;
117         resources->border_shadow2 = resources->bg_color;
118         resources->default_text_color = 0xbfbfbf;
119         resources->menu_title_text = 0xbfbfbf;
120         resources->popup_title_text = 0xbfbfbf;
121         resources->menu_item_text = 0xbfbfbf;
122         resources->menu_highlighted_fontcolor = WHITE;
123         resources->generic_button_margin = 30;
124         resources->pot_needle_color = resources->text_default;
125         resources->pot_offset = 1;
126         resources->progress_text = resources->text_default;
127         resources->meter_font_color = resources->default_text_color;
128
129         resources->menu_light = 0xababab;
130         resources->menu_highlighted = 0x6f6f6f;
131         resources->menu_down = 0x4b4b4b;
132         resources->menu_up = 0x4b4b4b;
133         resources->menu_shadow = 0x202020;
134         resources->popupmenu_margin = 15;
135         resources->popupmenu_triangle_margin = 15;
136
137         resources->listbox_title_color = 0xbfbfbf;
138
139         resources->listbox_title_margin = 20;
140         resources->listbox_title_hotspot = 20;
141         resources->listbox_border1 = 0x1a1a1a;
142         resources->listbox_border2 = 0x333333;
143         resources->listbox_border3 = 0x333333;
144         resources->listbox_border4 = 0x646464;
145         resources->listbox_highlighted = 0x505050;
146         resources->listbox_inactive = 0x333333;
147         resources->listbox_bg = 0;
148         resources->listbox_text = 0xbfbfbf;
149
150         resources->filebox_margin = 130;
151         resources->file_color = 0xbfbfbf;
152         resources->directory_color = 0xa0a0ff;
153
154
155         new_toggle("loadmode_new.png",
156                 "loadmode_up.png",
157                 "loadmode_hi.png",
158                 "loadmode_checked.png",
159                 "loadmode_dn.png",
160                 "loadmode_checkedhi.png",
161                 "loadmode_new");
162         new_toggle("loadmode_none.png",
163                 "loadmode_up.png",
164                 "loadmode_hi.png",
165                 "loadmode_checked.png",
166                 "loadmode_dn.png",
167                 "loadmode_checkedhi.png",
168                 "loadmode_none");
169         new_toggle("loadmode_newcat.png",
170                 "loadmode_up.png",
171                 "loadmode_hi.png",
172                 "loadmode_checked.png",
173                 "loadmode_dn.png",
174                 "loadmode_checkedhi.png",
175                 "loadmode_newcat");
176         new_toggle("loadmode_cat.png",
177                 "loadmode_up.png",
178                 "loadmode_hi.png",
179                 "loadmode_checked.png",
180                 "loadmode_dn.png",
181                 "loadmode_checkedhi.png",
182                 "loadmode_cat");
183         new_toggle("loadmode_newtracks.png",
184                 "loadmode_up.png",
185                 "loadmode_hi.png",
186                 "loadmode_checked.png",
187                 "loadmode_dn.png",
188                 "loadmode_checkedhi.png",
189                 "loadmode_newtracks");
190         new_toggle("loadmode_paste.png",
191                 "loadmode_up.png",
192                 "loadmode_hi.png",
193                 "loadmode_checked.png",
194                 "loadmode_dn.png",
195                 "loadmode_checkedhi.png",
196                 "loadmode_paste");
197         new_toggle("loadmode_resource.png",
198                 "loadmode_up.png",
199                 "loadmode_hi.png",
200                 "loadmode_checked.png",
201                 "loadmode_dn.png",
202                 "loadmode_checkedhi.png",
203                 "loadmode_resource");
204         new_toggle("loadmode_nested.png",
205                 "loadmode_up.png",
206                 "loadmode_hi.png",
207                 "loadmode_checked.png",
208                 "loadmode_dn.png",
209                 "loadmode_checkedhi.png",
210                 "loadmode_nested");
211
212
213         resources->filebox_icons_images = new_button("icons.png",
214                 "fileboxbutton_up.png",
215                 "fileboxbutton_hi.png",
216                 "fileboxbutton_dn.png",
217                 "filebox_icons");
218
219         resources->filebox_text_images = new_button("text.png",
220                 "fileboxbutton_up.png",
221                 "fileboxbutton_hi.png",
222                 "fileboxbutton_dn.png",
223                 "filebox_text");
224
225         resources->filebox_newfolder_images = new_button("folder.png",
226                 "fileboxbutton_up.png",
227                 "fileboxbutton_hi.png",
228                 "fileboxbutton_dn.png",
229                 "filebox_newfolder");
230
231         resources->filebox_rename_images = new_button("rename.png",
232                 "fileboxbutton_up.png",
233                 "fileboxbutton_hi.png",
234                 "fileboxbutton_dn.png",
235                 "filebox_rename");
236
237         resources->filebox_updir_images = new_button("updir.png",
238                 "fileboxbutton_up.png",
239                 "fileboxbutton_hi.png",
240                 "fileboxbutton_dn.png",
241                 "filebox_updir");
242
243         resources->filebox_delete_images = new_button("delete.png",
244                 "fileboxbutton_up.png",
245                 "fileboxbutton_hi.png",
246                 "fileboxbutton_dn.png",
247                 "filebox_delete");
248
249         resources->filebox_reload_images = new_button("reload.png",
250                 "fileboxbutton_up.png",
251                 "fileboxbutton_hi.png",
252                 "fileboxbutton_dn.png",
253                 "filebox_reload");
254
255
256         resources->filebox_descend_images = new_button("openfolder.png",
257                 "filebox_bigbutton_up.png",
258                 "filebox_bigbutton_hi.png",
259                 "filebox_bigbutton_dn.png",
260                 "filebox_descend");
261
262         resources->usethis_button_images =
263                 resources->ok_images = new_button("ok.png",
264                 "filebox_bigbutton_up.png",
265                 "filebox_bigbutton_hi.png",
266                 "filebox_bigbutton_dn.png",
267                 "ok_button");
268
269         new_button("ok.png",
270                 "new_bigbutton_up.png",
271                 "new_bigbutton_hi.png",
272                 "new_bigbutton_dn.png",
273                 "new_ok_images");
274
275         resources->cancel_images = new_button("cancel.png",
276                 "filebox_bigbutton_up.png",
277                 "filebox_bigbutton_hi.png",
278                 "filebox_bigbutton_dn.png",
279                 "cancel_button");
280
281         new_button("cancel.png",
282                 "new_bigbutton_up.png",
283                 "new_bigbutton_hi.png",
284                 "new_bigbutton_dn.png",
285                 "new_cancel_images");
286
287         resources->medium_7segment = new_image_set(TOTAL_7SEGMENT,
288                 "0.png",
289                 "1.png",
290                 "2.png",
291                 "3.png",
292                 "4.png",
293                 "5.png",
294                 "6.png",
295                 "7.png",
296                 "8.png",
297                 "9.png",
298                 "colon.png",
299                 "period.png",
300                 "a.png",
301                 "b.png",
302                 "c.png",
303                 "d.png",
304                 "e.png",
305                 "f.png",
306                 "space.png",
307                 "dash.png");
308
309         resources->bar_data = new_image("bar", "bar.png");
310         resources->check = new_image("check", "check.png");
311
312         resources->min_menu_w = 96;
313         resources->menu_popup_bg = new_image("menu_popup_bg.png");
314         resources->menu_item_bg = new_image_set(3,
315                 "menuitem_up.png",
316                 "menuitem_hi.png",
317                 "menuitem_dn.png");
318         resources->menu_bar_bg = new_image("menubar_bg.png");
319         resources->menu_title_bg = new_image_set(3,
320                 "menubar_up.png",
321                 "menubar_hi.png",
322                 "menubar_dn.png");
323
324
325         resources->popupmenu_images = 0;
326 //              new_image_set(3,
327 //              "menupopup_up.png",
328 //              "menupopup_hi.png",
329 //              "menupopup_dn.png");
330
331         resources->toggle_highlight_bg = new_image("toggle_highlight_bg",
332                 "text_highlight.png");
333
334         resources->generic_button_images = new_image_set(3,
335                         "generic_up.png",
336                         "generic_hi.png",
337                         "generic_dn.png");
338         resources->horizontal_slider_data = new_image_set(6,
339                         "hslider_fg_up.png",
340                         "hslider_fg_hi.png",
341                         "hslider_fg_dn.png",
342                         "hslider_bg_up.png",
343                         "hslider_bg_hi.png",
344                         "hslider_bg_dn.png");
345         resources->vertical_slider_data = new_image_set(6,
346                         "hslider_fg_up.png",
347                         "hslider_fg_hi.png",
348                         "hslider_fg_dn.png",
349                         "hslider_bg_up.png",
350                         "hslider_bg_hi.png",
351                         "hslider_bg_dn.png");
352         for( int i=0; i<6; ++i )
353                 resources->vertical_slider_data[i]->rotate90();
354
355         resources->progress_images = new_image_set(2,
356                         "progress_bg.png",
357                         "progress_hi.png");
358         resources->tumble_data = new_image_set(4,
359                 "tumble_up.png",
360                 "tumble_hi.png",
361                 "tumble_bottom.png",
362                 "tumble_top.png");
363         resources->listbox_button = new_button4("listbox_button.png",
364                 "editpanel_up.png",
365                 "editpanel_hi.png",
366                 "editpanel_dn.png",
367                 "editpanel_hi.png",
368                 "listbox_button");
369         resources->listbox_column = new_image_set(3,
370                 "column_up.png",
371                 "column_hi.png",
372                 "column_dn.png");
373         resources->listbox_up = new_image("listbox_up.png");
374         resources->listbox_dn = new_image("listbox_dn.png");
375         resources->pan_data = new_image_set(7,
376                         "pan_up.png",
377                         "pan_hi.png",
378                         "pan_popup.png",
379                         "pan_channel.png",
380                         "pan_stick.png",
381                         "pan_channel_small.png",
382                         "pan_stick_small.png");
383         resources->pan_text_color = WHITE;
384
385         resources->pot_images = new_image_set(3,
386                 "pot_up.png",
387                 "pot_hi.png",
388                 "pot_dn.png");
389
390         resources->checkbox_images = new_image_set(5,
391                 "checkbox_up.png",
392                 "checkbox_hi.png",
393                 "checkbox_checked.png",
394                 "checkbox_dn.png",
395                 "checkbox_checkedhi.png");
396
397         resources->radial_images = new_image_set(5,
398                 "radial_up.png",
399                 "radial_hi.png",
400                 "radial_checked.png",
401                 "radial_dn.png",
402                 "radial_checkedhi.png");
403
404         resources->xmeter_images = new_image_set(7,
405                 "xmeter_normal.png",
406                 "xmeter_green.png",
407                 "xmeter_red.png",
408                 "xmeter_yellow.png",
409                 "xmeter_white.png",
410                 "xmeter_over.png",
411                 "downmix51_2.png");
412         resources->ymeter_images = new_image_set(7,
413                 "ymeter_normal.png",
414                 "ymeter_green.png",
415                 "ymeter_red.png",
416                 "ymeter_yellow.png",
417                 "ymeter_white.png",
418                 "ymeter_over.png",
419                 "downmix51_2.png");
420
421         resources->hscroll_data = new_image_set(10,
422                         "hscroll_handle_up.png",
423                         "hscroll_handle_hi.png",
424                         "hscroll_handle_dn.png",
425                         "hscroll_handle_bg.png",
426                         "hscroll_left_up.png",
427                         "hscroll_left_hi.png",
428                         "hscroll_left_dn.png",
429                         "hscroll_right_up.png",
430                         "hscroll_right_hi.png",
431                         "hscroll_right_dn.png");
432
433         resources->vscroll_data = new_image_set(10,
434                         "vscroll_handle_up.png",
435                         "vscroll_handle_hi.png",
436                         "vscroll_handle_dn.png",
437                         "vscroll_handle_bg.png",
438                         "vscroll_left_up.png",
439                         "vscroll_left_hi.png",
440                         "vscroll_left_dn.png",
441                         "vscroll_right_up.png",
442                         "vscroll_right_hi.png",
443                         "vscroll_right_dn.png");
444         resources->scroll_minhandle = 20;
445
446
447         new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
448         new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip");
449         new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip");
450         new_button("swap_extents.png",
451                 "editpanel_up.png",
452                 "editpanel_hi.png",
453                 "editpanel_dn.png",
454                 "swap_extents");
455
456
457 // Record windows
458
459
460         preferences_category_overlap = 0;
461         preferencescategory_x = 0;
462         preferencescategory_y = 5;
463         preferencestitle_x = 5;
464         preferencestitle_y = 10;
465         preferencesoptions_x = 5;
466         preferencesoptions_y = 0;
467
468 // MWindow
469         message_normal = resources->text_default;
470         audio_color = GREEN;
471         mtransport_margin = 10;
472         toggle_margin = 10;
473
474         new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane");
475         new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png");
476         new_image_set("ypane", 3, "ypane_up.png", "ypane_hi.png", "ypane_dn.png");
477
478         new_image("mbutton_bg", "mbutton_bg.png");
479         new_image("timebar_bg", "timebar_bg_flat.png");
480         new_image("timebar_brender", "timebar_brender.png");
481         new_image("clock_bg", "mclock_flat.png");
482         new_image("patchbay_bg", "patchbay_bg.png");
483         new_image("statusbar", "statusbar.png");
484 //      new_image("mscroll_filler", "mscroll_filler.png");
485
486         new_image_set("zoombar_menu", 3, "zoompopup_up.png", "zoompopup_hi.png", "zoompopup_dn.png");
487         new_image_set("zoombar_tumbler", 4, "zoomtumble_up.png", "zoomtumble_hi.png", "zoomtumble_bottom.png", "zoomtumble_top.png");
488
489         new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
490         new_image("mode_add", "mode_add.png");
491         new_image("mode_divide", "mode_divide.png");
492         new_image("mode_multiply", "mode_multiply.png");
493         new_image("mode_normal", "mode_normal.png");
494         new_image("mode_replace", "mode_replace.png");
495         new_image("mode_subtract", "mode_subtract.png");
496         new_image("mode_max", "mode_max.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 = 110;
524
525         setformat_x3 = 315;
526         setformat_x4 = 425;
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                 "playpatch_up.png",
542                 "playpatch_hi.png",
543                 "playpatch_checked.png",
544                 "playpatch_dn.png",
545                 "playpatch_checkedhi.png",
546                 "playpatch_data");
547
548         new_toggle("recordpatch.png",
549                 "recordpatch_up.png",
550                 "recordpatch_hi.png",
551                 "recordpatch_checked.png",
552                 "recordpatch_dn.png",
553                 "recordpatch_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("preset_edit",
628                 3,
629                 "preset_edit0.png",
630                 "preset_edit1.png",
631                 "preset_edit2.png");
632
633         new_image_set("histogram_carrot",
634                 5,
635                 "histogram_carrot_up.png",
636                 "histogram_carrot_hi.png",
637                 "histogram_carrot_checked.png",
638                 "histogram_carrot_dn.png",
639                 "histogram_carrot_checkedhi.png");
640
641
642         statusbar_cancel_data = new_image_set(3,
643                 "statusbar_cancel_up.png",
644                 "statusbar_cancel_hi.png",
645                 "statusbar_cancel_dn.png");
646
647
648         VFrame *editpanel_up = new_image("editpanel_up.png");
649         VFrame *editpanel_hi = new_image("editpanel_hi.png");
650         VFrame *editpanel_dn = new_image("editpanel_dn.png");
651         VFrame *editpanel_checked = new_image("editpanel_checked.png");
652         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
653
654         new_image("panel_divider", "panel_divider.png");
655         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
656         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
657         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
658
659         new_toggle("histogram_toggle.png",
660                 editpanel_up,
661                 editpanel_hi,
662                 editpanel_checked,
663                 editpanel_dn,
664                 editpanel_checkedhi,
665                 "histogram_toggle");
666         new_toggle("histogram_rgb.png",
667                 editpanel_up,
668                 editpanel_hi,
669                 editpanel_checked,
670                 editpanel_dn,
671                 editpanel_checkedhi,
672                 "histogram_rgb_toggle");
673         new_toggle("waveform.png",
674                 editpanel_up,
675                 editpanel_hi,
676                 editpanel_checked,
677                 editpanel_dn,
678                 editpanel_checkedhi,
679                 "waveform_toggle");
680         new_toggle("waveform_rgb.png",
681                 editpanel_up,
682                 editpanel_hi,
683                 editpanel_checked,
684                 editpanel_dn,
685                 editpanel_checkedhi,
686                 "waveform_rgb_toggle");
687         new_toggle("scope.png",
688                 editpanel_up,
689                 editpanel_hi,
690                 editpanel_checked,
691                 editpanel_dn,
692                 editpanel_checkedhi,
693                 "scope_toggle");
694
695         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
696         new_button("histogram_img.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram_img");
697
698
699         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
700         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
701         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
702         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
703         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
704         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
705         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
706         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
707         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
708         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
709         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
710         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
711         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
712         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
713         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
714         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn,"overbutton");
715         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn,"overwritebutton");
716         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
717         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
718         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
719         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn,"splicebutton");
720         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
721         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
722         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
723         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
724         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
725
726
727         VFrame *transport_up = new_image("transportup.png");
728         VFrame *transport_hi = new_image("transporthi.png");
729         VFrame *transport_dn = new_image("transportdn.png");
730
731         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
732         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
733         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
734         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
735         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
736         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
737         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
738         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
739         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
740         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
741         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
742         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
743         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
744
745
746
747 // CWindow icons
748         new_image("cwindow_inactive", "cwindow_inactive.png");
749         new_image("cwindow_active", "cwindow_active.png");
750
751
752
753         new_image_set("category_button",
754                 3,
755                 "preferencesbutton_dn.png",
756                 "preferencesbutton_dnhi.png",
757                 "preferencesbutton_dnlo.png");
758
759         new_image_set("category_button_checked",
760                 3,
761                 "preferencesbutton_up.png",
762                 "preferencesbutton_uphi.png",
763                 "preferencesbutton_dnlo.png");
764
765
766
767
768
769         new_image_set("color3way_point",
770                 3,
771                 "color3way_up.png",
772                 "color3way_hi.png",
773                 "color3way_dn.png");
774
775         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
776         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
777         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
778         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
779         new_toggle("blank30x30.png",
780                    new_image("locklabels_locked.png"),
781                    new_image("locklabels_lockedhi.png"),
782                    new_image("locklabels_unlocked.png"),
783                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
784                    new_image("locklabels_unlockedhi.png"),
785                    "locklabels");
786
787         VFrame *cpanel_up = new_image("cpanel_up.png");
788         VFrame *cpanel_hi = new_image("cpanel_hi.png");
789         VFrame *cpanel_dn = new_image("cpanel_dn.png");
790         VFrame *cpanel_checked = new_image("cpanel_checked.png");
791         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
792
793
794         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
795         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
796         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
797         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
798         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
799         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
800         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
801         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
802         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
803         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
804
805         // toggle for tangent mode (compositor/tool window)
806         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
807         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
808
809
810         flush_images();
811
812         title_font = MEDIUMFONT_3D;
813         title_color = 0xbfbfbf;
814         recordgui_fixed_color = YELLOW;
815         recordgui_variable_color = RED;
816
817         channel_position_color = MEYELLOW;
818         resources->meter_title_w = 25;
819
820         // (asset) edit info text color
821         edit_font_color = YELLOW;
822 }
823
824 #define VWINDOW_METER_MARGIN 5
825
826 void UNFLATTHEME::build_bg_data()
827 {
828 // Audio settings
829         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
830
831 // Track bitmaps
832         new_image("resource1024", "resource1024.png");
833         new_image("resource512", "resource512.png");
834         new_image("resource256", "resource256.png");
835         new_image("resource128", "resource128.png");
836         new_image("resource64", "resource64.png");
837         new_image("resource32", "resource32.png");
838         new_image("plugin_bg_data", "plugin_bg.png");
839         new_image("title_bg_data", "title_bg.png");
840         new_image("vtimebar_bg_data", "vwindow_timebar.png");
841 }
842
843 void UNFLATTHEME::build_overlays()
844 {
845         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
846         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
847         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
848         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
849         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
850         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
851 }
852
853 void UNFLATTHEME::draw_rwindow_bg(RecordGUI *gui)
854 {
855 //      int y;
856 //      int margin = 50;
857 //      int margin2 = 80;
858 //      gui->draw_9segment(recordgui_batch_x - margin,
859 //              0,
860 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
861 //              recordgui_buttons_y,
862 //              rgui_batch);
863 //      gui->draw_3segmenth(recordgui_options_x - margin2,
864 //              recordgui_buttons_y - 5,
865 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
866 //              rgui_controls);
867 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
868 //      gui->draw_9segment(0,
869 //              y,
870 //              mwindow->session->rwindow_w,
871 //              mwindow->session->rwindow_h - y,
872 //              rgui_list);
873 }
874
875 void UNFLATTHEME::draw_rmonitor_bg(RecordMonitorGUI *gui)
876 {
877 //      int margin = 45;
878 //      int panel_w = 300;
879 //      int x = rmonitor_meter_x - margin;
880 //      int w = mwindow->session->rmonitor_w - x;
881 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
882 //      gui->clear_box(0,
883 //              0,
884 //              mwindow->session->rmonitor_w,
885 //              mwindow->session->rmonitor_h);
886 //      gui->draw_9segment(x,
887 //              0,
888 //              w,
889 //              mwindow->session->rmonitor_h,
890 //              rmonitor_meters);
891 }
892
893
894
895
896
897
898 void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui)
899 {
900 // Button bar
901         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
902                 gui->menu_w(), get_image("mbutton_bg"));
903
904         int pdw = get_image("panel_divider")->get_w();
905         int x = mbuttons_x;
906         x += 9 * get_image("play")->get_w();
907         x += mtransport_margin;                                       // the control buttons
908
909         gui->draw_vframe(get_image("panel_divider"),
910                 x - toggle_margin / 2 - pdw / 2 + 2,
911                 mbuttons_y - 1);
912         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
913
914         gui->draw_vframe(get_image("panel_divider"),
915                 x - toggle_margin / 2 - pdw / 2 + 2,
916                 mbuttons_y - 1);
917
918         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
919         gui->draw_vframe(get_image("panel_divider"),
920                 x - toggle_margin / 2 - pdw / 2 + 2,
921                 mbuttons_y - 1);
922
923 // Clock
924         gui->draw_3segmenth(0,
925                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
926                 get_image("patchbay_bg")->get_w(),
927                 get_image("clock_bg"));
928
929 // Patchbay
930         gui->draw_3segmentv(patchbay_x,
931                 patchbay_y,
932                 patchbay_h,
933                 get_image("patchbay_bg"));
934
935 // Track canvas
936         gui->set_color(BLACK);
937         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
938                 mcanvas_y + mtimebar_h,
939                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
940                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
941
942 // Timebar
943         gui->draw_3segmenth(mtimebar_x,
944                 mtimebar_y,
945                 mtimebar_w,
946                 get_image("timebar_bg"));
947
948 // Zoombar
949         gui->set_color(0x333333);
950         gui->draw_box(mzoom_x,
951                 mzoom_y,
952                 mwindow->session->mwindow_w,
953                 25);
954
955 // Scrollbar filler
956 //      gui->draw_vframe(get_image("mscroll_filler"),
957 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
958 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
959
960 // Status
961         gui->draw_3segmenth(mzoom_x,
962                 mzoom_y,
963                 mzoom_w,
964                 get_image("statusbar"));
965
966
967 }
968
969 void UNFLATTHEME::draw_cwindow_bg(CWindowGUI *gui)
970 {
971         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
972
973         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
974
975         if(mwindow->edl->session->cwindow_meter)
976         {
977                 gui->draw_3segmenth(cstatus_x,
978                         ccomposite_h,
979                         cmeter_x - widget_border - cstatus_x,
980                         get_image("cbuttons_right"));
981                 gui->draw_9segment(cmeter_x - widget_border,
982                         0,
983                         mwindow->session->cwindow_w - cmeter_x + widget_border,
984                         mwindow->session->cwindow_h,
985                         get_image("cmeter_bg"));
986         }
987         else
988         {
989                 gui->draw_3segmenth(cstatus_x,
990                         ccomposite_h,
991                         cmeter_x - widget_border - cstatus_x + 100,
992                         get_image("cbuttons_right"));
993         }
994 }
995
996 void UNFLATTHEME::draw_vwindow_bg(VWindowGUI *gui)
997 {
998         gui->draw_3segmenth(0,
999                 vcanvas_h,
1000                 vdivision_x,
1001                 get_image("vbuttons_left"));
1002         if(mwindow->edl->session->vwindow_meter)
1003         {
1004                 gui->draw_3segmenth(vdivision_x,
1005                         vcanvas_h,
1006                         vmeter_x - widget_border - vdivision_x,
1007                         get_image("cbuttons_right"));
1008                 gui->draw_9segment(vmeter_x - widget_border,
1009                         0,
1010                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1011                         mwindow->session->vwindow_h,
1012                         get_image("cmeter_bg"));
1013         }
1014         else
1015         {
1016                 gui->draw_3segmenth(vdivision_x,
1017                         vcanvas_h,
1018                         vmeter_x - widget_border - vdivision_x + 100,
1019                         get_image("cbuttons_right"));
1020         }
1021
1022 // Clock border
1023         gui->draw_3segmenth(vtime_x - 20,
1024                 vtime_y - 1,
1025                 vtime_w + 40,
1026                 get_image("vclock"));
1027 }
1028
1029
1030 void UNFLATTHEME::draw_preferences_bg(PreferencesWindow *gui)
1031 {
1032         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1033 }
1034
1035 void UNFLATTHEME::draw_new_bg(NewWindow *gui)
1036 {
1037         gui->draw_vframe(get_image("new_bg"), 0, 0);
1038 }
1039
1040 void UNFLATTHEME::draw_setformat_bg(SetFormatWindow *gui)
1041 {
1042         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1043 }
1044
1045