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