From 23d74f838521320dc1682426341d1874061337a6 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 26 Jul 2007 22:18:33 +0000 Subject: Make canvas grab events. Remove silly ctrl+click zoom event grabs. Add concept of "edit mode", old behaviour = edit mode, edit mode off = no connections or module moving. git-svn-id: http://svn.drobilla.net/lad/ingen@641 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/gui/PatchView.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/libs/gui/PatchView.cpp') diff --git a/src/libs/gui/PatchView.cpp b/src/libs/gui/PatchView.cpp index 0246b98c..0a624dc0 100644 --- a/src/libs/gui/PatchView.cpp +++ b/src/libs/gui/PatchView.cpp @@ -51,6 +51,7 @@ PatchView::PatchView(BaseObjectType* cobject, const Glib::RefPtrget_widget("patch_view_save_but", _save_but); xml->get_widget("patch_view_zoom_full_but", _zoom_full_but); xml->get_widget("patch_view_zoom_normal_but", _zoom_normal_but); + xml->get_widget("patch_view_edit_mode_but", _edit_mode_but); xml->get_widget("patch_view_scrolledwindow", _canvas_scrolledwindow); } @@ -88,6 +89,15 @@ PatchView::set_patch(SharedPtr patch) _zoom_full_but->signal_clicked().connect( sigc::mem_fun(_canvas.get(), &PatchCanvas::zoom_full)); + + patch->editable_sig.connect(sigc::mem_fun( + *this, &PatchView::on_editable_sig)); + + _edit_mode_but->signal_toggled().connect(sigc::mem_fun( + *this, &PatchView::editable_toggled)); + + + _canvas->grab_focus(); } @@ -110,6 +120,23 @@ PatchView::create(SharedPtr patch) } +void +PatchView::on_editable_sig(bool editable) +{ + _edit_mode_but->set_active(editable); + _canvas->lock(!editable); +} + + +void +PatchView::editable_toggled() +{ + const bool editable = _edit_mode_but->get_active(); + _patch->set_editable(editable); + _canvas->lock(!editable); +} + + void PatchView::process_toggled() { -- cgit v1.2.1