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