summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-01-23 21:45:05 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-01-23 21:45:05 +0000
commit3cfa32d6c23b360f1772aaff0753972722dcc539 (patch)
treea23c845f055ec51605cdea33112db5e621be7f74 /gtk2_ardour/editor_selection.cc
parentd38944becdac0deec9cd4344efbc6b531db4161d (diff)
a variety of bits and pieces for selection ops
git-svn-id: svn://localhost/ardour2/trunk@1375 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_selection.cc')
-rw-r--r--gtk2_ardour/editor_selection.cc67
1 files changed, 67 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 0fcd83c58e..80f8ca347c 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -23,6 +23,7 @@
#include <ardour/route_group.h>
#include "editor.h"
+#include "actions.h"
#include "audio_time_axis.h"
#include "audio_region_view.h"
#include "audio_streamview.h"
@@ -597,3 +598,69 @@ Editor::set_selected_regionview_from_map_event (GdkEventAny* ev, StreamView* sv,
return true;
}
+void
+Editor::track_selection_changed ()
+{
+ switch (selection->tracks.size()){
+ case 0:
+ break;
+ default:
+ set_selected_mixer_strip (*(selection->tracks.front()));
+ break;
+ }
+
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->set_selected (false);
+ if (mouse_mode == MouseRange) {
+ (*i)->hide_selection ();
+ }
+ }
+
+ for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
+ (*i)->set_selected (true);
+ if (mouse_mode == MouseRange) {
+ (*i)->show_selection (selection->time);
+ }
+ }
+}
+
+void
+Editor::time_selection_changed ()
+{
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->hide_selection ();
+ }
+
+ if (selection->tracks.empty()) {
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->show_selection (selection->time);
+ }
+ } else {
+ for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
+ (*i)->show_selection (selection->time);
+ }
+ }
+
+ if (selection->time.empty()) {
+ ActionManager::set_sensitive (ActionManager::time_selection_sensitive_actions, false);
+ } else {
+ ActionManager::set_sensitive (ActionManager::time_selection_sensitive_actions, true);
+ }
+}
+
+void
+Editor::region_selection_changed ()
+{
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->set_selected_regionviews (selection->regions);
+ }
+}
+
+void
+Editor::point_selection_changed ()
+{
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->set_selected_points (selection->points);
+ }
+}
+