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