ccc09e5bfeb292dcc5491e49279bc711a657513a
[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         new_button("mask_pnt_linear.png",
284                 "mask_button_up.png",
285                 "mask_button_hi.png",
286                 "mask_button_dn.png",
287                 "mask_pnt_linear_images");
288         new_button("mask_crv_linear.png",
289                 "mask_button_up.png",
290                 "mask_button_hi.png",
291                 "mask_button_dn.png",
292                 "mask_crv_linear_images");
293         new_button("mask_all_linear.png",
294                 "mask_button_up.png",
295                 "mask_button_hi.png",
296                 "mask_button_dn.png",
297                 "mask_all_linear_images");
298
299         new_button("mask_pnt_smooth.png",
300                 "mask_button_up.png",
301                 "mask_button_hi.png",
302                 "mask_button_dn.png",
303                 "mask_pnt_smooth_images");
304         new_button("mask_crv_smooth.png",
305                 "mask_button_up.png",
306                 "mask_button_hi.png",
307                 "mask_button_dn.png",
308                 "mask_crv_smooth_images");
309         new_button("mask_all_smooth.png",
310                 "mask_button_up.png",
311                 "mask_button_hi.png",
312                 "mask_button_dn.png",
313                 "mask_all_smooth_images");
314
315         resources->medium_7segment = new_image_set(TOTAL_7SEGMENT,
316                 "0.png",
317                 "1.png",
318                 "2.png",
319                 "3.png",
320                 "4.png",
321                 "5.png",
322                 "6.png",
323                 "7.png",
324                 "8.png",
325                 "9.png",
326                 "colon.png",
327                 "period.png",
328                 "a.png",
329                 "b.png",
330                 "c.png",
331                 "d.png",
332                 "e.png",
333                 "f.png",
334                 "space.png",
335                 "dash.png");
336
337         resources->bar_data = new_image("bar", "bar.png");
338         resources->check = new_image("check", "check.png");
339
340         resources->min_menu_w = 96;
341         resources->menu_popup_bg = new_image("menu_popup_bg.png");
342         resources->menu_item_bg = new_image_set(3,
343                 "menuitem_up.png",
344                 "menuitem_hi.png",
345                 "menuitem_dn.png");
346         resources->menu_bar_bg = new_image("menubar_bg.png");
347         resources->menu_title_bg = new_image_set(3,
348                 "menubar_up.png",
349                 "menubar_hi.png",
350                 "menubar_dn.png");
351
352
353         resources->popupmenu_images = 0;
354 //              new_image_set(3,
355 //              "menupopup_up.png",
356 //              "menupopup_hi.png",
357 //              "menupopup_dn.png");
358
359         resources->toggle_highlight_bg = new_image("toggle_highlight_bg",
360                 "text_highlight.png");
361
362         resources->generic_button_images = new_image_set(3,
363                         "generic_up.png",
364                         "generic_hi.png",
365                         "generic_dn.png");
366         resources->horizontal_slider_data = new_image_set(6,
367                         "hslider_fg_up.png",
368                         "hslider_fg_hi.png",
369                         "hslider_fg_dn.png",
370                         "hslider_bg_up.png",
371                         "hslider_bg_hi.png",
372                         "hslider_bg_dn.png");
373         resources->vertical_slider_data = new_image_set(6,
374                         "hslider_fg_up.png",
375                         "hslider_fg_hi.png",
376                         "hslider_fg_dn.png",
377                         "hslider_bg_up.png",
378                         "hslider_bg_hi.png",
379                         "hslider_bg_dn.png");
380         for( int i=0; i<6; ++i )
381                 resources->vertical_slider_data[i]->rotate90();
382
383         resources->progress_images = new_image_set(2,
384                         "progress_bg.png",
385                         "progress_hi.png");
386         resources->tumble_data = new_image_set(4,
387                 "tumble_up.png",
388                 "tumble_hi.png",
389                 "tumble_bottom.png",
390                 "tumble_top.png");
391         resources->listbox_button = new_button4("listbox_button.png",
392                 "editpanel_up.png",
393                 "editpanel_hi.png",
394                 "editpanel_dn.png",
395                 "editpanel_hi.png",
396                 "listbox_button");
397         resources->listbox_column = new_image_set(3,
398                 "column_up.png",
399                 "column_hi.png",
400                 "column_dn.png");
401         resources->listbox_up = new_image("listbox_up.png");
402         resources->listbox_dn = new_image("listbox_dn.png");
403         resources->pan_data = new_image_set(7,
404                         "pan_up.png",
405                         "pan_hi.png",
406                         "pan_popup.png",
407                         "pan_channel.png",
408                         "pan_stick.png",
409                         "pan_channel_small.png",
410                         "pan_stick_small.png");
411         resources->pan_text_color = WHITE;
412
413         resources->pot_images = new_image_set(3,
414                 "pot_up.png",
415                 "pot_hi.png",
416                 "pot_dn.png");
417
418         resources->checkbox_images = new_image_set(5,
419                 "checkbox_up.png",
420                 "checkbox_hi.png",
421                 "checkbox_checked.png",
422                 "checkbox_dn.png",
423                 "checkbox_checkedhi.png");
424
425         resources->radial_images = new_image_set(5,
426                 "radial_up.png",
427                 "radial_hi.png",
428                 "radial_checked.png",
429                 "radial_dn.png",
430                 "radial_checkedhi.png");
431
432         resources->xmeter_images = new_image_set(7,
433                 "xmeter_normal.png",
434                 "xmeter_green.png",
435                 "xmeter_red.png",
436                 "xmeter_yellow.png",
437                 "xmeter_white.png",
438                 "xmeter_over.png",
439                 "downmix51_2.png");
440         resources->ymeter_images = new_image_set(7,
441                 "ymeter_normal.png",
442                 "ymeter_green.png",
443                 "ymeter_red.png",
444                 "ymeter_yellow.png",
445                 "ymeter_white.png",
446                 "ymeter_over.png",
447                 "downmix51_2.png");
448
449         resources->hscroll_data = new_image_set(10,
450                         "hscroll_handle_up.png",
451                         "hscroll_handle_hi.png",
452                         "hscroll_handle_dn.png",
453                         "hscroll_handle_bg.png",
454                         "hscroll_left_up.png",
455                         "hscroll_left_hi.png",
456                         "hscroll_left_dn.png",
457                         "hscroll_right_up.png",
458                         "hscroll_right_hi.png",
459                         "hscroll_right_dn.png");
460
461         resources->vscroll_data = new_image_set(10,
462                         "vscroll_handle_up.png",
463                         "vscroll_handle_hi.png",
464                         "vscroll_handle_dn.png",
465                         "vscroll_handle_bg.png",
466                         "vscroll_left_up.png",
467                         "vscroll_left_hi.png",
468                         "vscroll_left_dn.png",
469                         "vscroll_right_up.png",
470                         "vscroll_right_hi.png",
471                         "vscroll_right_dn.png");
472         resources->scroll_minhandle = 20;
473
474
475         new_button("prevtip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
476         new_button("nexttip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "next_tip");
477         new_button("closetip.png", "tipbutton_up.png", "tipbutton_hi.png", "tipbutton_dn.png", "close_tip");
478         new_button("swap_extents.png",
479                 "editpanel_up.png",
480                 "editpanel_hi.png",
481                 "editpanel_dn.png",
482                 "swap_extents");
483
484
485 // Record windows
486
487
488         preferences_category_overlap = 0;
489         preferencescategory_x = 0;
490         preferencescategory_y = 5;
491         preferencestitle_x = 5;
492         preferencestitle_y = 10;
493         preferencesoptions_x = 5;
494         preferencesoptions_y = 0;
495
496 // MWindow
497         message_normal = resources->text_default;
498         audio_color = GREEN;
499         mtransport_margin = 10;
500         toggle_margin = 10;
501
502         new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png", "pane");
503         new_image_set("xpane", 3, "xpane_up.png", "xpane_hi.png", "xpane_dn.png");
504         new_image_set("ypane", 3, "ypane_up.png", "ypane_hi.png", "ypane_dn.png");
505
506         new_image("mbutton_bg", "mbutton_bg.png");
507         new_image("timebar_bg", "timebar_bg_flat.png");
508         new_image("timebar_brender", "timebar_brender.png");
509         new_image("clock_bg", "mclock_flat.png");
510         new_image("patchbay_bg", "patchbay_bg.png");
511         new_image("statusbar", "statusbar.png");
512 //      new_image("mscroll_filler", "mscroll_filler.png");
513
514         new_image_set("zoombar_menu", 3, "zoompopup_up.png", "zoompopup_hi.png", "zoompopup_dn.png");
515         new_image_set("zoombar_tumbler", 4, "zoomtumble_up.png", "zoomtumble_hi.png", "zoomtumble_bottom.png", "zoomtumble_top.png");
516
517         new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
518         new_image("mode_add", "mode_add.png");
519         new_image("mode_divide", "mode_divide.png");
520         new_image("mode_multiply", "mode_multiply.png");
521         new_image("mode_normal", "mode_normal.png");
522         new_image("mode_replace", "mode_replace.png");
523         new_image("mode_subtract", "mode_subtract.png");
524         new_image("mode_max", "mode_max.png");
525
526         new_image_set("plugin_on", 5, "plugin_on.png", "plugin_onhi.png", "plugin_onselect.png", "plugin_ondn.png", "plugin_onselecthi.png");
527         new_image_set("plugin_show", 5, "plugin_show.png", "plugin_showhi.png", "plugin_showselect.png", "plugin_showdn.png", "plugin_showselecthi.png");
528
529 // CWindow
530         new_image("cpanel_bg", "cpanel_bg.png");
531         new_image("cbuttons_left", "cbuttons_left.png");
532         new_image("cbuttons_right", "cbuttons_right.png");
533         new_image("cmeter_bg", "cmeter_bg.png");
534         new_image("cwindow_focus", "cwindow_focus.png");
535
536 // VWindow
537         new_image("vbuttons_left", "vbuttons_left.png");
538         new_image("vclock", "vclock.png");
539
540         new_image("preferences_bg", "preferences_bg.png");
541
542
543         new_image("new_bg", "new_bg.png");
544         new_image("setformat_bg", "setformat_bg.png");
545
546
547         timebar_view_data = new_image("timebar_view.png");
548
549         setformat_w = get_image("setformat_bg")->get_w();
550         setformat_h = get_image("setformat_bg")->get_h();
551         setformat_x1 = 15;
552         setformat_x2 = 110;
553
554         setformat_x3 = 315;
555         setformat_x4 = 425;
556         setformat_y1 = 20;
557         setformat_y2 = 85;
558         setformat_y3 = 125;
559         setformat_margin = 30;
560         setformat_channels_x = 25;
561         setformat_channels_y = 242;
562         setformat_channels_w = 250;
563         setformat_channels_h = 250;
564
565         loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10;
566         browse_pad = 20;
567
568
569         new_toggle("playpatch.png",
570                 "playpatch_up.png",
571                 "playpatch_hi.png",
572                 "playpatch_checked.png",
573                 "playpatch_dn.png",
574                 "playpatch_checkedhi.png",
575                 "playpatch_data");
576
577         new_toggle("recordpatch.png",
578                 "recordpatch_up.png",
579                 "recordpatch_hi.png",
580                 "recordpatch_checked.png",
581                 "recordpatch_dn.png",
582                 "recordpatch_checkedhi.png",
583                 "recordpatch_data");
584
585         new_toggle("gangpatch.png",
586                 "patch_up.png",
587                 "patch_hi.png",
588                 "patch_checked.png",
589                 "patch_dn.png",
590                 "patch_checkedhi.png",
591                 "gangpatch_data");
592
593         new_toggle("drawpatch.png",
594                 "patch_up.png",
595                 "patch_hi.png",
596                 "patch_checked.png",
597                 "patch_dn.png",
598                 "patch_checkedhi.png",
599                 "drawpatch_data");
600
601
602         new_image_set("mutepatch_data",
603                 5,
604                 "mutepatch_up.png",
605                 "mutepatch_hi.png",
606                 "mutepatch_checked.png",
607                 "mutepatch_dn.png",
608                 "mutepatch_checkedhi.png");
609
610         new_image_set("expandpatch_data",
611                 5,
612                 "expandpatch_up.png",
613                 "expandpatch_hi.png",
614                 "expandpatch_checked.png",
615                 "expandpatch_dn.png",
616                 "expandpatch_checkedhi.png");
617
618         build_bg_data();
619         build_overlays();
620
621
622
623
624         out_point = new_image_set(5,
625                 "out_up.png",
626                 "out_hi.png",
627                 "out_checked.png",
628                 "out_dn.png",
629                 "out_checkedhi.png");
630         in_point = new_image_set(5,
631                 "in_up.png",
632                 "in_hi.png",
633                 "in_checked.png",
634                 "in_dn.png",
635                 "in_checkedhi.png");
636
637         label_toggle = new_image_set(5,
638                 "labeltoggle_up.png",
639                 "labeltoggle_uphi.png",
640                 "label_checked.png",
641                 "labeltoggle_dn.png",
642                 "label_checkedhi.png");
643
644         ffmpeg_toggle = new_image_set(5,
645                 "ff_up.png",
646                 "ff_hi.png",
647                 "ff_checked.png",
648                 "ff_down.png",
649                 "ff_checkedhi.png");
650
651         proxy_p_toggle = new_image_set(5,
652                 "proxy_p_up.png",
653                 "proxy_p_hi.png",
654                 "proxy_p_chkd.png",
655                 "proxy_p_down.png",
656                 "proxy_p_chkdhi.png");
657
658         proxy_s_toggle = new_image_set(5,
659                 "proxy_s_up.png",
660                 "proxy_s_hi.png",
661                 "proxy_s_chkd.png",
662                 "proxy_s_down.png",
663                 "proxy_s_chkdhi.png");
664
665         mask_mode_toggle = new_image_set(5,
666                 "mask_mode_up.png",
667                 "mask_mode_hi.png",
668                 "mask_mode_chkd.png",
669                 "mask_mode_down.png",
670                 "mask_mode_chkdhi.png");
671
672         shbtn_data = new_image_set(3,
673                 "shbtn_up.png",
674                 "shbtn_hi.png",
675                 "shbtn_dn.png");
676
677         new_image_set("preset_edit",
678                 3,
679                 "preset_edit0.png",
680                 "preset_edit1.png",
681                 "preset_edit2.png");
682
683         new_image_set("histogram_carrot",
684                 5,
685                 "histogram_carrot_up.png",
686                 "histogram_carrot_hi.png",
687                 "histogram_carrot_checked.png",
688                 "histogram_carrot_dn.png",
689                 "histogram_carrot_checkedhi.png");
690
691
692         statusbar_cancel_data = new_image_set(3,
693                 "statusbar_cancel_up.png",
694                 "statusbar_cancel_hi.png",
695                 "statusbar_cancel_dn.png");
696
697
698         VFrame *editpanel_up = new_image("editpanel_up.png");
699         VFrame *editpanel_hi = new_image("editpanel_hi.png");
700         VFrame *editpanel_dn = new_image("editpanel_dn.png");
701         VFrame *editpanel_checked = new_image("editpanel_checked.png");
702         VFrame *editpanel_checkedhi = new_image("editpanel_checkedhi.png");
703
704         new_image("panel_divider", "panel_divider.png");
705         new_button("bottom_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "bottom_justify");
706         new_button("center_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "center_justify");
707         new_button("channel.png", editpanel_up, editpanel_hi, editpanel_dn, "channel");
708         new_button("lok.png", editpanel_up, editpanel_hi, editpanel_dn, "lok");
709
710         new_toggle("histogram_toggle.png",
711                 editpanel_up,
712                 editpanel_hi,
713                 editpanel_checked,
714                 editpanel_dn,
715                 editpanel_checkedhi,
716                 "histogram_toggle");
717         new_toggle("histogram_rgb.png",
718                 editpanel_up,
719                 editpanel_hi,
720                 editpanel_checked,
721                 editpanel_dn,
722                 editpanel_checkedhi,
723                 "histogram_rgb_toggle");
724         new_toggle("waveform.png",
725                 editpanel_up,
726                 editpanel_hi,
727                 editpanel_checked,
728                 editpanel_dn,
729                 editpanel_checkedhi,
730                 "waveform_toggle");
731         new_toggle("waveform_rgb.png",
732                 editpanel_up,
733                 editpanel_hi,
734                 editpanel_checked,
735                 editpanel_dn,
736                 editpanel_checkedhi,
737                 "waveform_rgb_toggle");
738         new_toggle("scope.png",
739                 editpanel_up,
740                 editpanel_hi,
741                 editpanel_checked,
742                 editpanel_dn,
743                 editpanel_checkedhi,
744                 "scope_toggle");
745
746         new_button("picture.png", editpanel_up, editpanel_hi, editpanel_dn, "picture");
747         new_button("histogram_img.png", editpanel_up, editpanel_hi, editpanel_dn, "histogram_img");
748
749
750         new_button("copy.png", editpanel_up, editpanel_hi, editpanel_dn, "copy");
751         new_button("commercial.png", editpanel_up, editpanel_hi, editpanel_dn, "commercial");
752         new_button("cut.png", editpanel_up, editpanel_hi, editpanel_dn, "cut");
753         new_button("fit.png", editpanel_up, editpanel_hi, editpanel_dn, "fit");
754         new_button("fitautos.png", editpanel_up, editpanel_hi, editpanel_dn, "fitautos");
755         new_button("inpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "inbutton");
756         new_button("label.png", editpanel_up, editpanel_hi, editpanel_dn, "labelbutton");
757         new_button("left_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "left_justify");
758         new_button("magnify.png", editpanel_up, editpanel_hi, editpanel_dn, "magnify_button");
759         new_button("middle_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "middle_justify");
760         new_button("nextlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "nextlabel");
761         new_button("prevlabel.png", editpanel_up, editpanel_hi, editpanel_dn, "prevlabel");
762         new_button("nextedit.png", editpanel_up, editpanel_hi, editpanel_dn, "nextedit");
763         new_button("prevedit.png", editpanel_up, editpanel_hi, editpanel_dn, "prevedit");
764         new_button("outpoint.png", editpanel_up, editpanel_hi, editpanel_dn, "outbutton");
765         over_button = new_button("over.png", editpanel_up, editpanel_hi, editpanel_dn, "overbutton");
766         overwrite_data = new_button("overwrite.png", editpanel_up, editpanel_hi, editpanel_dn, "overwritebutton");
767         new_button("paste.png", editpanel_up, editpanel_hi, editpanel_dn, "paste");
768         new_button("redo.png", editpanel_up, editpanel_hi, editpanel_dn, "redo");
769         new_button("right_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "right_justify");
770         splice_data = new_button("splice.png", editpanel_up, editpanel_hi, editpanel_dn, "slicebutton");
771         new_button("toclip.png", editpanel_up, editpanel_hi, editpanel_dn, "toclip");
772         new_button("goto.png", editpanel_up, editpanel_hi, editpanel_dn, "goto");
773         new_button("top_justify.png", editpanel_up, editpanel_hi, editpanel_dn, "top_justify");
774         new_button("undo.png", editpanel_up, editpanel_hi, editpanel_dn, "undo");
775         new_button("wrench.png", editpanel_up, editpanel_hi, editpanel_dn, "wrench");
776
777
778         VFrame *transport_up = new_image("transportup.png");
779         VFrame *transport_hi = new_image("transporthi.png");
780         VFrame *transport_dn = new_image("transportdn.png");
781
782         new_button("end.png", transport_up, transport_hi, transport_dn, "end");
783         new_button("fastfwd.png", transport_up, transport_hi, transport_dn, "fastfwd");
784         new_button("fastrev.png", transport_up, transport_hi, transport_dn, "fastrev");
785         new_button("play.png", transport_up, transport_hi, transport_dn, "play");
786         new_button("framefwd.png", transport_up, transport_hi, transport_dn, "framefwd");
787         new_button("framerev.png", transport_up, transport_hi, transport_dn, "framerev");
788         new_button("pause.png", transport_up, transport_hi, transport_dn, "pause");
789         new_button("record.png", transport_up, transport_hi, transport_dn, "record");
790         new_button("singleframe.png", transport_up, transport_hi, transport_dn, "recframe");
791         new_button("reverse.png", transport_up, transport_hi, transport_dn, "reverse");
792         new_button("rewind.png", transport_up, transport_hi, transport_dn, "rewind");
793         new_button("stop.png", transport_up, transport_hi, transport_dn, "stop");
794         new_button("stop.png", transport_up, transport_hi, transport_dn, "stoprec");
795
796
797
798 // CWindow icons
799         new_image("cwindow_inactive", "cwindow_inactive.png");
800         new_image("cwindow_active", "cwindow_active.png");
801
802
803
804         new_image_set("category_button",
805                 3,
806                 "preferencesbutton_dn.png",
807                 "preferencesbutton_dnhi.png",
808                 "preferencesbutton_dnlo.png");
809
810         new_image_set("category_button_checked",
811                 3,
812                 "preferencesbutton_up.png",
813                 "preferencesbutton_uphi.png",
814                 "preferencesbutton_dnlo.png");
815
816
817
818
819
820         new_image_set("color3way_point",
821                 3,
822                 "color3way_up.png",
823                 "color3way_hi.png",
824                 "color3way_dn.png");
825
826         new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow");
827         new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe");
828         new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam");
829         new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters");
830         new_toggle("blank30x30.png",
831                    new_image("locklabels_locked.png"),
832                    new_image("locklabels_lockedhi.png"),
833                    new_image("locklabels_unlocked.png"),
834                    new_image("locklabels_dn.png"), // can't have seperate down for each!!??
835                    new_image("locklabels_unlockedhi.png"),
836                    "locklabels");
837
838         VFrame *cpanel_up = new_image("cpanel_up.png");
839         VFrame *cpanel_hi = new_image("cpanel_hi.png");
840         VFrame *cpanel_dn = new_image("cpanel_dn.png");
841         VFrame *cpanel_checked = new_image("cpanel_checked.png");
842         VFrame *cpanel_checkedhi = new_image("cpanel_checkedhi.png");
843
844
845         new_toggle("camera.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "camera");
846         new_toggle("crop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "crop");
847         new_toggle("eyedrop.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "eyedrop");
848         new_toggle("magnify.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "magnify");
849         new_toggle("mask.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "mask");
850         new_toggle("ruler.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "ruler");
851         new_toggle("projector.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "projector");
852         new_toggle("protect.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "protect");
853         new_toggle("titlesafe.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "titlesafe");
854         new_toggle("toolwindow.png", cpanel_up, cpanel_hi, cpanel_checked, cpanel_dn, cpanel_checkedhi, "tool");
855
856         // toggle for tangent mode (compositor/tool window)
857         new_toggle("tan_smooth.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_smooth");
858         new_toggle("tan_linear.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear");
859
860         new_toggle("mask_scale_x.png",   "mask_scale_xup.png",    "mask_scale_xuphi.png",
861                 "mask_scale_xchkd.png",  "mask_scale_xdown.png",  "mask_scale_xchkdhi.png",
862                 "mask_scale_x");
863         new_toggle("mask_scale_y.png",   "mask_scale_yup.png",    "mask_scale_yuphi.png",
864                 "mask_scale_ychkd.png",  "mask_scale_ydown.png",  "mask_scale_ychkdhi.png",
865                 "mask_scale_y");
866         new_toggle("mask_scale_xy.png",  "mask_scale_xyup.png",   "mask_scale_xyuphi.png",
867                 "mask_scale_xychkd.png", "mask_scale_xydown.png", "mask_scale_xychkdhi.png",
868                 "mask_scale_xy");
869
870         flush_images();
871
872         title_font = MEDIUMFONT_3D;
873         title_color = 0x1b0f11;
874         recordgui_fixed_color = YELLOW;
875         recordgui_variable_color = RED;
876
877         channel_position_color = MEYELLOW;
878         resources->meter_title_w = 25;
879
880         // (asset) edit info text color
881         edit_font_color = YELLOW;
882 }
883
884 #define VWINDOW_METER_MARGIN 5
885
886 void PINKLADY::build_bg_data()
887 {
888 // Audio settings
889         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
890
891 // Track bitmaps
892         new_image("resource1024", "resource1024.png");
893         new_image("resource512", "resource512.png");
894         new_image("resource256", "resource256.png");
895         new_image("resource128", "resource128.png");
896         new_image("resource64", "resource64.png");
897         new_image("resource32", "resource32.png");
898         new_image("plugin_bg_data", "plugin_bg.png");
899         new_image("title_bg_data", "title_bg.png");
900         new_image("vtimebar_bg_data", "vwindow_timebar.png");
901 }
902
903 void PINKLADY::build_overlays()
904 {
905         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
906         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
907         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
908         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
909         hardedge_data = new VFramePng(get_image_data("hardedge.png"));
910         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
911         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
912 }
913
914 void PINKLADY::draw_rwindow_bg(RecordGUI *gui)
915 {
916 //      int y;
917 //      int margin = 50;
918 //      int margin2 = 80;
919 //      gui->draw_9segment(recordgui_batch_x - margin,
920 //              0,
921 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
922 //              recordgui_buttons_y,
923 //              rgui_batch);
924 //      gui->draw_3segmenth(recordgui_options_x - margin2,
925 //              recordgui_buttons_y - 5,
926 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
927 //              rgui_controls);
928 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
929 //      gui->draw_9segment(0,
930 //              y,
931 //              mwindow->session->rwindow_w,
932 //              mwindow->session->rwindow_h - y,
933 //              rgui_list);
934 }
935
936 void PINKLADY::draw_rmonitor_bg(RecordMonitorGUI *gui)
937 {
938 //      int margin = 45;
939 //      int panel_w = 300;
940 //      int x = rmonitor_meter_x - margin;
941 //      int w = mwindow->session->rmonitor_w - x;
942 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
943 //      gui->clear_box(0,
944 //              0,
945 //              mwindow->session->rmonitor_w,
946 //              mwindow->session->rmonitor_h);
947 //      gui->draw_9segment(x,
948 //              0,
949 //              w,
950 //              mwindow->session->rmonitor_h,
951 //              rmonitor_meters);
952 }
953
954
955
956
957
958
959 void PINKLADY::draw_mwindow_bg(MWindowGUI *gui)
960 {
961 // Button bar
962         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
963                 gui->menu_w(), get_image("mbutton_bg"));
964
965         int pdw = get_image("panel_divider")->get_w();
966         int x = mbuttons_x;
967         x += 9 * get_image("play")->get_w();
968         x += mtransport_margin;                                       // the control buttons
969
970         gui->draw_vframe(get_image("panel_divider"),
971                 x - toggle_margin / 2 - pdw / 2 + 2,
972                 mbuttons_y - 1);
973         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
974
975         gui->draw_vframe(get_image("panel_divider"),
976                 x - toggle_margin / 2 - pdw / 2 + 2,
977                 mbuttons_y - 1);
978
979         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
980         gui->draw_vframe(get_image("panel_divider"),
981                 x - toggle_margin / 2 - pdw / 2 + 2,
982                 mbuttons_y - 1);
983
984 // Clock
985         gui->draw_3segmenth(0,
986                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
987                 get_image("patchbay_bg")->get_w(),
988                 get_image("clock_bg"));
989
990 // Patchbay
991         gui->draw_3segmentv(patchbay_x,
992                 patchbay_y,
993                 patchbay_h,
994                 get_image("patchbay_bg"));
995
996 // Track canvas
997         gui->set_color(BLACK);
998         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
999                 mcanvas_y + mtimebar_h,
1000                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1001                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
1002
1003 // Timebar
1004         gui->draw_3segmenth(mtimebar_x,
1005                 mtimebar_y,
1006                 mtimebar_w,
1007                 get_image("timebar_bg"));
1008
1009 // Zoombar
1010         gui->set_color(0xffb1d0);
1011         gui->draw_box(mzoom_x,
1012                 mzoom_y,
1013                 mwindow->session->mwindow_w,
1014                 25);
1015
1016 // Scrollbar filler
1017 //      gui->draw_vframe(get_image("mscroll_filler"),
1018 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1019 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
1020
1021 // Status
1022         gui->draw_3segmenth(mzoom_x,
1023                 mzoom_y,
1024                 mzoom_w,
1025                 get_image("statusbar"));
1026
1027
1028 }
1029
1030 void PINKLADY::draw_cwindow_bg(CWindowGUI *gui)
1031 {
1032         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
1033
1034         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
1035
1036         if(mwindow->edl->session->cwindow_meter)
1037         {
1038                 gui->draw_3segmenth(cstatus_x,
1039                         ccomposite_h,
1040                         cmeter_x - widget_border - cstatus_x,
1041                         get_image("cbuttons_right"));
1042                 gui->draw_9segment(cmeter_x - widget_border,
1043                         0,
1044                         mwindow->session->cwindow_w - cmeter_x + widget_border,
1045                         mwindow->session->cwindow_h,
1046                         get_image("cmeter_bg"));
1047         }
1048         else
1049         {
1050                 gui->draw_3segmenth(cstatus_x,
1051                         ccomposite_h,
1052                         cmeter_x - widget_border - cstatus_x + 100,
1053                         get_image("cbuttons_right"));
1054         }
1055 }
1056
1057 void PINKLADY::draw_vwindow_bg(VWindowGUI *gui)
1058 {
1059         gui->draw_3segmenth(0,
1060                 vcanvas_h,
1061                 vdivision_x,
1062                 get_image("vbuttons_left"));
1063         if(mwindow->edl->session->vwindow_meter)
1064         {
1065                 gui->draw_3segmenth(vdivision_x,
1066                         vcanvas_h,
1067                         vmeter_x - widget_border - vdivision_x,
1068                         get_image("cbuttons_right"));
1069                 gui->draw_9segment(vmeter_x - widget_border,
1070                         0,
1071                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1072                         mwindow->session->vwindow_h,
1073                         get_image("cmeter_bg"));
1074         }
1075         else
1076         {
1077                 gui->draw_3segmenth(vdivision_x,
1078                         vcanvas_h,
1079                         vmeter_x - widget_border - vdivision_x + 100,
1080                         get_image("cbuttons_right"));
1081         }
1082
1083 // Clock border
1084         gui->draw_3segmenth(vtime_x - 20,
1085                 vtime_y - 1,
1086                 vtime_w + 40,
1087                 get_image("vclock"));
1088 }
1089
1090 void PINKLADY::draw_preferences_bg(PreferencesWindow *gui)
1091 {
1092         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1093 }
1094
1095 void PINKLADY::draw_new_bg(NewWindow *gui)
1096 {
1097         gui->draw_vframe(get_image("new_bg"), 0, 0);
1098 }
1099
1100 void PINKLADY::draw_setformat_bg(SetFormatWindow *gui)
1101 {
1102         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1103 }
1104
1105