X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=inline;f=source%2Fdesigner%2Fselection.h;h=479f5af0b3e2d90226debf1603ae960ec6dee588;hb=1ff06c5bc46a677fa389ef86c6b26664368f1653;hp=1c0d267f1618044271f7672c967c61d8cb118db6;hpb=1d735b80482317fd930eb47ca255ab9f1f120a7d;p=r2c2.git diff --git a/source/designer/selection.h b/source/designer/selection.h index 1c0d267..479f5af 100644 --- a/source/designer/selection.h +++ b/source/designer/selection.h @@ -1,3 +1,10 @@ +/* $Id$ + +This file is part of R²C² +Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + #ifndef SELECTION_H_ #define SELECTION_H_ @@ -7,21 +14,34 @@ class Selection { -private: - std::set tracks; - public: sigc::signal signal_changed; - const std::set &get_tracks() const { return tracks; } - Marklin::Track *get_track() const; +private: + std::set tracks; + +public: + const std::set &get_tracks() const { return tracks; } + R2C2::Track *get_track() const; unsigned size() const { return tracks.size(); } + void clear(); - void add_track(Marklin::Track *); - void remove_track(Marklin::Track *); - void toggle_track(Marklin::Track *); + + template + 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