X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fselection.h;h=c9f5eddb4fd9e07e60b40278be5dd48edb6f1b55;hb=5583929a3491075df4e1862579e8df7318dc7370;hp=3c14eb9a093000ccdf64954beb9e783e9af4c63e;hpb=40e9dae606c034ce078e929421f8ae122dda4efc;p=ardour.git diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h index 3c14eb9a09..c9f5eddb4f 100644 --- a/gtk2_ardour/selection.h +++ b/gtk2_ardour/selection.h @@ -107,13 +107,18 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList void block_tracks_changed (bool); void clear (); + + /** check if all selections are empty + * @param internal_selection also check object internals (e.g midi notes, automation points), when false only check objects. + * @return true if nothing is selected. + */ bool empty (bool internal_selection = false); void dump_region_layers(); bool selected (TimeAxisView*); bool selected (RegionView*); - bool selected (Marker*); + bool selected (ArdourMarker*); bool selected (ControlPoint*); void set (std::list const &); @@ -132,7 +137,7 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList void set (boost::shared_ptr); void set (const std::list >&); void set (ControlPoint *); - void set (Marker*); + void set (ArdourMarker*); void set (const RegionSelection&); void toggle (TimeAxisView*); @@ -148,7 +153,7 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList void toggle (const std::list >&); void toggle (ControlPoint *); void toggle (std::vector const &); - void toggle (Marker*); + void toggle (ArdourMarker*); void add (TimeAxisView*); void add (const TrackViewList&); @@ -163,8 +168,8 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList void add (const std::list >&); void add (ControlPoint *); void add (std::vector const &); - void add (Marker*); - void add (const std::list&); + void add (ArdourMarker*); + void add (const std::list&); void add (const RegionSelection&); void add (const PointSelection&); void remove (TimeAxisView*); @@ -179,7 +184,7 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList void remove (boost::shared_ptr); void remove (const std::list >&); void remove (const std::list&); - void remove (Marker*); + void remove (ArdourMarker*); void remove (ControlPoint *); void remove_regions (TimeAxisView *); @@ -198,18 +203,20 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList * The Track selection isn't affected when ranges or objects are added. */ - void clear_time(); //clears any time selection ( i.e. Range ) - void clear_tracks (); //clears the track header selections - void clear_objects(); //clears the items listed below + void clear_all() { clear_time(); clear_tracks(); clear_objects(); } + + void clear_time(bool with_signal = true); //clears any time selection ( i.e. Range ) + void clear_tracks (bool with_signal = true); //clears the track header selections + void clear_objects(bool with_signal = true); //clears the items listed below // these items get cleared wholesale in clear_objects - void clear_regions(); - void clear_lines (); - void clear_playlists (); - void clear_points (); - void clear_markers (); - void clear_midi_notes (); - void clear_midi_regions (); + void clear_regions(bool with_signal = true); + void clear_lines (bool with_signal = true); + void clear_playlists (bool with_signal = true); + void clear_points (bool with_signal = true); + void clear_markers (bool with_signal = true); + void clear_midi_notes (bool with_signal = true); + void clear_midi_regions (bool with_signal = true); void foreach_region (void (ARDOUR::Region::*method)(void)); void foreach_regionview (void (RegionView::*method)(void)); @@ -219,6 +226,8 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList XMLNode& get_state () const; int set_state (XMLNode const &, int); + std::list > > > > pending_midi_note_selection; + private: PublicEditor const * editor; uint32_t next_time_id;