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