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