Use boost::shared_ptr instead of raw pointers for RouteUI track (etc) accessors ...
[ardour.git] / gtk2_ardour / marker.h
index bcf4357f19fc947c04142bebf2cfaf3809dcac0c..7865004d54e15de0a509f1fad2b397014e07ee8f 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __gtk_ardour_marker_h__
@@ -24,9 +23,6 @@
 #include <string>
 #include <glib.h>
 #include <ardour/ardour.h>
-#include <libgnomecanvasmm/group.h>
-#include <libgnomecanvasmm/text.h>
-#include <libgnomecanvasmm/polygon.h>
 #include <sigc++/signal.h>
 
 #include "canvas.h"
@@ -53,11 +49,15 @@ class Marker : public sigc::trackable
                PunchOut
        };
 
+
        Marker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, Type, 
-               gint (*callback)(ArdourCanvas::Item *, GdkEvent *, gpointer), jack_nframes_t frame = 0);
+               nframes_t frame = 0, bool handle_events = true);
+
        virtual ~Marker ();
 
-       void set_position (jack_nframes_t);
+       ArdourCanvas::Item& the_item() const;
+
+       void set_position (nframes_t);
        void set_name (const string&);
        void set_color_rgba (uint32_t rgba);
 
@@ -70,12 +70,12 @@ class Marker : public sigc::trackable
        PublicEditor& editor;
 
        ArdourCanvas::Group *group;
-       ArdourCanvas::Item *mark;
+       ArdourCanvas::Polygon *mark;
        ArdourCanvas::Text *text;
        ArdourCanvas::Points *points;
 
        double    unit_position;
-       jack_nframes_t frame_position;
+       nframes_t frame_position;
        unsigned char      shift; /* should be double, but its always small and integral */
        Type      _type;
        
@@ -85,8 +85,7 @@ class Marker : public sigc::trackable
 class TempoMarker : public Marker
 {
   public:
-        TempoMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::TempoSection&, 
-                    gint (*callback)(ArdourCanvas::Item *, GdkEvent *, gpointer));
+        TempoMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::TempoSection&);
        ~TempoMarker ();
 
        ARDOUR::TempoSection& tempo() const { return _tempo; }
@@ -98,8 +97,7 @@ class TempoMarker : public Marker
 class MeterMarker : public Marker
 {
   public:
-        MeterMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::MeterSection&, 
-                    gint (*callback)(ArdourCanvas::Item *, GdkEvent *, gpointer));
+        MeterMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::MeterSection&);
        ~MeterMarker ();
 
        ARDOUR::MeterSection& meter() const { return _meter; }