diff options
author | Carl Hetherington <carl@carlh.net> | 2008-12-18 17:46:28 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2008-12-18 17:46:28 +0000 |
commit | 883eeb8cf2c717bc0fd121882b484897742f7f28 (patch) | |
tree | ce39523da16319dc917fdf4a5f5d964b499f4006 /gtk2_ardour/editor_mouse.cc | |
parent | 058e7f2c0198a1e4036dd0b4de89cf815a0c1e68 (diff) |
Implement #826: edit-click on automation points allows value edit.
git-svn-id: svn://localhost/ardour2/branches/3.0@4329 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_mouse.cc')
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 4b4ed86164..b652d129f6 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -49,6 +49,7 @@ #include "keyboard.h" #include "editing.h" #include "rgb_macros.h" +#include "control_point_dialog.h" #include <ardour/types.h> #include <ardour/profile.h> @@ -1071,6 +1072,10 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT } break; + case ControlPointItem: + edit_control_point (item); + break; + default: break; } @@ -3203,6 +3208,28 @@ Editor::control_point_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent } void +Editor::edit_control_point (ArdourCanvas::Item* item) +{ + ControlPoint* p = reinterpret_cast<ControlPoint *> (item->get_data ("control_point")); + + if (p == 0) { + fatal << _("programming error: control point canvas item has no control point object pointer!") << endmsg; + /*NOTREACHED*/ + } + + ControlPointDialog d (p); + d.set_position (Gtk::WIN_POS_MOUSE); + ensure_float (d); + + if (d.run () != RESPONSE_ACCEPT) { + return; + } + + p->line().modify_point_y (*p, d.get_y_fraction ()); +} + + +void Editor::start_line_grab_from_regionview (ArdourCanvas::Item* item, GdkEvent* event) { switch (mouse_mode) { |