merge with master.
[ardour.git] / gtk2_ardour / automation_line.h
index 3583ecdd719dba93eb54c94316425223f43357a9..663310dc46c9d339e6433c219606c2e05c13847f 100644 (file)
@@ -37,7 +37,7 @@
 #include "ardour/types.h"
 
 #include "canvas/types.h"
-#include "canvas/group.h"
+#include "canvas/container.h"
 #include "canvas/poly_line.h"
 
 class AutomationLine;
@@ -47,6 +47,7 @@ class TimeAxisView;
 class AutomationTimeAxisView;
 class Selectable;
 class Selection;
+class PublicEditor;
 
 
 /** A GUI representation of an ARDOUR::AutomationList */
@@ -59,7 +60,7 @@ public:
                SelectedControlPoints = 0x4
        };
        
-       AutomationLine (const std::string& name, TimeAxisView&, ArdourCanvas::Group&,
+       AutomationLine (const std::string& name, TimeAxisView&, ArdourCanvas::Item&,
                        boost::shared_ptr<ARDOUR::AutomationList>,
                        Evoral::TimeConverter<double, ARDOUR::framepos_t>* converter = 0);
        virtual ~AutomationLine ();
@@ -104,7 +105,7 @@ public:
 
        TimeAxisView& trackview;
 
-       ArdourCanvas::Group& canvas_group() const { return *group; }
+       ArdourCanvas::Container& canvas_group() const { return *group; }
        ArdourCanvas::Item&  parent_group() const { return _parent_group; }
        ArdourCanvas::Item&  grab_item() const { return *line; }
 
@@ -172,8 +173,8 @@ protected:
        /** true if we did a push at any point during the current drag */
        bool    did_push;
 
-       ArdourCanvas::Group&        _parent_group;
-       ArdourCanvas::Group*        group;
+       ArdourCanvas::Item&        _parent_group;
+       ArdourCanvas::Container*       group;
        ArdourCanvas::PolyLine*     line; /* line */
        ArdourCanvas::Points        line_points; /* coordinates for canvas line */
        std::vector<ControlPoint*>  control_points; /* visible control points */
@@ -183,7 +184,7 @@ public:
                ContiguousControlPoints (AutomationLine& al);
                double clamp_dx (double dx);
                void move (double dx, double dy);
-               void compute_x_bounds ();
+               void compute_x_bounds (PublicEditor& e);
 private:
                AutomationLine& line;
                double before_x;
@@ -218,7 +219,7 @@ private:
         */
        ARDOUR::framecnt_t _offset;
 
-       void show ();
+       void update_visibility ();
        void reset_line_coords (ControlPoint&);
        void add_visible_control_point (uint32_t, uint32_t, double, double, ARDOUR::AutomationList::iterator, uint32_t);
        double control_point_box_size ();