]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/selection.h
Split the single large toolbar into a few smaller collapsible ones
[r2c2.git] / source / designer / selection.h
index abae6832ccfe2cc75f2777be45bc0be4cc636ba3..a3d8b307c9c7e27dda9804531e711ae9db58bfba 100644 (file)
@@ -1,6 +1,6 @@
 /* $Id$
 
-This file is part of the MSP Märklin suite
+This file is part of R²C²
 Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
@@ -18,18 +18,31 @@ public:
        sigc::signal<void> signal_changed;
 
 private:
-       std::set<Marklin::Track *> tracks;
+       std::set<R2C2::Track *> tracks;
 
 public:
-       const std::set<Marklin::Track *> &get_tracks() const { return tracks; }
-       Marklin::Track *get_track() const;
+       const std::set<R2C2::Track *> &get_tracks() const { return tracks; }
+       R2C2::Track *get_track() const;
        unsigned size() const { return tracks.size(); }
+       bool empty() const { return tracks.empty(); }
+
        void clear();
-       void add_track(Marklin::Track *);
-       void remove_track(Marklin::Track *);
-       void toggle_track(Marklin::Track *);
+
+       template<typename Iter>
+       void replace(Iter begin, Iter end)
+       {
+               tracks.clear();
+               tracks.insert(begin, end);
+               signal_changed.emit();
+       }
+
+       void add_track(R2C2::Track *);
+       void remove_track(R2C2::Track *);
+       void toggle_track(R2C2::Track *);
+
        void select_more();
        void select_linked();
+       void select_blocks();
 };
 
 #endif