+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
#ifndef SELECTION_H_
#define SELECTION_H_
public:
sigc::signal<void> signal_changed;
+private:
+ std::set<Marklin::Track *> tracks;
+
+public:
const std::set<Marklin::Track *> &get_tracks() const { return tracks; }
Marklin::Track *get_track() const;
unsigned size() const { return tracks.size(); }
+
void clear();
+
+ template<typename Iter>
+ void replace(Iter begin, Iter end)
+ {
+ tracks.clear();
+ tracks.insert(begin, end);
+ signal_changed.emit();
+ }
+
void add_track(Marklin::Track *);
void remove_track(Marklin::Track *);
void toggle_track(Marklin::Track *);
+
void select_more();
void select_linked();
-private:
- std::set<Marklin::Track *> tracks;
+ void select_blocks();
};
#endif