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