X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_actions.cc;h=a5e2e8a369b19fa98f19d50cbdcb448afb850e08;hb=4dc1bbff359308ad884c9429d155f772ebb89bc4;hp=54894f97469df8c7cc44e1a79d3ebfe091803f22;hpb=e63da83c530f8c2f81bfba4ec6d77c7adad8a50d;p=ardour.git diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 54894f9746..a5e2e8a369 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -401,6 +401,9 @@ Editor::register_actions () radio_reg_sens (zoom_actions, zoom_group, "zoom-focus-mouse", _("Zoom Focus Mouse"), sigc::bind (sigc::mem_fun(*this, &Editor::zoom_focus_chosen), Editing::ZoomFocusMouse)); radio_reg_sens (zoom_actions, zoom_group, "zoom-focus-edit", _("Zoom Focus Edit Point"), sigc::bind (sigc::mem_fun(*this, &Editor::zoom_focus_chosen), Editing::ZoomFocusEdit)); + ActionManager::register_action (editor_actions, X_("cycle-zoom-focus"), _("Next Zoom Focus"), sigc::mem_fun (*this, &Editor::cycle_zoom_focus)); + + Glib::RefPtr mouse_mode_actions = ActionGroup::create (X_("MouseMode")); RadioAction::Group mouse_mode_group; @@ -408,41 +411,49 @@ Editor::register_actions () smart_mode_action = Glib::RefPtr::cast_static (act); smart_mode_button.set_related_action (smart_mode_action); smart_mode_button.set_text (_("Smart")); + smart_mode_button.add_elements ( ArdourButton::FlatFace ); smart_mode_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-object", _("Object Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseObject)); mouse_move_button.set_related_action (act); mouse_move_button.set_image (::get_icon("tool_object")); + mouse_move_button.add_elements ( ArdourButton::FlatFace ); mouse_move_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-range", _("Range Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseRange)); mouse_select_button.set_related_action (act); mouse_select_button.set_image (::get_icon("tool_range")); + mouse_select_button.add_elements ( ArdourButton::FlatFace ); mouse_select_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-draw", _("Note Drawing Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseDraw)); mouse_draw_button.set_related_action (act); mouse_draw_button.set_image (::get_icon("midi_tool_pencil")); + mouse_draw_button.add_elements ( ArdourButton::FlatFace ); mouse_draw_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-gain", _("Gain Tool"), sigc::bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseGain)); mouse_gain_button.set_related_action (act); mouse_gain_button.set_image (::get_icon("tool_gain")); + mouse_gain_button.add_elements ( ArdourButton::FlatFace ); mouse_gain_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-zoom", _("Zoom Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseZoom)); mouse_zoom_button.set_related_action (act); mouse_zoom_button.set_image (::get_icon("tool_zoom")); + mouse_zoom_button.add_elements ( ArdourButton::FlatFace ); mouse_zoom_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-audition", _("Audition Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseAudition)); mouse_audition_button.set_related_action (act); mouse_audition_button.set_image (::get_icon("tool_audition")); + mouse_audition_button.add_elements ( ArdourButton::FlatFace ); mouse_audition_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Time FX Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseTimeFX)); mouse_timefx_button.set_related_action (act); mouse_timefx_button.set_image (::get_icon("tool_stretch")); + mouse_timefx_button.add_elements ( ArdourButton::FlatFace ); mouse_timefx_button.set_name ("mouse mode button"); ActionManager::register_action (editor_actions, "step-mouse-mode", _("Step Mouse Mode"), sigc::bind (sigc::mem_fun(*this, &Editor::step_mouse_mode), true)); @@ -450,6 +461,7 @@ Editor::register_actions () act = ActionManager::register_toggle_action (mouse_mode_actions, "toggle-internal-edit", _("Edit MIDI"), sigc::mem_fun(*this, &Editor::toggle_internal_editing)); internal_edit_button.set_related_action (act); internal_edit_button.set_image (::get_icon("tool_note")); + internal_edit_button.add_elements ( ArdourButton::FlatFace ); internal_edit_button.set_name ("mouse mode button"); RadioAction::Group edit_point_group; @@ -532,6 +544,19 @@ Editor::register_actions () ruler_timecode_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (ruler_actions, X_("toggle-timecode-ruler"), _("Timecode"), sigc::bind (sigc::mem_fun(*this, &Editor::toggle_ruler_visibility), ruler_metric_timecode))); ruler_minsec_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (ruler_actions, X_("toggle-minsec-ruler"), _("Min:Sec"), sigc::bind (sigc::mem_fun(*this, &Editor::toggle_ruler_visibility), ruler_metric_minsec))); + ActionManager::register_action (editor_menu_actions, X_("VideoMonitorMenu"), _("Video Monitor")); + + ruler_video_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (ruler_actions, X_("toggle-video-ruler"), _("Video"), sigc::bind (sigc::mem_fun(*this, &Editor::toggle_ruler_visibility), ruler_video_timeline))); + xjadeo_proc_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (editor_actions, X_("ToggleJadeo"), _("Video Monitor"), sigc::mem_fun (*this, &Editor::set_xjadeo_proc))); + + xjadeo_ontop_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-ontop"), _("Always on Top"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 1))); + xjadeo_timecode_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-timecode"), _("Timecode"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 2))); + xjadeo_frame_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-frame"), _("Frame number"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 3))); + xjadeo_osdbg_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-osdbg"), _("Timecode Background"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 4))); + xjadeo_fullscreen_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-fullscreen"), _("Fullscreen"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 5))); + xjadeo_letterbox_action = Glib::RefPtr::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-letterbox"), _("Letterbox"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 6))); + xjadeo_zoom_100 = reg_sens (editor_actions, "zoom-vmon-100", _("Original Size"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 7)); + /* set defaults here */ no_ruler_shown_update = true; @@ -541,6 +566,24 @@ Editor::register_actions () ruler_range_action->set_active (true); ruler_loop_punch_action->set_active (true); ruler_loop_punch_action->set_active (true); + + ruler_video_action->set_active (false); + xjadeo_proc_action->set_active (false); + xjadeo_proc_action->set_sensitive (false); + xjadeo_ontop_action->set_active (false); + xjadeo_ontop_action->set_sensitive (false); + xjadeo_timecode_action->set_active (false); + xjadeo_timecode_action->set_sensitive (false); + xjadeo_frame_action->set_active (false); + xjadeo_frame_action->set_sensitive (false); + xjadeo_osdbg_action->set_active (false); + xjadeo_osdbg_action->set_sensitive (false); + xjadeo_fullscreen_action->set_active (false); + xjadeo_fullscreen_action->set_sensitive (false); + xjadeo_letterbox_action->set_active (false); + xjadeo_letterbox_action->set_sensitive (false); + xjadeo_zoom_100->set_sensitive (false); + if (Profile->get_sae()) { ruler_bbt_action->set_active (true); ruler_cd_marker_action->set_active (false); @@ -696,6 +739,9 @@ Editor::toggle_ruler_visibility (RulerType rt) case ruler_time_cd_marker: action = "toggle-cd-marker-ruler"; break; + case ruler_video_timeline: + action = "toggle-video-ruler"; + break; } Glib::RefPtr act = ActionManager::get_action (X_("Rulers"), action); @@ -727,6 +773,133 @@ Editor::set_group_tabs () } } +void +Editor::set_close_video_sensitive (bool onoff) +{ + Glib::RefPtr act = ActionManager::get_action (X_("Main"), X_("CloseVideo")); + if (act) { + act->set_sensitive (onoff); + } +} + +void +Editor::set_xjadeo_sensitive (bool onoff) +{ + xjadeo_proc_action->set_sensitive(onoff); +} + +void +Editor::toggle_xjadeo_proc (int state) +{ + switch(state) { + case 1: + xjadeo_proc_action->set_active(true); + break; + case 0: + xjadeo_proc_action->set_active(false); + break; + default: + xjadeo_proc_action->set_active(!xjadeo_proc_action->get_active()); + break; + } + bool onoff = xjadeo_proc_action->get_active(); + xjadeo_ontop_action->set_sensitive(onoff); + xjadeo_timecode_action->set_sensitive(onoff); + xjadeo_frame_action->set_sensitive(onoff); + xjadeo_osdbg_action->set_sensitive(onoff); + xjadeo_fullscreen_action->set_sensitive(onoff); + xjadeo_letterbox_action->set_sensitive(onoff); + xjadeo_zoom_100->set_sensitive(onoff); +} + +void +Editor::set_xjadeo_proc () +{ + if (xjadeo_proc_action->get_active()) { + ARDOUR_UI::instance()->video_timeline->open_video_monitor(); + } else { + ARDOUR_UI::instance()->video_timeline->close_video_monitor(); + } +} + +void +Editor::toggle_xjadeo_viewoption (int what, int state) +{ + Glib::RefPtr action; + switch (what) { + case 1: + action = xjadeo_ontop_action; + break; + case 2: + action = xjadeo_timecode_action; + break; + case 3: + action = xjadeo_frame_action; + break; + case 4: + action = xjadeo_osdbg_action; + break; + case 5: + action = xjadeo_fullscreen_action; + break; + case 6: + action = xjadeo_letterbox_action; + break; + case 7: + return; + default: + return; + } + + switch(state) { + case 1: + action->set_active(true); + break; + case 0: + action->set_active(false); + break; + default: + action->set_active(!action->get_active()); + break; + } +} + +void +Editor::set_xjadeo_viewoption (int what) +{ + Glib::RefPtr action; + switch (what) { + case 1: + action = xjadeo_ontop_action; + break; + case 2: + action = xjadeo_timecode_action; + break; + case 3: + action = xjadeo_frame_action; + break; + case 4: + action = xjadeo_osdbg_action; + break; + case 5: + action = xjadeo_fullscreen_action; + break; + case 6: + action = xjadeo_letterbox_action; + break; + case 7: + ARDOUR_UI::instance()->video_timeline->control_video_monitor(what, 0); + return; + default: + return; + } + if (action->get_active()) { + ARDOUR_UI::instance()->video_timeline->control_video_monitor(what, 1); + } else { + ARDOUR_UI::instance()->video_timeline->control_video_monitor(what, 0); + } +} + void Editor::toggle_measure_visibility () { @@ -1435,8 +1608,6 @@ Editor::parameter_changed (std::string p) update_region_fade_visibility (); } else if (p == "edit-mode") { edit_mode_selector.set_active_text (edit_mode_to_string (Config->get_edit_mode())); - } else if (p == "subframes-per-frame") { - update_just_timecode (); } else if (p == "show-track-meters") { toggle_meter_updating(); } else if (p == "show-summary") { @@ -1565,6 +1736,8 @@ Editor::register_region_actions () /* Toggle `locked' status of selected regions */ toggle_reg_sens (_region_actions, "toggle-region-lock", _("Lock"), sigc::mem_fun(*this, &Editor::toggle_region_lock)); + toggle_reg_sens (_region_actions, "toggle-region-video-lock", _("Lock to Video"), sigc::mem_fun(*this, &Editor::toggle_region_video_lock)); + toggle_reg_sens ( _region_actions, "toggle-region-lock-style",