p/s proxy icon, rework window locks, segv in close_mixers + exportedl, ffmpeg default...
[goodguy/history.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
662         new_toggle("histogram_toggle.png",
663                 editpanel_up,
664                 editpanel_hi,
665                 editpanel_checked,
666                 editpanel_dn,
667                 editpanel_checkedhi,
668                 "histogram_toggle");
669         new_toggle("histogram_rgb.png",
670                 editpanel_up,
671                 editpanel_hi,
672                 editpanel_checked,
673                 editpanel_dn,
674                 editpanel_checkedhi,
675                 "histogram_rgb_toggle");
676         new_toggle("waveform.png",
677                 editpanel_up,
678                 editpanel_hi,
679                 editpanel_checked,
680                 editpanel_dn,
681                 editpanel_checkedhi,
682                 "waveform_toggle");
683         new_toggle("waveform_rgb.png",
684                 editpanel_up,
685                 editpanel_hi,
686                 editpanel_checked,
687                 editpanel_dn,
688                 editpanel_checkedhi,
689                 "waveform_rgb_toggle");
690         new_toggle("scope.png",
691                 editpanel_up,
692                 editpanel_hi,
693                 editpanel_checked,
694                 editpanel_dn,
695                 editpanel_checkedhi,
696                 "scope_toggle");
697
698         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
699         new_button("histogram_img.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram_img");
700
701
702         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
703         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
704         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
705         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
706         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
707         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
708         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
709         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
710         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
711         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
712         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
713         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
714         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
715         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
716         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
717         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn, "overbutton");
718         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn, "overwritebutton");
719         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
720         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
721         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
722         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn, "slicebutton");
723         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
724         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
725         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
726         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
727         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
728
729
730         VFrame *transport_up = new_image("transportup.png");
731         VFrame *transport_hi = new_image("transporthi.png");
732         VFrame *transport_dn = new_image("transportdn.png");
733
734         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
735         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
736         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
737         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
738         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
739         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
740         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
741         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
742         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
743         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
744         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
745         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
746         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
747
748
749
750 // CWindow icons
751         new_image("cwindow_inactive", "cwindow_inactive.png");
752         new_image("cwindow_active", "cwindow_active.png");
753
754
755
756         new_image_set("category_button",
757                 3,
758                 "preferencesbutton_dn.png",
759                 "preferencesbutton_dnhi.png",
760                 "preferencesbutton_dnlo.png");
761
762         new_image_set("category_button_checked",
763                 3,
764                 "preferencesbutton_up.png",
765                 "preferencesbutton_uphi.png",
766                 "preferencesbutton_dnlo.png");
767
768
769
770
771
772         new_image_set("color3way_point",
773                 3,
774                 "color3way_up.png",
775                 "color3way_hi.png",
776                 "color3way_dn.png");
777
778         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
779         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
780         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
781         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
782         new_toggle("blank30x30.png",
783                    new_image("locklabels_locked.png"),
784                    new_image("locklabels_lockedhi.png"),
785                    new_image("locklabels_unlocked.png"),
786                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
787                    new_image("locklabels_unlockedhi.png"),
788                    "locklabels");
789
790         VFrame *cpanel_up = new_image("cpanel_up.png");
791         VFrame *cpanel_hi = new_image("cpanel_hi.png");
792         VFrame *cpanel_dn = new_image("cpanel_dn.png");
793         VFrame *cpanel_checked = new_image("cpanel_checked.png");
794         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
795
796
797         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
798         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
799         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
800         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
801         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
802         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
803         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
804         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
805         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
806         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
807
808         // toggle for tangent mode (compositor/tool window)
809         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
810         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
811
812
813         flush_images();
814
815         title_font = MEDIUMFONT_3D;
816         title_color = 0x1b0f11;
817         recordgui_fixed_color = YELLOW;
818         recordgui_variable_color = RED;
819
820         channel_position_color = MEYELLOW;
821         resources->meter_title_w = 25;
822
823         // (asset) edit info text color
824         edit_font_color = YELLOW;
825 }
826
827 #define VWINDOW_METER_MARGIN 5
828
829 void PINKLADY::build_bg_data()
830 {
831 // Audio settings
832         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
833
834 // Track bitmaps
835         new_image("resource1024", "resource1024.png");
836         new_image("resource512", "resource512.png");
837         new_image("resource256", "resource256.png");
838         new_image("resource128", "resource128.png");
839         new_image("resource64", "resource64.png");
840         new_image("resource32", "resource32.png");
841         new_image("plugin_bg_data", "plugin_bg.png");
842         new_image("title_bg_data", "title_bg.png");
843         new_image("vtimebar_bg_data", "vwindow_timebar.png");
844 }
845
846 void PINKLADY::build_overlays()
847 {
848         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
849         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
850         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
851         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
852         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
853         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
854 }
855
856 void PINKLADY::draw_rwindow_bg(RecordGUI *gui)
857 {
858 //      int y;
859 //      int margin = 50;
860 //      int margin2 = 80;
861 //      gui->draw_9segment(recordgui_batch_x - margin,
862 //              0,
863 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
864 //              recordgui_buttons_y,
865 //              rgui_batch);
866 //      gui->draw_3segmenth(recordgui_options_x - margin2,
867 //              recordgui_buttons_y - 5,
868 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
869 //              rgui_controls);
870 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
871 //      gui->draw_9segment(0,
872 //              y,
873 //              mwindow->session->rwindow_w,
874 //              mwindow->session->rwindow_h - y,
875 //              rgui_list);
876 }
877
878 void PINKLADY::draw_rmonitor_bg(RecordMonitorGUI *gui)
879 {
880 //      int margin = 45;
881 //      int panel_w = 300;
882 //      int x = rmonitor_meter_x - margin;
883 //      int w = mwindow->session->rmonitor_w - x;
884 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
885 //      gui->clear_box(0,
886 //              0,
887 //              mwindow->session->rmonitor_w,
888 //              mwindow->session->rmonitor_h);
889 //      gui->draw_9segment(x,
890 //              0,
891 //              w,
892 //              mwindow->session->rmonitor_h,
893 //              rmonitor_meters);
894 }
895
896
897
898
899
900
901 void PINKLADY::draw_mwindow_bg(MWindowGUI *gui)
902 {
903 // Button bar
904         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
905                 gui->menu_w(), get_image("mbutton_bg"));
906
907         int pdw = get_image("panel_divider")->get_w();
908         int x = mbuttons_x;
909         x += 9 * get_image("play")->get_w();
910         x += mtransport_margin;                                       // the control buttons
911
912         gui->draw_vframe(get_image("panel_divider"),
913                 x - toggle_margin / 2 - pdw / 2 + 2,
914                 mbuttons_y - 1);
915         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
916
917         gui->draw_vframe(get_image("panel_divider"),
918                 x - toggle_margin / 2 - pdw / 2 + 2,
919                 mbuttons_y - 1);
920
921         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
922         gui->draw_vframe(get_image("panel_divider"),
923                 x - toggle_margin / 2 - pdw / 2 + 2,
924                 mbuttons_y - 1);
925
926 // Clock
927         gui->draw_3segmenth(0,
928                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
929                 get_image("patchbay_bg")->get_w(),
930                 get_image("clock_bg"));
931
932 // Patchbay
933         gui->draw_3segmentv(patchbay_x,
934                 patchbay_y,
935                 patchbay_h,
936                 get_image("patchbay_bg"));
937
938 // Track canvas
939         gui->set_color(BLACK);
940         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
941                 mcanvas_y + mtimebar_h,
942                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
943                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
944
945 // Timebar
946         gui->draw_3segmenth(mtimebar_x,
947                 mtimebar_y,
948                 mtimebar_w,
949                 get_image("timebar_bg"));
950
951 // Zoombar
952         gui->set_color(0xffb1d0);
953         gui->draw_box(mzoom_x,
954                 mzoom_y,
955                 mwindow->session->mwindow_w,
956                 25);
957
958 // Scrollbar filler
959 //      gui->draw_vframe(get_image("mscroll_filler"),
960 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
961 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
962
963 // Status
964         gui->draw_3segmenth(mzoom_x,
965                 mzoom_y,
966                 mzoom_w,
967                 get_image("statusbar"));
968
969
970 }
971
972 void PINKLADY::draw_cwindow_bg(CWindowGUI *gui)
973 {
974         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
975
976         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
977
978         if(mwindow->edl->session->cwindow_meter)
979         {
980                 gui->draw_3segmenth(cstatus_x,
981                         ccomposite_h,
982                         cmeter_x - widget_border - cstatus_x,
983                         get_image("cbuttons_right"));
984                 gui->draw_9segment(cmeter_x - widget_border,
985                         0,
986                         mwindow->session->cwindow_w - cmeter_x + widget_border,
987                         mwindow->session->cwindow_h,
988                         get_image("cmeter_bg"));
989         }
990         else
991         {
992                 gui->draw_3segmenth(cstatus_x,
993                         ccomposite_h,
994                         cmeter_x - widget_border - cstatus_x + 100,
995                         get_image("cbuttons_right"));
996         }
997 }
998
999 void PINKLADY::draw_vwindow_bg(VWindowGUI *gui)
1000 {
1001         gui->draw_3segmenth(0,
1002                 vcanvas_h,
1003                 vdivision_x,
1004                 get_image("vbuttons_left"));
1005         if(mwindow->edl->session->vwindow_meter)
1006         {
1007                 gui->draw_3segmenth(vdivision_x,
1008                         vcanvas_h,
1009                         vmeter_x - widget_border - vdivision_x,
1010                         get_image("cbuttons_right"));
1011                 gui->draw_9segment(vmeter_x - widget_border,
1012                         0,
1013                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1014                         mwindow->session->vwindow_h,
1015                         get_image("cmeter_bg"));
1016         }
1017         else
1018         {
1019                 gui->draw_3segmenth(vdivision_x,
1020                         vcanvas_h,
1021                         vmeter_x - widget_border - vdivision_x + 100,
1022                         get_image("cbuttons_right"));
1023         }
1024
1025 // Clock border
1026         gui->draw_3segmenth(vtime_x - 20,
1027                 vtime_y - 1,
1028                 vtime_w + 40,
1029                 get_image("vclock"));
1030 }
1031
1032 void PINKLADY::draw_preferences_bg(PreferencesWindow *gui)
1033 {
1034         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1035 }
1036
1037 void PINKLADY::draw_new_bg(NewWindow *gui)
1038 {
1039         gui->draw_vframe(get_image("new_bg"), 0, 0);
1040 }
1041
1042 void PINKLADY::draw_setformat_bg(SetFormatWindow *gui)
1043 {
1044         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1045 }
1046
1047