Use a C++ bool constant
[ardour.git] / gtk2_ardour / region_view.h
index a5d5fddbd08acb5d2be6a0b4b82e0264e52a9a04..7fad731dc26cd82e6814af7875c162ade9212f9b 100644 (file)
@@ -49,11 +49,11 @@ namespace ArdourCanvas {
 class RegionView : public TimeAxisViewItem
 {
   public:
-       RegionView (ArdourCanvas::Group* parent,
+       RegionView (ArdourCanvas::Container* parent,
                    TimeAxisView&        time_view,
                    boost::shared_ptr<ARDOUR::Region> region,
                    double               samples_per_pixel,
-                   Gdk::Color const &   basic_color,
+                   uint32_t             base_color,
                    bool                 automation = false);
 
        RegionView (const RegionView& other);
@@ -61,7 +61,7 @@ class RegionView : public TimeAxisViewItem
 
        ~RegionView ();
 
-       virtual void init (Gdk::Color const & base_color, bool wait_for_data);
+       virtual void init (bool wait_for_data);
 
        boost::shared_ptr<ARDOUR::Region> region() const { return _region; }
 
@@ -79,20 +79,19 @@ class RegionView : public TimeAxisViewItem
        void lower_to_bottom ();
 
        bool set_position(framepos_t pos, void* src, double* delta = 0);
-       void fake_set_opaque (bool yn);
 
        virtual void show_region_editor ();
        void hide_region_editor ();
 
        virtual void region_changed (const PBD::PropertyChange&);
 
+       uint32_t get_fill_color () const;
+
        virtual GhostRegion* add_ghost (TimeAxisView&) = 0;
        void remove_ghost_in (TimeAxisView&);
        void remove_ghost (GhostRegion*);
 
-       uint32_t get_fill_color ();
-
-       virtual void entered (bool) {}
+       virtual void entered () {}
        virtual void exited () {}
 
        virtual void enable_display(bool yn) { _enable_display = yn; }
@@ -100,23 +99,15 @@ class RegionView : public TimeAxisViewItem
 
        static PBD::Signal1<void,RegionView*> RegionViewGoingAway;
 
-       ARDOUR::BeatsFramesConverter const & region_relative_time_converter () const {
-               return _region_relative_time_converter;
-       }
-
-       ARDOUR::BeatsFramesConverter const & source_relative_time_converter () const {
-               return _source_relative_time_converter;
-       }
-
        /** Called when a front trim is about to begin */
        virtual void trim_front_starting () {}
 
-       bool trim_front (framepos_t, bool);
+       bool trim_front (framepos_t, bool, const int32_t sub_num);
 
        /** Called when a start trim has finished */
        virtual void trim_front_ending () {}
 
-       bool trim_end (framepos_t, bool);
+       bool trim_end (framepos_t, bool, const int32_t sub_num);
         void move_contents (ARDOUR::frameoffset_t);
        virtual void thaw_after_trim ();
 
@@ -124,18 +115,24 @@ class RegionView : public TimeAxisViewItem
         void drop_silent_frames ();
         void hide_silent_frames ();
 
-       ARDOUR::frameoffset_t snap_frame_to_frame (ARDOUR::frameoffset_t) const;
-       
+       struct PositionOrder {
+               bool operator()(const RegionView* a, const RegionView* b) {
+                       return a->region()->position() < b->region()->position();
+               }
+       };
+
+       ARDOUR::frameoffset_t snap_frame_to_frame (ARDOUR::frameoffset_t, bool ensure_snap = false) const;
+
   protected:
 
        /** Allows derived types to specify their visibility requirements
         * to the TimeAxisViewItem parent class
         */
-       RegionView (ArdourCanvas::Group *,
+       RegionView (ArdourCanvas::Container *,
                    TimeAxisView&,
                    boost::shared_ptr<ARDOUR::Region>,
                    double samples_per_pixel,
-                   Gdk::Color const & basic_color,
+                   uint32_t basic_color,
                    bool recording,
                    TimeAxisViewItem::Visibility);
 
@@ -154,7 +151,7 @@ class RegionView : public TimeAxisViewItem
        void        lock_toggle ();
 
        virtual void set_colors ();
-       virtual void set_frame_color ();
+       virtual void set_sync_mark_color ();
        virtual void reset_width_dependent_items (double pixel_width);
 
        virtual void color_handler () {}
@@ -193,9 +190,6 @@ class RegionView : public TimeAxisViewItem
         /** a text item to display strip silence statistics
          */
         ArdourCanvas::Text* _silence_text;
-
-       ARDOUR::BeatsFramesConverter _region_relative_time_converter;
-       ARDOUR::BeatsFramesConverter _source_relative_time_converter;
 };
 
 #endif /* __gtk_ardour_region_view_h__ */