add left/right side trim cursors and use them for region trimming, as appropriate
[ardour.git] / gtk2_ardour / automation_region_view.h
index 55c1b77d6404d7f0dd8724428ce195d17fa3de97..6d3a00d4b6a69133a2251aeda535a872879f8d97 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2007 Paul Davis 
+    Copyright (C) 2007 Paul Davis
     Author: Dave Robillard
 
     This program is free software; you can redistribute it and/or modify
@@ -40,7 +40,7 @@ class AutomationRegionView : public RegionView
 {
 public:
        AutomationRegionView(ArdourCanvas::Group*,
-                            AutomationTimeAxisViewPtr,
+                            AutomationTimeAxisView&,
                             boost::shared_ptr<ARDOUR::Region>,
                             const Evoral::Parameter& parameter,
                             boost::shared_ptr<ARDOUR::AutomationList>,
@@ -48,26 +48,25 @@ public:
                             Gdk::Color const & basic_color);
 
        ~AutomationRegionView() {}
-       
+
        void init (Gdk::Color const & basic_color, bool wfd);
-       
-       inline AutomationTimeAxisViewPtr automation_view() const {
-               return boost::dynamic_pointer_cast<AutomationTimeAxisView> (trackview);
-       }
-       
+
+       inline AutomationTimeAxisView* automation_view() const
+               { return dynamic_cast<AutomationTimeAxisView*>(&trackview); }
+
        void set_line(boost::shared_ptr<AutomationLine> line) { _line = line; }
        boost::shared_ptr<AutomationLine> line() { return _line; }
-       
+
        // We are a ghost.  Meta ghosts?  Crazy talk.
-       virtual GhostRegion* add_ghost(TimeAxisViewPtr) { return 0; }
-       
+       virtual GhostRegion* add_ghost(TimeAxisView&) { return NULL; }
+
        void set_height (double);
        void reset_width_dependent_items(double pixel_width);
 
 protected:
        void create_line(boost::shared_ptr<ARDOUR::AutomationList> list);
-       bool set_position(nframes_t pos, void* src, double* ignored);
-       void region_resized(ARDOUR::Change what_changed);
+       bool set_position(nframes64_t pos, void* src, double* ignored);
+       void region_resized (const PBD::PropertyChange&);
        bool canvas_event(GdkEvent* ev);
        void add_automation_event (GdkEvent* event, nframes_t when, double y);
        void entered();