4c0742320572530d128dfc595245069bcf2a3840
[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         new_toggle("mask_scale_x.png",   "mask_scale_xup.png",    "mask_scale_xuphi.png",
870                 "mask_scale_xchkd.png",  "mask_scale_xdown.png",  "mask_scale_xchkdhi.png",
871                 "mask_scale_x");
872         new_toggle("mask_scale_y.png",   "mask_scale_yup.png",    "mask_scale_yuphi.png",
873                 "mask_scale_ychkd.png",  "mask_scale_ydown.png",  "mask_scale_ychkdhi.png",
874                 "mask_scale_y");
875         new_toggle("mask_scale_xy.png",  "mask_scale_xyup.png",   "mask_scale_xyuphi.png",
876                 "mask_scale_xychkd.png", "mask_scale_xydown.png", "mask_scale_xychkdhi.png",
877                 "mask_scale_xy");
878
879         flush_images();
880
881         title_font = MEDIUMFONT_3D;
882         title_color = 0xbfbfbf;
883         recordgui_fixed_color = YELLOW;
884         recordgui_variable_color = RED;
885
886         channel_position_color = MEYELLOW;
887         resources->meter_title_w = 25;
888
889         // (asset) edit info text color
890         edit_font_color = YELLOW;
891 }
892
893 #define VWINDOW_METER_MARGIN 5
894
895 void UNFLATTHEME::build_bg_data()
896 {
897 // Audio settings
898         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
899
900 // Track bitmaps
901         new_image("resource1024", "resource1024.png");
902         new_image("resource512", "resource512.png");
903         new_image("resource256", "resource256.png");
904         new_image("resource128", "resource128.png");
905         new_image("resource64", "resource64.png");
906         new_image("resource32", "resource32.png");
907         new_image("plugin_bg_data", "plugin_bg.png");
908         new_image("title_bg_data", "title_bg.png");
909         new_image("vtimebar_bg_data", "vwindow_timebar.png");
910 }
911
912 void UNFLATTHEME::build_overlays()
913 {
914         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
915         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
916         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
917         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
918         hardedge_data = new VFramePng(get_image_data("hardedge.png"));
919         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
920         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
921 }
922
923 void UNFLATTHEME::draw_rwindow_bg(RecordGUI *gui)
924 {
925 //      int y;
926 //      int margin = 50;
927 //      int margin2 = 80;
928 //      gui->draw_9segment(recordgui_batch_x - margin,
929 //              0,
930 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
931 //              recordgui_buttons_y,
932 //              rgui_batch);
933 //      gui->draw_3segmenth(recordgui_options_x - margin2,
934 //              recordgui_buttons_y - 5,
935 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
936 //              rgui_controls);
937 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
938 //      gui->draw_9segment(0,
939 //              y,
940 //              mwindow->session->rwindow_w,
941 //              mwindow->session->rwindow_h - y,
942 //              rgui_list);
943 }
944
945 void UNFLATTHEME::draw_rmonitor_bg(RecordMonitorGUI *gui)
946 {
947 //      int margin = 45;
948 //      int panel_w = 300;
949 //      int x = rmonitor_meter_x - margin;
950 //      int w = mwindow->session->rmonitor_w - x;
951 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
952 //      gui->clear_box(0,
953 //              0,
954 //              mwindow->session->rmonitor_w,
955 //              mwindow->session->rmonitor_h);
956 //      gui->draw_9segment(x,
957 //              0,
958 //              w,
959 //              mwindow->session->rmonitor_h,
960 //              rmonitor_meters);
961 }
962
963
964
965
966
967
968 void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui)
969 {
970 // Button bar
971         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
972                 gui->menu_w(), get_image("mbutton_bg"));
973
974         int pdw = get_image("panel_divider")->get_w();
975         int x = mbuttons_x;
976         x += 9 * get_image("play")->get_w();
977         x += mtransport_margin;                                       // the control buttons
978
979         gui->draw_vframe(get_image("panel_divider"),
980                 x - toggle_margin / 2 - pdw / 2 + 2,
981                 mbuttons_y - 1);
982         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
983
984         gui->draw_vframe(get_image("panel_divider"),
985                 x - toggle_margin / 2 - pdw / 2 + 2,
986                 mbuttons_y - 1);
987
988         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
989         gui->draw_vframe(get_image("panel_divider"),
990                 x - toggle_margin / 2 - pdw / 2 + 2,
991                 mbuttons_y - 1);
992
993 // Clock
994         gui->draw_3segmenth(0,
995                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
996                 get_image("patchbay_bg")->get_w(),
997                 get_image("clock_bg"));
998
999 // Patchbay
1000         gui->draw_3segmentv(patchbay_x,
1001                 patchbay_y,
1002                 patchbay_h,
1003                 get_image("patchbay_bg"));
1004
1005 // Track canvas
1006         gui->set_color(BLACK);
1007         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
1008                 mcanvas_y + mtimebar_h,
1009                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1010                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
1011
1012 // Timebar
1013         gui->draw_3segmenth(mtimebar_x,
1014                 mtimebar_y,
1015                 mtimebar_w,
1016                 get_image("timebar_bg"));
1017
1018 // Zoombar
1019         gui->set_color(0x333333);
1020         gui->draw_box(mzoom_x,
1021                 mzoom_y,
1022                 mwindow->session->mwindow_w,
1023                 25);
1024
1025 // Scrollbar filler
1026 //      gui->draw_vframe(get_image("mscroll_filler"),
1027 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1028 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
1029
1030 // Status
1031         gui->draw_3segmenth(mzoom_x,
1032                 mzoom_y,
1033                 mzoom_w,
1034                 get_image("statusbar"));
1035
1036
1037 }
1038
1039 void UNFLATTHEME::draw_cwindow_bg(CWindowGUI *gui)
1040 {
1041         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
1042
1043         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
1044
1045         if(mwindow->edl->session->cwindow_meter)
1046         {
1047                 gui->draw_3segmenth(cstatus_x,
1048                         ccomposite_h,
1049                         cmeter_x - widget_border - cstatus_x,
1050                         get_image("cbuttons_right"));
1051                 gui->draw_9segment(cmeter_x - widget_border,
1052                         0,
1053                         mwindow->session->cwindow_w - cmeter_x + widget_border,
1054                         mwindow->session->cwindow_h,
1055                         get_image("cmeter_bg"));
1056         }
1057         else
1058         {
1059                 gui->draw_3segmenth(cstatus_x,
1060                         ccomposite_h,
1061                         cmeter_x - widget_border - cstatus_x + 100,
1062                         get_image("cbuttons_right"));
1063         }
1064 }
1065
1066 void UNFLATTHEME::draw_vwindow_bg(VWindowGUI *gui)
1067 {
1068         gui->draw_3segmenth(0,
1069                 vcanvas_h,
1070                 vdivision_x,
1071                 get_image("vbuttons_left"));
1072         if(mwindow->edl->session->vwindow_meter)
1073         {
1074                 gui->draw_3segmenth(vdivision_x,
1075                         vcanvas_h,
1076                         vmeter_x - widget_border - vdivision_x,
1077                         get_image("cbuttons_right"));
1078                 gui->draw_9segment(vmeter_x - widget_border,
1079                         0,
1080                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1081                         mwindow->session->vwindow_h,
1082                         get_image("cmeter_bg"));
1083         }
1084         else
1085         {
1086                 gui->draw_3segmenth(vdivision_x,
1087                         vcanvas_h,
1088                         vmeter_x - widget_border - vdivision_x + 100,
1089                         get_image("cbuttons_right"));
1090         }
1091
1092 // Clock border
1093         gui->draw_3segmenth(vtime_x - 20,
1094                 vtime_y - 1,
1095                 vtime_w + 40,
1096                 get_image("vclock"));
1097 }
1098
1099
1100 void UNFLATTHEME::draw_preferences_bg(PreferencesWindow *gui)
1101 {
1102         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1103 }
1104
1105 void UNFLATTHEME::draw_new_bg(NewWindow *gui)
1106 {
1107         gui->draw_vframe(get_image("new_bg"), 0, 0);
1108 }
1109
1110 void UNFLATTHEME::draw_setformat_bg(SetFormatWindow *gui)
1111 {
1112         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1113 }
1114
1115