X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fselection.h;h=f0af31eafef08c326eff0b8849035b485c38f040;hb=51ef4343827883e9721088f051981c9da2aa6acd;hp=a8f298434a54a6e982f9645c00954d97c3e50b61;hpb=6698f5f686bef82b0c9568558c83a3b9b3344700;p=ardour.git diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h index a8f298434a..f0af31eafe 100644 --- a/gtk2_ardour/selection.h +++ b/gtk2_ardour/selection.h @@ -32,10 +32,12 @@ #include "playlist_selection.h" #include "processor_selection.h" #include "point_selection.h" +#include "marker_selection.h" class TimeAxisView; class RegionView; class Selectable; +class PublicEditor; namespace ARDOUR { class Region; @@ -45,6 +47,10 @@ namespace ARDOUR { class AutomationList; } +namespace Evoral { + class ControlList; +} + /// Lists of selected things /** The Selection class holds lists of selected items (tracks, regions, etc. etc.). */ @@ -70,9 +76,9 @@ class Selection : public sigc::trackable AutomationSelection lines; PlaylistSelection playlists; PointSelection points; + MarkerSelection markers; - Selection() { - next_time_id = 0; + Selection (PublicEditor const * e) : editor (e), next_time_id (0) { clear(); } @@ -84,6 +90,7 @@ class Selection : public sigc::trackable sigc::signal LinesChanged; sigc::signal PlaylistsChanged; sigc::signal PointsChanged; + sigc::signal MarkersChanged; void clear (); bool empty(); @@ -92,6 +99,7 @@ class Selection : public sigc::trackable bool selected (TimeAxisView*); bool selected (RegionView*); + bool selected (Marker*); void set (std::list&); void add (std::list&); @@ -99,13 +107,15 @@ class Selection : public sigc::trackable void set (TimeAxisView*); void set (const std::list&); - void set (RegionView*); + void set (RegionView*, bool also_clear_tracks = true); void set (std::vector&); long set (TimeAxisView*, nframes_t, nframes_t); - void set (ARDOUR::AutomationList*); + void set (boost::shared_ptr); void set (boost::shared_ptr); void set (const std::list >&); void set (AutomationSelectable*); + void set (Marker*); + void set (const RegionSelection&); void toggle (TimeAxisView*); void toggle (const std::list&); @@ -116,25 +126,30 @@ class Selection : public sigc::trackable void toggle (boost::shared_ptr); void toggle (const std::list >&); void toggle (const std::vector&); + void toggle (Marker*); void add (TimeAxisView*); void add (const std::list&); void add (RegionView*); void add (std::vector&); long add (nframes_t, nframes_t); - void add (ARDOUR::AutomationList*); + void add (boost::shared_ptr); void add (boost::shared_ptr); void add (const std::list >&); - + void add (Marker*); + void add (const std::list&); + void add (const RegionSelection&); + void remove (TimeAxisView*); void remove (const std::list&); void remove (RegionView*); void remove (uint32_t selection_id); void remove (nframes_t, nframes_t); - void remove (ARDOUR::AutomationList*); + void remove (boost::shared_ptr); void remove (boost::shared_ptr); void remove (const std::list >&); - void remove (const list&); + void remove (const std::list&); + void remove (Marker*); void replace (uint32_t time_index, nframes_t start, nframes_t end); @@ -144,12 +159,16 @@ class Selection : public sigc::trackable void clear_lines (); void clear_playlists (); void clear_points (); + void clear_markers (); void foreach_region (void (ARDOUR::Region::*method)(void)); void foreach_regionview (void (RegionView::*method)(void)); template void foreach_region (void (ARDOUR::Region::*method)(A), A arg); + void select_edit_group_regions (); + private: + PublicEditor const * editor; uint32_t next_time_id; void add (std::vector&);