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