X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fselection.h;h=9d49c76d3b924e467f9a60d6efddaade34e341bb;hb=6ba6af3637c299ab00828c49de9151429488cc17;hp=21c5de187f0667ff4c0d82ab30f1093c4ff153c5;hpb=52cbe8d99669f843f8f75c51128e2748584dd03a;p=r2c2.git diff --git a/source/designer/selection.h b/source/designer/selection.h index 21c5de1..9d49c76 100644 --- a/source/designer/selection.h +++ b/source/designer/selection.h @@ -1,3 +1,10 @@ +/* $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_ @@ -10,17 +17,31 @@ class Selection public: sigc::signal signal_changed; +private: + std::set tracks; + +public: const std::set &get_tracks() const { return tracks; } Marklin::Track *get_track() const; unsigned size() const { return tracks.size(); } + void clear(); + + template + 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 tracks; + void select_blocks(); }; #endif