mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-20 04:15:46 +01:00
add basics of Cut mouse mode, no functionality yet. Icon images are still required
Conflicts: gtk2_ardour/editor.cc gtk2_ardour/editor_actions.cc
This commit is contained in:
parent
5ecfe1a0b9
commit
b18b3b850b
8 changed files with 40 additions and 6 deletions
|
|
@ -72,6 +72,7 @@ MOUSEMODE(MouseDraw)
|
|||
MOUSEMODE(MouseTimeFX)
|
||||
MOUSEMODE(MouseZoom)
|
||||
MOUSEMODE(MouseAudition)
|
||||
MOUSEMODE(MouseCut)
|
||||
|
||||
/* Changing this order will break the menu */
|
||||
ZOOMFOCUS(ZoomFocusLeft)
|
||||
|
|
|
|||
|
|
@ -3132,6 +3132,7 @@ void
|
|||
Editor::setup_tooltips ()
|
||||
{
|
||||
ARDOUR_UI::instance()->set_tip (smart_mode_button, _("Smart Mode (add Range functions to Object mode)"));
|
||||
ARDOUR_UI::instance()->set_tip (mouse_cut_button, _("Cut Mode (split Regions)"));
|
||||
ARDOUR_UI::instance()->set_tip (mouse_draw_button, _("Draw/Edit MIDI Notes"));
|
||||
ARDOUR_UI::instance()->set_tip (mouse_gain_button, _("Draw Region Gain"));
|
||||
ARDOUR_UI::instance()->set_tip (mouse_timefx_button, _("Stretch/Shrink Regions and MIDI Notes"));
|
||||
|
|
|
|||
|
|
@ -1628,6 +1628,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||
|
||||
ArdourButton mouse_timefx_button;
|
||||
ArdourButton mouse_audition_button;
|
||||
ArdourButton mouse_cut_button;
|
||||
|
||||
ArdourButton smart_mode_button;
|
||||
Glib::RefPtr<Gtk::ToggleAction> smart_mode_action;
|
||||
|
|
|
|||
|
|
@ -453,13 +453,13 @@ Editor::register_actions ()
|
|||
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::Inset );
|
||||
mouse_draw_button.add_elements (ArdourButton::Inset );
|
||||
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::Inset );
|
||||
mouse_gain_button.add_elements (ArdourButton::Inset );
|
||||
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));
|
||||
|
|
@ -468,15 +468,21 @@ Editor::register_actions ()
|
|||
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::Inset );
|
||||
mouse_audition_button.add_elements (ArdourButton::Inset );
|
||||
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::Inset );
|
||||
mouse_timefx_button.add_elements (ArdourButton::Inset );
|
||||
mouse_timefx_button.set_name ("mouse mode button");
|
||||
|
||||
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-cut", _("Cut Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseCut));
|
||||
mouse_cut_button.set_related_action (act);
|
||||
mouse_cut_button.set_image (::get_icon("tool_cut"));
|
||||
mouse_cut_button.add_elements (ArdourButton::Inset );
|
||||
mouse_cut_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));
|
||||
|
||||
act = ActionManager::register_toggle_action (mouse_mode_actions, "toggle-internal-edit", _("Edit MIDI"), sigc::mem_fun(*this, &Editor::toggle_internal_editing));
|
||||
|
|
|
|||
|
|
@ -1107,6 +1107,10 @@ Editor::which_mode_cursor () const
|
|||
}
|
||||
break;
|
||||
|
||||
case MouseCut:
|
||||
mode_cursor = _cursors->scissors;
|
||||
break;
|
||||
|
||||
case MouseObject:
|
||||
/* don't use mode cursor, pick a grabber cursor based on the item */
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -239,6 +239,10 @@ Editor::set_mouse_mode (MouseMode m, bool force)
|
|||
act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-range"));
|
||||
break;
|
||||
|
||||
case MouseCut:
|
||||
act = ActionManager::get_action (X_("MouseCut"), X_("set-mouse-mode-cut"));
|
||||
break;
|
||||
|
||||
case MouseObject:
|
||||
act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-object"));
|
||||
break;
|
||||
|
|
@ -291,6 +295,10 @@ Editor::mouse_mode_toggled (MouseMode m)
|
|||
act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-object"));
|
||||
break;
|
||||
|
||||
case MouseCut:
|
||||
act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-cut"));
|
||||
break;
|
||||
|
||||
case MouseDraw:
|
||||
act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-draw"));
|
||||
break;
|
||||
|
|
@ -410,11 +418,16 @@ Editor::step_mouse_mode (bool next)
|
|||
|
||||
case MouseRange:
|
||||
if (next) set_mouse_mode (MouseDraw);
|
||||
else set_mouse_mode (MouseObject);
|
||||
else set_mouse_mode (MouseCut);
|
||||
break;
|
||||
|
||||
case MouseCut:
|
||||
if (next) set_mouse_mode (MouseRange);
|
||||
else set_mouse_mode (MouseDraw);
|
||||
break;
|
||||
|
||||
case MouseDraw:
|
||||
if (next) set_mouse_mode (MouseZoom);
|
||||
if (next) set_mouse_mode (MouseCut);
|
||||
else set_mouse_mode (MouseRange);
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ using namespace ARDOUR_UI_UTILS;
|
|||
|
||||
MouseCursors::MouseCursors ()
|
||||
: cross_hair (0)
|
||||
, scissors (0)
|
||||
, trimmer (0)
|
||||
, right_side_trim (0)
|
||||
, anchored_right_side_trim (0)
|
||||
|
|
@ -70,6 +71,7 @@ void
|
|||
MouseCursors::drop_all ()
|
||||
{
|
||||
delete cross_hair; cross_hair = 0;
|
||||
delete scissors; scissors = 0;
|
||||
delete trimmer; trimmer = 0;
|
||||
delete right_side_trim; right_side_trim = 0;
|
||||
delete anchored_right_side_trim; anchored_right_side_trim = 0;
|
||||
|
|
@ -157,6 +159,11 @@ MouseCursors::set_cursor_set (const std::string& name)
|
|||
transparent = new Cursor (bits, bits, c, c, 0, 0);
|
||||
}
|
||||
|
||||
{
|
||||
RefPtr<Pixbuf> p (::get_icon ("scissors", _cursor_set));
|
||||
scissors = new Cursor (Display::get_default(), p, 5, 0);
|
||||
}
|
||||
|
||||
{
|
||||
RefPtr<Pixbuf> p (::get_icon ("grabber", _cursor_set));
|
||||
grabber = new Cursor (Display::get_default(), p, 5, 0);
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ public:
|
|||
std::string cursor_set() const { return _cursor_set; }
|
||||
|
||||
Gdk::Cursor* cross_hair;
|
||||
Gdk::Cursor* scissors;
|
||||
Gdk::Cursor* trimmer;
|
||||
Gdk::Cursor* right_side_trim;
|
||||
Gdk::Cursor* anchored_right_side_trim;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue