first vaguely working version using PresentationInfo
[ardour.git] / gtk2_ardour / selection.h
index 586c2e899753e57e17321110c76d1c6a1216ef1a..c9f5eddb4fd9e07e60b40278be5dd48edb6f1b55 100644 (file)
@@ -107,6 +107,11 @@ 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();
@@ -200,18 +205,18 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList
 
        void clear_all() { clear_time(); clear_tracks(); clear_objects(); }
 
-       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_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));