summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selection.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-11-07 17:05:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-11-07 17:05:46 +0000
commit998771e57d4687c0937fe1c36b294d4f075b6d3c (patch)
treec2b4443cf23dbe71c0c2e60eb3ea47377f2f97ea /gtk2_ardour/selection.cc
parent5cd58a2e8bbc7e3d2face30ad0bf8e307ab395fa (diff)
initial round of work to support new edit point option, and removal of edit cursor
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2605 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/selection.cc')
-rw-r--r--gtk2_ardour/selection.cc52
1 files changed, 51 insertions, 1 deletions
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc
index 1e8874444c..6b2915ac02 100644
--- a/gtk2_ardour/selection.cc
+++ b/gtk2_ardour/selection.cc
@@ -153,6 +153,15 @@ Selection::clear_lines ()
}
void
+Selection::clear_markers ()
+{
+ if (!markers.empty()) {
+ markers.clear ();
+ MarkersChanged();
+ }
+}
+
+void
Selection::toggle (boost::shared_ptr<Redirect> r)
{
RedirectSelection::iterator i;
@@ -624,7 +633,8 @@ Selection::empty ()
lines.empty () &&
time.empty () &&
playlists.empty () &&
- redirects.empty ()
+ redirects.empty () &&
+ markers.empty()
;
}
@@ -731,3 +741,43 @@ Selection::add (vector<AutomationSelectable*>& autos)
PointsChanged ();
}
+
+void
+Selection::set (Marker* m)
+{
+ clear_markers ();
+ add (m);
+}
+
+void
+Selection::toggle (Marker* m)
+{
+ MarkerSelection::iterator i;
+
+ if ((i = find (markers.begin(), markers.end(), m)) == markers.end()) {
+ add (m);
+ } else {
+ remove (m);
+ }
+}
+
+void
+Selection::remove (Marker* m)
+{
+ MarkerSelection::iterator i;
+
+ if ((i = find (markers.begin(), markers.end(), m)) != markers.end()) {
+ markers.erase (i);
+ MarkersChanged();
+ }
+}
+
+
+void
+Selection::add (Marker* m)
+{
+ if (find (markers.begin(), markers.end(), m) == markers.end()) {
+ markers.push_back (m);
+ MarkersChanged();
+ }
+}