summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_cursors.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2005-11-12 22:07:07 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2005-11-12 22:07:07 +0000
commit1a3a77607768721f6834ddae09f532cdb6aec4a6 (patch)
treec182c6676f454fb94bd56d84e2ba0ab6463a167d /gtk2_ardour/editor_cursors.cc
parentbc8174cd083818cdd6328ea729d6ed53a0b8307d (diff)
incomplete changes based on karsten's megapatch
git-svn-id: svn://localhost/trunk/ardour2@81 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_cursors.cc')
-rw-r--r--gtk2_ardour/editor_cursors.cc48
1 files changed, 18 insertions, 30 deletions
diff --git a/gtk2_ardour/editor_cursors.cc b/gtk2_ardour/editor_cursors.cc
index edd300c67c..7d2e5e3f11 100644
--- a/gtk2_ardour/editor_cursors.cc
+++ b/gtk2_ardour/editor_cursors.cc
@@ -30,38 +30,26 @@ using namespace sigc;
using namespace ARDOUR;
using namespace Gtk;
-Editor::Cursor::Cursor (Editor& ed, const string& color, GtkSignalFunc callbck)
- : editor (ed), callback (callbck), length(1.0)
+Editor::Cursor::Cursor (Editor& ed, const string& color, bool (Editor::*callbck)(GdkEvent*))
+ : editor (ed), length(1.0)
{
- GnomeCanvasGroup *group;
- points = gnome_canvas_points_new (2);
-
/* "randomly" initialize coords */
-
- points->coords[0] = -9383839.0;
- points->coords[1] = 0.0;
- points->coords[2] = 1.0;
- points->coords[3] = 0.0;
-
- group = GNOME_CANVAS_GROUP (editor.cursor_group);
-
- // cerr << "set cursor points, nc = " << points->num_points << endl;
- canvas_item = gnome_canvas_item_new (group,
- gnome_canvas_line_get_type(),
- "points", points,
- "fill_color", color.c_str(),
- "width_pixels", 1,
- "first_arrowhead", (gboolean) TRUE,
- "last_arrowhead", (gboolean) TRUE,
- "arrow_shape_a", 11.0,
- "arrow_shape_b", 0.0,
- "arrow_shape_c", 9.0,
- NULL);
-
- // cerr << "cursor line @ " << canvas_item << endl;
-
- gtk_object_set_data (GTK_OBJECT(canvas_item), "cursor", this);
- gtk_signal_connect (GTK_OBJECT(canvas_item), "event", callback, &editor);
+
+ points.push_back (Gnome::Art::Point (-9383839.0, 0.0));
+ points.push_back (Gnome::Art::Point (1.0, 0.0));
+
+ canvas_item = new Gnome::Canvas::Line (editor.cursor_group);
+ canvas_item->set_property ("points", points.gobj());
+ canvas_item->set_property ("fill_color", color.c_str());
+ canvas_item->set_property ("width_pixels", 1);
+ canvas_item->set_property ("first_arrowhead", (gboolean) TRUE);
+ canvas_item->set_property ("last_arrowhead", (gboolean) TRUE);
+ canvas_item->set_property ("arrow_shape_a", 11.0);
+ canvas_item->set_property ("arrow_shape_b", 0.0);
+ canvas_item->set_property ("arrow_shape_c", 9.0);
+
+ canvas_item->set_data ("cursor", this);
+ canvas_item->signal_event().connect (slot (ed, callback));
current_frame = 1; /* force redraw at 0 */
}