X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmarker.h;h=13e80ef51279d411bf31e67c05194fc0a1677489;hb=aaa44a37aaf585b9bcd9268a9551a005e6269bdb;hp=8843f684274915e9a87b99fb799a64a743686a40;hpb=e493b2b7c4fbbbfc457f02babf9546289b430177;p=ardour.git diff --git a/gtk2_ardour/marker.h b/gtk2_ardour/marker.h index 8843f68427..13e80ef512 100644 --- a/gtk2_ardour/marker.h +++ b/gtk2_ardour/marker.h @@ -24,9 +24,10 @@ #include #include #include -#include #include +#include "canvas.h" + namespace ARDOUR { class TempoSection; class MeterSection; @@ -49,10 +50,14 @@ class Marker : public sigc::trackable PunchOut }; - Marker (PublicEditor& editor, GtkCanvasGroup *parent, guint32 rgba, const string& text, Type, - gint (*callback)(GtkCanvasItem *, GdkEvent *, gpointer), jack_nframes_t frame = 0); + + Marker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, Type, + jack_nframes_t frame = 0, bool handle_events = true); + virtual ~Marker (); + ArdourCanvas::Item& the_item() const; + void set_position (jack_nframes_t); void set_name (const string&); void set_color_rgba (uint32_t rgba); @@ -65,10 +70,10 @@ class Marker : public sigc::trackable protected: PublicEditor& editor; - GtkCanvasItem *group; - GtkCanvasItem *mark; - GtkCanvasItem *text; - GtkCanvasPoints *points; + ArdourCanvas::Group *group; + ArdourCanvas::Polygon *mark; + ArdourCanvas::Text *text; + ArdourCanvas::Points *points; double unit_position; jack_nframes_t frame_position; @@ -81,8 +86,7 @@ class Marker : public sigc::trackable class TempoMarker : public Marker { public: - TempoMarker (PublicEditor& editor, GtkCanvasGroup *parent, guint32 rgba, const string& text, ARDOUR::TempoSection&, - gint (*callback)(GtkCanvasItem *, GdkEvent *, gpointer)); + TempoMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::TempoSection&); ~TempoMarker (); ARDOUR::TempoSection& tempo() const { return _tempo; } @@ -94,8 +98,7 @@ class TempoMarker : public Marker class MeterMarker : public Marker { public: - MeterMarker (PublicEditor& editor, GtkCanvasGroup *parent, guint32 rgba, const string& text, ARDOUR::MeterSection&, - gint (*callback)(GtkCanvasItem *, GdkEvent *, gpointer)); + MeterMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::MeterSection&); ~MeterMarker (); ARDOUR::MeterSection& meter() const { return _meter; }