summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2012-10-11 04:05:22 +0000
committerHans Baier <hansfbaier@googlemail.com>2012-10-11 04:05:22 +0000
commit9bdde56860a5b6e395d20606208f816489d19803 (patch)
tree34106c2193b1717809ebe449bdfd46a2f426199b /gtk2_ardour
parent3647a55f28fe6fb7de14c9cfd90cb99d9de69d25 (diff)
make sysex contents appear as verbose_cursor for visual feedback the flag as been entered and for readability
git-svn-id: svn://localhost/ardour2/branches/3.0@13240 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/canvas-sysex.cc8
-rw-r--r--gtk2_ardour/canvas-sysex.h3
-rw-r--r--gtk2_ardour/midi_region_view.cc20
-rw-r--r--gtk2_ardour/midi_region_view.h2
4 files changed, 27 insertions, 6 deletions
diff --git a/gtk2_ardour/canvas-sysex.cc b/gtk2_ardour/canvas-sysex.cc
index f8948d596e..ca378fb303 100644
--- a/gtk2_ardour/canvas-sysex.cc
+++ b/gtk2_ardour/canvas-sysex.cc
@@ -45,6 +45,7 @@ CanvasSysEx::CanvasSysEx(
y),
_sysex(sysex)
{
+ _text = text;
set_text(text);
}
@@ -83,14 +84,13 @@ CanvasSysEx::on_event(GdkEvent* ev)
break;
case GDK_ENTER_NOTIFY:
- grab_focus();
+ _region.sysex_entered (this);
return true;
break;
case GDK_LEAVE_NOTIFY:
- /* focus will transfer back via the enter-notify
- * event sent to the midi region view.
- */
+ _region.sysex_left (this);
+ return true;
break;
default:
diff --git a/gtk2_ardour/canvas-sysex.h b/gtk2_ardour/canvas-sysex.h
index 6cee8df97b..c49fcc6df9 100644
--- a/gtk2_ardour/canvas-sysex.h
+++ b/gtk2_ardour/canvas-sysex.h
@@ -45,11 +45,14 @@ public:
virtual ~CanvasSysEx();
const ARDOUR::MidiModel::SysExPtr sysex() const { return _sysex; }
+ const string text() const { return _text; }
virtual bool on_event(GdkEvent* ev);
private:
const ARDOUR::MidiModel::SysExPtr _sysex;
+
+ string _text;
};
} // namespace Canvas
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 76cbcca226..5d972fa85e 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -3173,6 +3173,24 @@ MidiRegionView::patch_left (ArdourCanvas::CanvasPatchChange *)
}
void
+MidiRegionView::sysex_entered (ArdourCanvas::CanvasSysEx* p)
+{
+ ostringstream s;
+ s << p->text();
+ show_verbose_cursor (s.str(), 10, 20);
+ p->grab_focus();
+}
+
+void
+MidiRegionView::sysex_left (ArdourCanvas::CanvasSysEx *)
+{
+ trackview.editor().verbose_cursor()->hide ();
+ /* focus will transfer back via the enter-notify event sent to this
+ * midi region view.
+ */
+}
+
+void
MidiRegionView::note_mouse_position (float x_fraction, float /*y_fraction*/, bool can_set_cursor)
{
Editor* editor = dynamic_cast<Editor*>(&trackview.editor());
@@ -3756,8 +3774,6 @@ MidiRegionView::edit_patch_change (ArdourCanvas::CanvasPatchChange* pc)
void
MidiRegionView::delete_sysex (CanvasSysEx* sysex)
{
- cerr << "about to delete sysex " << sysex->sysex() << endl;
-
MidiModel::SysExDiffCommand* c = _model->new_sysex_diff_command (_("delete sysex"));
c->remove (sysex->sysex());
_model->apply_command (*trackview.session(), c);
diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h
index f3dd827b19..ac0736949d 100644
--- a/gtk2_ardour/midi_region_view.h
+++ b/gtk2_ardour/midi_region_view.h
@@ -185,6 +185,8 @@ public:
void note_left(ArdourCanvas::CanvasNoteEvent* ev);
void patch_entered (ArdourCanvas::CanvasPatchChange *);
void patch_left (ArdourCanvas::CanvasPatchChange *);
+ void sysex_entered (ArdourCanvas::CanvasSysEx* p);
+ void sysex_left (ArdourCanvas::CanvasSysEx* p);
void note_mouse_position (float xfraction, float yfraction, bool can_set_cursor=true);
void unique_select(ArdourCanvas::CanvasNoteEvent* ev);
void note_selected(ArdourCanvas::CanvasNoteEvent* ev, bool add, bool extend=false);