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