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