02fa02ec3ac17a6cfa76d9cb8f78eae0b613abdf
[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
861         flush_images();
862
863         title_font = MEDIUMFONT_3D;
864         title_color = 0x1b0f11;
865         recordgui_fixed_color = YELLOW;
866         recordgui_variable_color = RED;
867
868         channel_position_color = MEYELLOW;
869         resources->meter_title_w = 25;
870
871         // (asset) edit info text color
872         edit_font_color = YELLOW;
873 }
874
875 #define VWINDOW_METER_MARGIN 5
876
877 void PINKLADY::build_bg_data()
878 {
879 // Audio settings
880         channel_position_data = new VFramePng(get_image_data("channel_position.png"));
881
882 // Track bitmaps
883         new_image("resource1024", "resource1024.png");
884         new_image("resource512", "resource512.png");
885         new_image("resource256", "resource256.png");
886         new_image("resource128", "resource128.png");
887         new_image("resource64", "resource64.png");
888         new_image("resource32", "resource32.png");
889         new_image("plugin_bg_data", "plugin_bg.png");
890         new_image("title_bg_data", "title_bg.png");
891         new_image("vtimebar_bg_data", "vwindow_timebar.png");
892 }
893
894 void PINKLADY::build_overlays()
895 {
896         keyframe_data = new VFramePng(get_image_data("keyframe3.png"));
897         camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png"));
898         maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png"));
899         modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png"));
900         hardedge_data = new VFramePng(get_image_data("hardedge.png"));
901         pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png"));
902         projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png"));
903 }
904
905 void PINKLADY::draw_rwindow_bg(RecordGUI *gui)
906 {
907 //      int y;
908 //      int margin = 50;
909 //      int margin2 = 80;
910 //      gui->draw_9segment(recordgui_batch_x - margin,
911 //              0,
912 //              mwindow->session->rwindow_w - recordgui_status_x + margin,
913 //              recordgui_buttons_y,
914 //              rgui_batch);
915 //      gui->draw_3segmenth(recordgui_options_x - margin2,
916 //              recordgui_buttons_y - 5,
917 //              mwindow->session->rwindow_w - recordgui_options_x + margin2,
918 //              rgui_controls);
919 //      y = recordgui_buttons_y - 5 + rgui_controls->get_h();
920 //      gui->draw_9segment(0,
921 //              y,
922 //              mwindow->session->rwindow_w,
923 //              mwindow->session->rwindow_h - y,
924 //              rgui_list);
925 }
926
927 void PINKLADY::draw_rmonitor_bg(RecordMonitorGUI *gui)
928 {
929 //      int margin = 45;
930 //      int panel_w = 300;
931 //      int x = rmonitor_meter_x - margin;
932 //      int w = mwindow->session->rmonitor_w - x;
933 //      if(w < rmonitor_meters->get_w()) w = rmonitor_meters->get_w();
934 //      gui->clear_box(0,
935 //              0,
936 //              mwindow->session->rmonitor_w,
937 //              mwindow->session->rmonitor_h);
938 //      gui->draw_9segment(x,
939 //              0,
940 //              w,
941 //              mwindow->session->rmonitor_h,
942 //              rmonitor_meters);
943 }
944
945
946
947
948
949
950 void PINKLADY::draw_mwindow_bg(MWindowGUI *gui)
951 {
952 // Button bar
953         gui->draw_3segmenth(mbuttons_x, mbuttons_y - 1,
954                 gui->menu_w(), get_image("mbutton_bg"));
955
956         int pdw = get_image("panel_divider")->get_w();
957         int x = mbuttons_x;
958         x += 9 * get_image("play")->get_w();
959         x += mtransport_margin;                                       // the control buttons
960
961         gui->draw_vframe(get_image("panel_divider"),
962                 x - toggle_margin / 2 - pdw / 2 + 2,
963                 mbuttons_y - 1);
964         x += 2 * get_image("arrow")->get_w() + toggle_margin;           // the mode buttons
965
966         gui->draw_vframe(get_image("panel_divider"),
967                 x - toggle_margin / 2 - pdw / 2 + 2,
968                 mbuttons_y - 1);
969
970         x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;    // the state toggle buttons
971         gui->draw_vframe(get_image("panel_divider"),
972                 x - toggle_margin / 2 - pdw / 2 + 2,
973                 mbuttons_y - 1);
974
975 // Clock
976         gui->draw_3segmenth(0,
977                 mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
978                 get_image("patchbay_bg")->get_w(),
979                 get_image("clock_bg"));
980
981 // Patchbay
982         gui->draw_3segmentv(patchbay_x,
983                 patchbay_y,
984                 patchbay_h,
985                 get_image("patchbay_bg"));
986
987 // Track canvas
988         gui->set_color(BLACK);
989         gui->draw_box(mcanvas_x + get_image("patchbay_bg")->get_w(),
990                 mcanvas_y + mtimebar_h,
991                 mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
992                 mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ) - mtimebar_h);
993
994 // Timebar
995         gui->draw_3segmenth(mtimebar_x,
996                 mtimebar_y,
997                 mtimebar_w,
998                 get_image("timebar_bg"));
999
1000 // Zoombar
1001         gui->set_color(0xffb1d0);
1002         gui->draw_box(mzoom_x,
1003                 mzoom_y,
1004                 mwindow->session->mwindow_w,
1005                 25);
1006
1007 // Scrollbar filler
1008 //      gui->draw_vframe(get_image("mscroll_filler"),
1009 //              mcanvas_x + mcanvas_w - BC_ScrollBar::get_span(SCROLL_VERT),
1010 //              mcanvas_y + mcanvas_h - BC_ScrollBar::get_span(SCROLL_HORIZ));
1011
1012 // Status
1013         gui->draw_3segmenth(mzoom_x,
1014                 mzoom_y,
1015                 mzoom_w,
1016                 get_image("statusbar"));
1017
1018
1019 }
1020
1021 void PINKLADY::draw_cwindow_bg(CWindowGUI *gui)
1022 {
1023         gui->draw_3segmentv(0, 0, ccomposite_h, get_image("cpanel_bg"));
1024
1025         gui->draw_3segmenth(0, ccomposite_h, cstatus_x, get_image("cbuttons_left"));
1026
1027         if(mwindow->edl->session->cwindow_meter)
1028         {
1029                 gui->draw_3segmenth(cstatus_x,
1030                         ccomposite_h,
1031                         cmeter_x - widget_border - cstatus_x,
1032                         get_image("cbuttons_right"));
1033                 gui->draw_9segment(cmeter_x - widget_border,
1034                         0,
1035                         mwindow->session->cwindow_w - cmeter_x + widget_border,
1036                         mwindow->session->cwindow_h,
1037                         get_image("cmeter_bg"));
1038         }
1039         else
1040         {
1041                 gui->draw_3segmenth(cstatus_x,
1042                         ccomposite_h,
1043                         cmeter_x - widget_border - cstatus_x + 100,
1044                         get_image("cbuttons_right"));
1045         }
1046 }
1047
1048 void PINKLADY::draw_vwindow_bg(VWindowGUI *gui)
1049 {
1050         gui->draw_3segmenth(0,
1051                 vcanvas_h,
1052                 vdivision_x,
1053                 get_image("vbuttons_left"));
1054         if(mwindow->edl->session->vwindow_meter)
1055         {
1056                 gui->draw_3segmenth(vdivision_x,
1057                         vcanvas_h,
1058                         vmeter_x - widget_border - vdivision_x,
1059                         get_image("cbuttons_right"));
1060                 gui->draw_9segment(vmeter_x - widget_border,
1061                         0,
1062                         mwindow->session->vwindow_w - vmeter_x + widget_border,
1063                         mwindow->session->vwindow_h,
1064                         get_image("cmeter_bg"));
1065         }
1066         else
1067         {
1068                 gui->draw_3segmenth(vdivision_x,
1069                         vcanvas_h,
1070                         vmeter_x - widget_border - vdivision_x + 100,
1071                         get_image("cbuttons_right"));
1072         }
1073
1074 // Clock border
1075         gui->draw_3segmenth(vtime_x - 20,
1076                 vtime_y - 1,
1077                 vtime_w + 40,
1078                 get_image("vclock"));
1079 }
1080
1081 void PINKLADY::draw_preferences_bg(PreferencesWindow *gui)
1082 {
1083         gui->draw_vframe(get_image("preferences_bg"), 0, 0);
1084 }
1085
1086 void PINKLADY::draw_new_bg(NewWindow *gui)
1087 {
1088         gui->draw_vframe(get_image("new_bg"), 0, 0);
1089 }
1090
1091 void PINKLADY::draw_setformat_bg(SetFormatWindow *gui)
1092 {
1093         gui->draw_vframe(get_image("setformat_bg"), 0, 0);
1094 }
1095
1096