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