X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fselection.h;h=5e9bc047596c013d1a9f0bd42fc3d5482c3913db;hb=29f0d9732eb68fcaa22219cedddddd47bcaa8c17;hp=1aab4144534fbe5c394cd16bab740204ef602686;hpb=60454cc8dc1ca5e1819b853b55916d52497d495c;p=ardour.git diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h index 1aab414453..5e9bc04759 100644 --- a/gtk2_ardour/selection.h +++ b/gtk2_ardour/selection.h @@ -15,13 +15,13 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_gtk_selection_h__ #define __ardour_gtk_selection_h__ #include +#include #include @@ -30,21 +30,26 @@ #include "track_selection.h" #include "automation_selection.h" #include "playlist_selection.h" -#include "redirect_selection.h" +#include "processor_selection.h" #include "point_selection.h" class TimeAxisView; class RegionView; class Selectable; +class PublicEditor; namespace ARDOUR { class Region; class AudioRegion; class Playlist; - class Redirect; + class Processor; class AutomationList; } +/// Lists of selected things + +/** The Selection class holds lists of selected items (tracks, regions, etc. etc.). */ + class Selection : public sigc::trackable { public: @@ -55,6 +60,7 @@ class Selection : public sigc::trackable enum Operation { Set, + Add, Toggle, Extend }; @@ -64,11 +70,9 @@ class Selection : public sigc::trackable TimeSelection time; AutomationSelection lines; PlaylistSelection playlists; - RedirectSelection redirects; PointSelection points; - Selection() { - next_time_id = 0; + Selection (PublicEditor const * e) : editor (e), next_time_id (0) { clear(); } @@ -79,7 +83,6 @@ class Selection : public sigc::trackable sigc::signal TimeChanged; sigc::signal LinesChanged; sigc::signal PlaylistsChanged; - sigc::signal RedirectsChanged; sigc::signal PointsChanged; void clear (); @@ -90,64 +93,66 @@ class Selection : public sigc::trackable bool selected (TimeAxisView*); bool selected (RegionView*); - void set (list&); - void add (list&); + void set (std::list&); + void add (std::list&); + void toggle (std::list&); void set (TimeAxisView*); - void set (const list&); + void set (const std::list&); void set (RegionView*); void set (std::vector&); - long set (TimeAxisView*, jack_nframes_t, jack_nframes_t); + long set (TimeAxisView*, nframes_t, nframes_t); void set (ARDOUR::AutomationList*); - void set (ARDOUR::Playlist*); - void set (const list&); - void set (ARDOUR::Redirect*); + void set (boost::shared_ptr); + void set (const std::list >&); void set (AutomationSelectable*); void toggle (TimeAxisView*); - void toggle (const list&); + void toggle (const std::list&); void toggle (RegionView*); void toggle (std::vector&); - long toggle (jack_nframes_t, jack_nframes_t); + long toggle (nframes_t, nframes_t); void toggle (ARDOUR::AutomationList*); - void toggle (ARDOUR::Playlist*); - void toggle (const list&); - void toggle (ARDOUR::Redirect*); + void toggle (boost::shared_ptr); + void toggle (const std::list >&); + void toggle (const std::vector&); void add (TimeAxisView*); - void add (const list&); + void add (const std::list&); void add (RegionView*); void add (std::vector&); - long add (jack_nframes_t, jack_nframes_t); + long add (nframes_t, nframes_t); void add (ARDOUR::AutomationList*); - void add (ARDOUR::Playlist*); - void add (const list&); - void add (ARDOUR::Redirect*); + void add (boost::shared_ptr); + void add (const std::list >&); void remove (TimeAxisView*); - void remove (const list&); + void remove (const std::list&); void remove (RegionView*); void remove (uint32_t selection_id); - void remove (jack_nframes_t, jack_nframes_t); + void remove (nframes_t, nframes_t); void remove (ARDOUR::AutomationList*); - void remove (ARDOUR::Playlist*); - void remove (const list&); - void remove (ARDOUR::Redirect*); + void remove (boost::shared_ptr); + void remove (const std::list >&); + void remove (const list&); - void replace (uint32_t time_index, jack_nframes_t start, jack_nframes_t end); + void replace (uint32_t time_index, nframes_t start, nframes_t end); void clear_regions(); void clear_tracks (); void clear_time(); void clear_lines (); void clear_playlists (); - void clear_redirects (); void clear_points (); 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&);