X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ftrack_selection.h;h=d94ec3c8c1773bf39aa1edf6c09014a0704b35a9;hb=6ee23029a338951705c589be6c61ab52099758b6;hp=d39101f981474e680b430d98b7b357863ee5446e;hpb=034db5fb1cc4d71bfa0e1c005733115df68fdefd;p=ardour.git diff --git a/gtk2_ardour/track_selection.h b/gtk2_ardour/track_selection.h index d39101f981..d94ec3c8c1 100644 --- a/gtk2_ardour/track_selection.h +++ b/gtk2_ardour/track_selection.h @@ -21,6 +21,9 @@ #define __ardour_gtk_track_selection_h__ #include "track_view_list.h" +#include "route_ui.h" +#include "audio_time_axis.h" +#include "midi_time_axis.h" class PublicEditor; @@ -29,9 +32,58 @@ class TrackSelection : public TrackViewList public: TrackSelection (PublicEditor const * e) : _editor (e) {} TrackSelection (PublicEditor const *, TrackViewList const &); - + + virtual ~TrackSelection (); + TrackViewList add (TrackViewList const &); + template + void foreach_time_axis (Function f) { + for (iterator i = begin(); i != end(); ++i) { + f (*i); + } + } + + template + void foreach_route_ui (Function f) { + for (iterator i = begin(); i != end(); ++i) { + RouteUI* t = dynamic_cast (*i); + if (t) { + f (t); + } + } + } + + template + void foreach_route_time_axis (Function f) { + for (iterator i = begin(); i != end(); ++i) { + RouteTimeAxisView* t = dynamic_cast (*i); + if (t) { + f (t); + } + } + } + + template + void foreach_audio_time_axis (Function f) { + for (iterator i = begin(); i != end(); ++i) { + AudioTimeAxisView* t = dynamic_cast (*i); + if (t) { + f (t); + } + } + } + + template + void foreach_midi_time_axis (Function f) { + for (iterator i = begin(); i != end(); ++i) { + MidiTimeAxisView* t = dynamic_cast (*i); + if (t) { + f (t); + } + } + } + private: PublicEditor const * _editor; };