After dragging from multiple tracks to the dropzone, create the right number of new...
[ardour.git] / gtk2_ardour / marker.h
index 02ef3dc478b756e3d9de7119e077e5b7f50b943c..daa44bf0faf8e8c06b4852d825d2c17ea4382385 100644 (file)
@@ -27,6 +27,8 @@
 
 #include "ardour/ardour.h"
 #include "pbd/signals.h"
+
+#include "canvas/fwd.h"
 #include "canvas/types.h"
 
 namespace ARDOUR {
@@ -34,15 +36,6 @@ namespace ARDOUR {
        class MeterSection;
 }
 
-namespace ArdourCanvas {
-       class Polygon;
-       class Line;
-       class Rectangle;
-       class Group;
-       class Pixbuf;
-       class Item;
-}
-
 class PublicEditor;
 
 class Marker : public sigc::trackable
@@ -63,13 +56,15 @@ class Marker : public sigc::trackable
        };
 
 
-       Marker (PublicEditor& editor, ArdourCanvas::Group &, guint32 rgba, const std::string& text, Type,
+       Marker (PublicEditor& editor, ArdourCanvas::Container &, guint32 rgba, const std::string& text, Type,
                framepos_t frame = 0, bool handle_events = true);
 
        virtual ~Marker ();
 
        static PBD::Signal1<void,Marker*> CatchDeletion;
 
+       static void setup_sizes (const double timebar_height);
+
        ArdourCanvas::Item& the_item() const;
 
        void set_selected (bool);
@@ -83,8 +78,8 @@ class Marker : public sigc::trackable
 
        framepos_t position() const { return frame_position; }
 
-       ArdourCanvas::Group * get_parent() { return _parent; }
-       void reparent (ArdourCanvas::Group & parent);
+       ArdourCanvas::Container * get_parent() { return _parent; }
+       void reparent (ArdourCanvas::Container & parent);
 
        void hide ();
        void show ();
@@ -105,13 +100,12 @@ class Marker : public sigc::trackable
 
        Pango::FontDescription name_font;
 
-       ArdourCanvas::Group* _parent;
-       ArdourCanvas::Group *group;
+       ArdourCanvas::Container* _parent;
+       ArdourCanvas::Container *group;
        ArdourCanvas::Polygon *mark;
-       ArdourCanvas::Pixbuf *name_pixbuf;
+        ArdourCanvas::Text *_name_item;
        ArdourCanvas::Points *points;
-       ArdourCanvas::Line* _line;
-       ArdourCanvas::Points *line_points;
+       ArdourCanvas::Line* _track_canvas_line;
        ArdourCanvas::Rectangle* _name_background;
 
        std::string  _name;
@@ -142,7 +136,7 @@ private:
 class TempoMarker : public Marker
 {
   public:
-        TempoMarker (PublicEditor& editor, ArdourCanvas::Group &, guint32 rgba, const std::string& text, ARDOUR::TempoSection&);
+        TempoMarker (PublicEditor& editor, ArdourCanvas::Container &, guint32 rgba, const std::string& text, ARDOUR::TempoSection&);
        ~TempoMarker ();
 
        ARDOUR::TempoSection& tempo() const { return _tempo; }
@@ -154,7 +148,7 @@ class TempoMarker : public Marker
 class MeterMarker : public Marker
 {
   public:
-        MeterMarker (PublicEditor& editor, ArdourCanvas::Group &, guint32 rgba, const std::string& text, ARDOUR::MeterSection&);
+        MeterMarker (PublicEditor& editor, ArdourCanvas::Container &, guint32 rgba, const std::string& text, ARDOUR::MeterSection&);
        ~MeterMarker ();
 
        ARDOUR::MeterSection& meter() const { return _meter; }