#ifndef __gtk_ardour_region_view_h__
#define __gtk_ardour_region_view_h__
+#ifdef interface
+#undef interface
+#endif
+
#include <vector>
#include <sigc++/signal.h>
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);
~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; }
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; }
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 ();
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);
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 () {}
/** 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__ */