fix awdw solo vicon crash, fix nested clip for binfolders, open edit edl
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / theme_cakewalk / cakewalk.C
index b4170efda0c009fa8345ce5abd5b42d1ac0ce828..947569ff0dea52b67238f2a2fc47c893e159fe29 100644 (file)
@@ -1,4 +1,4 @@
-/* Part of the Cakewalk theme. */
+/* cakewalk.C (uncommented). Part of the Cakewalk theme. */
 #include "bcsignals.h"
 #include "clip.h"
 #include "cwindowgui.h"
@@ -98,7 +98,7 @@ void CAKEWALKTHEME::initialize()
  resources->popup_title_text = WHITE;
  resources->menu_item_text = WHITE;
  resources->menu_highlighted_fontcolor = BLACK;
- resources->generic_button_margin = 20;
+ resources->generic_button_margin = xS(20);
  resources->pot_needle_color = TextFg;
  resources->pot_offset = 1;
  resources->progress_text = resources->text_default;
@@ -108,11 +108,11 @@ void CAKEWALKTHEME::initialize()
  resources->menu_up = ALARM;
  resources->menu_shadow = ALARM;
  resources->menu_highlighted = CwCyan;
- resources->popupmenu_margin = 15;
- resources->popupmenu_triangle_margin = 15;
+ resources->popupmenu_margin = xS(15);
+ resources->popupmenu_triangle_margin = xS(15);
  resources->listbox_title_color = TextFgBright;
- resources->listbox_title_margin = 15;
- resources->listbox_title_hotspot = 15;
+ resources->listbox_title_margin = xS(15);
+ resources->listbox_title_hotspot = xS(15);
  resources->listbox_border1 = TextBorderOut;
  resources->listbox_border2 = CwDarkGray;
  resources->listbox_border3 = CwDarkGray;
@@ -124,7 +124,7 @@ void CAKEWALKTHEME::initialize()
  resources->listbox_bg = 0;
  resources->listbox_text = TextFg;
  resources->listbox_selected = CwCyan;
- resources->filebox_margin = 130;
+ resources->filebox_margin = yS(130);
  resources->file_color = WHITE;
  resources->directory_color = ComicYellow;
  title_font = MEDIUMFONT;
@@ -132,7 +132,7 @@ void CAKEWALKTHEME::initialize()
  recordgui_fixed_color = MeterGreen;
  recordgui_variable_color = MeterYellow;
  channel_position_color = MeterYellow;
- resources->meter_title_w = 25;
+ resources->meter_title_w = xS(28);
  edit_font_color = ComicYellow;
  assetedit_color = TextFgBright;
  timebar_cursor_color = WHITE;
@@ -199,14 +199,29 @@ void CAKEWALKTHEME::initialize()
   "loadmode_dn.png",
   "loadmode_checkedhi.png",
   "loadmode_resource");
- new_toggle(
-  "loadmode_nested.png",
+
+ new_toggle("loadmode_edl_clip.png",
+  "loadmode_up.png",
+  "loadmode_hi.png",
+  "loadmode_checked.png",
+  "loadmode_dn.png",
+  "loadmode_checkedhi.png",
+  "loadmode_edl_clip");
+ new_toggle("loadmode_edl_nested.png",
+  "loadmode_up.png",
+  "loadmode_hi.png",
+  "loadmode_checked.png",
+  "loadmode_dn.png",
+  "loadmode_checkedhi.png",
+  "loadmode_edl_nested");
+ new_toggle("loadmode_edl_fileref.png",
   "loadmode_up.png",
   "loadmode_hi.png",
   "loadmode_checked.png",
   "loadmode_dn.png",
   "loadmode_checkedhi.png",
-  "loadmode_nested");
+  "loadmode_edl_fileref");
+
  resources->filebox_icons_images = new_button(
   "icons.png",
   "fileboxbutton_up.png",
@@ -267,12 +282,24 @@ void CAKEWALKTHEME::initialize()
   "new_bigbutton_hi.png",
   "new_bigbutton_dn.png",
   "new_ok_images");
       new_button(
+ new_button(
   "reset.png",
-                "reset_up.png",
-                "reset_dn.png",
-                "reset_hi.png",
-                "reset_button");
+  "reset_up.png",
+  "reset_hi.png",
+  "reset_dn.png",
+  "reset_button");
+ new_button(
+  "unclear.png",
+  "unclear_up.png",
+  "unclear_hi.png",
+  "unclear_dn.png",
+  "unclear_button");
+ new_button(
+  "keyframe.png",
+  "editpanel_up.png",
+  "editpanel_hi.png",
+  "editpanel_dn.png",
+  "keyframe_button");
  resources->cancel_images = new_button(
   "cancel.png",
   "filebox_bigbutton_up.png",
@@ -285,9 +312,84 @@ void CAKEWALKTHEME::initialize()
   "new_bigbutton_hi.png",
   "new_bigbutton_dn.png",
   "new_cancel_images");
+ new_button("mask_pnt_linear.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_pnt_linear_images");
+ new_button("mask_crv_linear.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_crv_linear_images");
+ new_button("mask_all_linear.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_all_linear_images");
+ new_button("mask_pnt_smooth.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_pnt_smooth_images");
+ new_button("mask_crv_smooth.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_crv_smooth_images");
+ new_button("mask_all_smooth.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_all_smooth_images");
+ new_button("mask_prst_sqr.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_prst_sqr_images");
+ new_button("mask_prst_crc.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_prst_crc_images");
+ new_button("mask_prst_tri.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_prst_tri_images");
+ new_button("mask_prst_ovl.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_prst_ovl_images");
+ new_button("mask_prst_load.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_prst_load_images");
+ new_button("mask_prst_save.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_prst_save_images");
+ new_button("mask_prst_trsh.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_prst_trsh_images");
+ new_button("mask_pstn_cen.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_pstn_cen_images");
+ new_button("mask_pstn_nrm.png",
+      "mask_button_up.png",
+      "mask_button_hi.png",
+      "mask_button_dn.png",
+      "mask_pstn_nrm_images");
  resources->bar_data = new_image("bar", "bar.png");
  resources->check = new_image("check", "check.png");
- resources->min_menu_w = 96;
+ resources->min_menu_w = xS(96);
  resources->menu_popup_bg = new_image("menu_popup_bg.png");
  resources->menu_item_bg = new_image_set(
   3,
@@ -337,6 +439,11 @@ void CAKEWALKTHEME::initialize()
   "tumble_hi.png",
   "tumble_bottom.png",
   "tumble_top.png");
+ resources->tumblepatch_data = new_image_set(4,
+  "tumblepatch_up.png",
+  "tumblepatch_hi.png",
+  "tumblepatch_bottom.png",
+  "tumblepatch_top.png");
  resources->listbox_button = new_button4(
   "listbox_button.png",
   "editpanel_up.png",
@@ -436,7 +543,7 @@ void CAKEWALKTHEME::initialize()
   "vscroll_right_up.png",
   "vscroll_right_hi.png",
   "vscroll_right_dn.png");
- resources->scroll_minhandle = 20;
+ resources->scroll_minhandle = xS(20);
  new_button(
   "prevtip.png", "tipbutton_up.png",
   "tipbutton_hi.png", "tipbutton_dn.png", "prev_tip");
@@ -451,14 +558,14 @@ void CAKEWALKTHEME::initialize()
   "editpanel_hi.png", "editpanel_dn.png", "swap_extents");
  preferences_category_overlap = 0;
  preferencescategory_x = 0;
- preferencescategory_y = 5;
- preferencestitle_x = 5;
- preferencestitle_y = 10;
- preferencesoptions_x = 5;
+ preferencescategory_y = yS(5);
+ preferencestitle_x = xS(5);
+ preferencestitle_y = yS(10);
+ preferencesoptions_x = xS(5);
  preferencesoptions_y = 0;
  message_normal = resources->text_default;
- mtransport_margin = 10;
- toggle_margin = 10;
+ mtransport_margin = xS(10);
+ toggle_margin = xS(10);
  new_button("pane.png", "pane_up.png", "pane_hi.png", "pane_dn.png",
       "pane");
  new_image_set("xpane", 3,
@@ -515,6 +622,7 @@ void CAKEWALKTHEME::initialize()
  new_image("cbuttons_left", "cbuttons_left.png");
  new_image("cbuttons_right", "cbuttons_right.png");
  new_image("cmeter_bg", "cmeter_bg.png");
+ new_image("cwindow_focus", "cwindow_focus.png");
  new_image("vbuttons_left", "vbuttons_left.png");
  new_image("vbuttons_right", "vbuttons_right.png");
  new_image("vclock", "vclock.png");
@@ -524,20 +632,20 @@ void CAKEWALKTHEME::initialize()
  timebar_view_data = new_image("timebar_view.png");
  setformat_w = get_image("setformat_bg")->get_w();
  setformat_h = get_image("setformat_bg")->get_h();
- setformat_x1 = 15;
- setformat_x2 = 110;
- setformat_x3 = 315;
- setformat_x4 = 425;
- setformat_y1 = 20;
- setformat_y2 = 85;
- setformat_y3 = 125;
- setformat_margin = 30;
- setformat_channels_x = 25;
- setformat_channels_y = 242;
- setformat_channels_w = 250;
- setformat_channels_h = 250;
- loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + 10;
- browse_pad = 20;
+ setformat_x1 = xS(15);
+ setformat_x2 = xS(110);
+ setformat_x3 = xS(315);
+ setformat_x4 = xS(425);
+ setformat_y1 = yS(20);
+ setformat_y2 = yS(85);
+ setformat_y3 = yS(125);
+ setformat_margin = yS(30);
+ setformat_channels_x = xS(25);
+ setformat_channels_y = yS(242);
+ setformat_channels_w = xS(250);
+ setformat_channels_h = yS(250);
+ loadfile_pad = get_image_set("loadmode_new")[0]->get_h() + yS(10);
+ browse_pad = yS(20);
  new_toggle("playpatch.png",
       "playpatch_up.png",
       "playpatch_hi.png",
@@ -625,11 +733,11 @@ void CAKEWALKTHEME::initialize()
   "proxy_s_down.png",
   "proxy_s_chkdhi.png");
  mask_mode_toggle = new_image_set(5,
-  "mask_mode_up.png",
-  "mask_mode_hi.png",
-  "mask_mode_chkd.png",
-  "mask_mode_down.png",
-  "mask_mode_chkdhi.png");
+          "mask_mode_up.png",
+          "mask_mode_hi.png",
+          "mask_mode_chkd.png",
+          "mask_mode_down.png",
+          "mask_mode_chkdhi.png");
  shbtn_data = new_image_set(
   3,
   "shbtn_up.png",
@@ -858,6 +966,10 @@ void CAKEWALKTHEME::initialize()
       transport_up, editpanel_hi, editpanel_checked,
       editpanel_dn, editpanel_checkedhi,
       "autokeyframe");
+ new_toggle("spankeyframe.png",
+      transport_up, editpanel_hi, editpanel_checked,
+      editpanel_dn, editpanel_checkedhi,
+      "spankeyframe");
  new_toggle("ibeam.png",
       editpanel_up, editpanel_hi, editpanel_checked,
       editpanel_dn, editpanel_checkedhi,
@@ -916,16 +1028,25 @@ void CAKEWALKTHEME::initialize()
       editpanel_up, editpanel_hi, editpanel_checked,
       editpanel_dn, editpanel_checkedhi,
       "tan_linear");
+ new_toggle("mask_scale_x.png", "mask_scale_up.png", "mask_scale_uphi.png",
+      "mask_scale_chkd.png", "mask_scale_xdown.png", "mask_scale_chkdhi.png",
+      "mask_scale_x");
+ new_toggle("mask_scale_y.png", "mask_scale_up.png", "mask_scale_uphi.png",
+      "mask_scale_chkd.png", "mask_scale_ydown.png", "mask_scale_chkdhi.png",
+      "mask_scale_y");
+ new_toggle("mask_scale_xy.png", "mask_scale_up.png", "mask_scale_uphi.png",
+      "mask_scale_chkd.png", "mask_scale_xydown.png", "mask_scale_chkdhi.png",
+      "mask_scale_xy");
  flush_images();
 }
 void CAKEWALKTHEME::get_vwindow_sizes(VWindowGUI *gui)
 {
- int edit_w = EditPanel::calculate_w(mwindow, 0, 10);
+ int edit_w = EditPanel::calculate_w(mwindow, 0, 12);
  int transport_w = PlayTransport::get_transport_width(mwindow) + toggle_margin;
- vtimebar_h = 16;
- int division_w = 30;
- vtime_w = 140;
- int vtime_border = 15;
+ vtimebar_h = yS(16);
+ int division_w = xS(30);
+ vtime_w = xS(140);
+ int vtime_border = xS(15);
  vmeter_y = widget_border;
  vmeter_h = mwindow->session->vwindow_h - cmeter_y - widget_border;
  int buttons_h;
@@ -955,9 +1076,9 @@ void CAKEWALKTHEME::get_vwindow_sizes(VWindowGUI *gui)
   vtransport_y = mwindow->session->vwindow_h -
    get_image_set("autokeyframe")[0]->get_h() -
    widget_border;
-  vdivision_x = 280;
-  vtime_x = vedit_x + 65;
-  vtime_y = vedit_y + 28;
+  vdivision_x = xS(280);
+  vtime_x = vedit_x + xS(85);
+  vtime_y = vedit_y + yS(28);
  } else {
   buttons_h = vtimebar_h +
    widget_border +
@@ -982,12 +1103,12 @@ void CAKEWALKTHEME::get_vwindow_sizes(VWindowGUI *gui)
 void CAKEWALKTHEME::build_bg_data()
 {
  channel_position_data = new VFramePng(get_image_data("channel_position.png"));
- new_image("resource1024", "resource1024.png");
- new_image("resource512", "resource512.png");
- new_image("resource256", "resource256.png");
- new_image("resource128", "resource128.png");
- new_image("resource64", "resource64.png");
- new_image("resource32", "resource32.png");
+ new_image1("resource1024", "resource1024.png");
+ new_image1("resource512", "resource512.png");
+ new_image1("resource256", "resource256.png");
+ new_image1("resource128", "resource128.png");
+ new_image1("resource64", "resource64.png");
+ new_image1("resource32", "resource32.png");
  new_image("plugin_bg_data", "plugin_bg.png");
  new_image("title_bg_data", "title_bg.png");
  new_image("vtimebar_bg_data", "vwindow_timebar.png");
@@ -1016,16 +1137,17 @@ void CAKEWALKTHEME::draw_mwindow_bg(MWindowGUI *gui)
  int x = mbuttons_x;
  x += 9 * get_image("play")->get_w();
  x += mtransport_margin;
+ int xs2 = xS(2);
  gui->draw_vframe(get_image("panel_divider"),
-      x - toggle_margin / 2 - pdw / 2 + 2,
+      x - toggle_margin / 2 - pdw / 2 + xs2,
       mbuttons_y - 1);
  x += 2 * get_image("arrow")->get_w() + toggle_margin;
  gui->draw_vframe(get_image("panel_divider"),
-      x - toggle_margin / 2 - pdw / 2 + 2,
+      x - toggle_margin / 2 - pdw / 2 + xs2,
       mbuttons_y - 1);
  x += 2 * get_image("autokeyframe")->get_w() + toggle_margin;
  gui->draw_vframe(get_image("panel_divider"),
-      x - toggle_margin / 2 - pdw / 2 + 2,
+      x - toggle_margin / 2 - pdw / 2 + xs2,
       mbuttons_y - 1);
  gui->draw_3segmenth(0,
       mbuttons_y - 1 + get_image("mbutton_bg")->get_h(),
@@ -1045,10 +1167,8 @@ void CAKEWALKTHEME::draw_mwindow_bg(MWindowGUI *gui)
       mtimebar_w,
       get_image("timebar_bg"));
  gui->set_color(CwDarkGray);
- gui->draw_box(mzoom_x,
-      mzoom_y,
-      mwindow->session->mwindow_w,
-      25);
+ gui->draw_box(mzoom_x, mzoom_y,
+      mwindow->session->mwindow_w, yS(25));
  gui->draw_3segmenth(mzoom_x,
       mzoom_y,
       mzoom_w,
@@ -1072,7 +1192,7 @@ void CAKEWALKTHEME::draw_cwindow_bg(CWindowGUI *gui)
  } else {
   gui->draw_3segmenth(cstatus_x,
        ccomposite_h,
-       cmeter_x - widget_border - cstatus_x + 100,
+       cmeter_x - widget_border - cstatus_x + xS(100),
        get_image("cbuttons_right"));
  }
 }
@@ -1096,14 +1216,11 @@ void CAKEWALKTHEME::draw_vwindow_bg(VWindowGUI *gui)
  } else {
   gui->draw_3segmenth(vdivision_x,
        vcanvas_h,
-       vmeter_x - widget_border - vdivision_x + 100,
+       vmeter_x - widget_border - vdivision_x + xS(100),
        get_image("vbuttons_right"));
  }
- gui->draw_3segmenth(
-  vtime_x - 5,
-  vtime_y + 0,
-  vtime_w + 10,
-  get_image("vclock"));
+ gui->draw_3segmenth(vtime_x - xS(5), vtime_y + 0,
+  vtime_w + xS(10), get_image("vclock"));
 }
 void CAKEWALKTHEME::draw_preferences_bg(PreferencesWindow *gui)
 {