waf build works on OS X ; new bindings file and processing system in place for mnemon...
[ardour.git] / gtk2_ardour / marker.h
index fa252571fb95796116e7fa7b988818e1b147c229..fe6cac75c474cd5b57d3053ad1edf5c5657744c0 100644 (file)
 
 #include <string>
 #include <glib.h>
-#include <ardour/ardour.h>
-#include <pbd/destructible.h>
+
+#include <libgnomecanvasmm/pixbuf.h>
+
+#include "ardour/ardour.h"
+#include "pbd/destructible.h"
 
 #include "canvas.h"
 
@@ -50,20 +53,20 @@ class Marker : public PBD::Destructible
        };
 
 
-       Marker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, Type, 
+       Marker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const std::string& text, Type, 
                nframes_t frame = 0, bool handle_events = true);
 
        virtual ~Marker ();
 
        ArdourCanvas::Item& the_item() const;
 
-       void add_line (ArdourCanvas::Group*, double initial_height);
+       void add_line (ArdourCanvas::Group*, double y_origin, double initial_height);
        void show_line ();
        void hide_line ();
-       void set_line_length (double);
+       void set_line_vpos (double y_origin, double height);
 
        void set_position (nframes_t);
-       void set_name (const string&);
+       void set_name (const std::string&);
        void set_color_rgba (uint32_t rgba);
        
        nframes64_t position() const { return frame_position; }
@@ -79,18 +82,21 @@ class Marker : public PBD::Destructible
   protected:
        PublicEditor& editor;
 
+       Pango::FontDescription* name_font;
+
        ArdourCanvas::Group * _parent;
        ArdourCanvas::Group *group;
        ArdourCanvas::Polygon *mark;
-       ArdourCanvas::Text *text;
+       ArdourCanvas::Pixbuf *name_pixbuf;
        ArdourCanvas::Points *points;
-       ArdourCanvas::Line *line;
+       ArdourCanvas::SimpleLine *line;
        ArdourCanvas::Points *line_points;
 
        double        unit_position;
        nframes64_t   frame_position;
        unsigned char shift; /* should be double, but its always small and integral */
-       Type         _type;
+       Type          _type;
+       int           name_height;
        
        void reposition ();
 };
@@ -98,7 +104,7 @@ class Marker : public PBD::Destructible
 class TempoMarker : public Marker
 {
   public:
-        TempoMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::TempoSection&);
+        TempoMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const std::string& text, ARDOUR::TempoSection&);
        ~TempoMarker ();
 
        ARDOUR::TempoSection& tempo() const { return _tempo; }
@@ -110,7 +116,7 @@ class TempoMarker : public Marker
 class MeterMarker : public Marker
 {
   public:
-        MeterMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, ARDOUR::MeterSection&);
+        MeterMarker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const std::string& text, ARDOUR::MeterSection&);
        ~MeterMarker ();
 
        ARDOUR::MeterSection& meter() const { return _meter; }