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