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