rework android-rmt display, add a few buttons
[goodguy/history.git] / cinelerra-5.0 / 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,
884                 mbuttons_y - 1,
885                 mwindow->session->mwindow_w,
886                 get_image("mbutton_bg"));
887
888         int pdw = get_image("panel_divider")->get_w();
889         int x = mbuttons_x;
890         x += 9 * get_image("play")->get_w();
891         x += mtransport_margin;                                       // the control buttons
892
893         gui->draw_vframe(get_image("panel_divider"),
894                 x - toggle_margin / 2 - pdw / 2 + 2,
895                 mbuttons_y - 1);
896         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
897
898         gui->draw_vframe(get_image("panel_divider"),
899                 x - toggle_margin / 2 - pdw / 2 + 2,
900                 mbuttons_y - 1);
901
902         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
903         gui->draw_vframe(get_image("panel_divider"),
904                 x - toggle_margin / 2 - pdw / 2 + 2,
905                 mbuttons_y - 1);
906
907 // Clock
908         gui->draw_3segmenth(0,
909                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
910                 get_image("patchbay_bg")->get_w(),
911                 get_image("clock_bg"));
912
913 // Patchbay
914         gui->draw_3segmentv(patchbay_x,
915                 patchbay_y,
916                 patchbay_h,
917                 get_image("patchbay_bg"));
918
919 // Track canvas
920         gui->set_color(BLACK);
921         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
922                 mcanvas_y + mtimebar_h,
923                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
924                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
925
926 // Timebar
927         gui->draw_3segmenth(mtimebar_x,
928                 mtimebar_y,
929                 mtimebar_w,
930                 get_image("timebar_bg"));
931
932 // Zoombar
933         gui->set_color(0x75b697);
934         gui->draw_box(mzoom_x, 
935                 mzoom_y,
936                 mwindow->session->mwindow_w,
937                 25);
938
939 // Scrollbar filler
940 //      gui->draw_vframe(get_image("mscroll_filler"),
941 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
942 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
943
944 // Status
945         gui->draw_3segmenth(mzoom_x,
946                 mzoom_y,
947                 mzoom_w,
948                 get_image("statusbar"));
949
950
951 }
952
953 void HULKTHEME::draw_cwindow_bg(CWindowGUI *gui)
954 {
955         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
956
957         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
958
959         if(mwindow->edl->session->cwindow_meter)
960         {
961                 gui->draw_3segmenth(cstatus_x,
962                         ccomposite_h,
963                         cmeter_x - widget_border - cstatus_x,
964                         get_image("cbuttons_right"));
965                 gui->draw_9segment(cmeter_x - widget_border,
966                         0,
967                         mwindow->session->cwindow_w - cmeter_x + widget_border,
968                         mwindow->session->cwindow_h,
969                         get_image("cmeter_bg"));
970         }
971         else
972         {
973                 gui->draw_3segmenth(cstatus_x,
974                         ccomposite_h,
975                         cmeter_x - widget_border - cstatus_x + 100,
976                         get_image("cbuttons_right"));
977         }
978 }
979
980 void HULKTHEME::draw_vwindow_bg(VWindowGUI *gui)
981 {
982         gui->draw_3segmenth(0,
983                 vcanvas_h,
984                 vdivision_x,
985                 get_image("vbuttons_left"));
986         if(mwindow->edl->session->vwindow_meter)
987         {
988                 gui->draw_3segmenth(vdivision_x,
989                         vcanvas_h,
990                         vmeter_x - widget_border - vdivision_x,
991                         get_image("cbuttons_right"));
992                 gui->draw_9segment(vmeter_x - widget_border,
993                         0,
994                         mwindow->session->vwindow_w - vmeter_x + widget_border,
995                         mwindow->session->vwindow_h,
996                         get_image("cmeter_bg"));
997         }
998         else
999         {
1000                 gui->draw_3segmenth(vdivision_x,
1001                         vcanvas_h,
1002                         vmeter_x - widget_border - vdivision_x + 100,
1003                         get_image("cbuttons_right"));
1004         }
1005
1006 // Clock border
1007         gui->draw_3segmenth(vtime_x - 20,
1008                 vtime_y - 1,
1009                 vtime_w + 40,
1010                 get_image("vclock"));
1011 }
1012
1013 void HULKTHEME::draw_preferences_bg(PreferencesWindow *gui)
1014 {
1015         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1016 }
1017
1018 void HULKTHEME::draw_new_bg(NewWindow *gui)
1019 {
1020         gui->draw_vframe(get_image("new_bg"), 0, 0);
1021 }
1022
1023 void HULKTHEME::draw_setformat_bg(SetFormatWindow *gui)
1024 {
1025         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1026 }
1027