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