summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selection.h
diff options
context:
space:
mode:
authorBen Loftis <ben@glw.com>2012-11-26 22:37:34 +0000
committerBen Loftis <ben@glw.com>2012-11-26 22:37:34 +0000
commitb43875dd27f9a16ed277d5f87fb6007c367001c9 (patch)
treec866579755f38ec027ddc8033ec73aa561eaacf7 /gtk2_ardour/selection.h
parentfeec5f9ad100d9282f542372d670c7f612d96023 (diff)
explicitly enforce selection rules to avoid some corner cases and avoid user confusion
git-svn-id: svn://localhost/ardour2/branches/3.0@13549 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/selection.h')
-rw-r--r--gtk2_ardour/selection.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h
index e30ca612ea..73acaaa7c0 100644
--- a/gtk2_ardour/selection.h
+++ b/gtk2_ardour/selection.h
@@ -186,9 +186,22 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList
void replace (uint32_t time_index, framepos_t start, framepos_t end);
+/*
+ * A note about items in an editing Selection:
+ * At a high level, selections can include Tracks, Objects, or Time Ranges
+ * Range and Object selections are mutually exclusive.
+ * Selecting a Range will deselect all Objects, and vice versa.
+ * This is done to avoid confusion over what will happen in an operation such as Delete
+ * Tracks are somewhat orthogonal b/c editing operations don't apply to tracks.
+ * 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
+
+ // these items get cleared wholesale in clear_objects
void clear_regions();
- void clear_tracks ();
- void clear_time();
void clear_lines ();
void clear_playlists ();
void clear_points ();