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