diff options
author | David Robillard <d@drobilla.net> | 2007-07-26 22:18:33 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-07-26 22:18:33 +0000 |
commit | 23d74f838521320dc1682426341d1874061337a6 (patch) | |
tree | 25d26afb8f826f03d1321f425f6cc620f4bc7988 /src/libs/gui/PatchView.cpp | |
parent | 3f445b19aaf42ae9442a9a7e40f95b4502f06047 (diff) | |
download | ingen-23d74f838521320dc1682426341d1874061337a6.tar.gz ingen-23d74f838521320dc1682426341d1874061337a6.tar.bz2 ingen-23d74f838521320dc1682426341d1874061337a6.zip |
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
Diffstat (limited to 'src/libs/gui/PatchView.cpp')
-rw-r--r-- | src/libs/gui/PatchView.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
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::RefPtr<Gnome::Glade::X xml->get_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<PatchModel> 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(); } @@ -111,6 +121,23 @@ PatchView::create(SharedPtr<PatchModel> 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() { if (!_enable_signal) |