]> git.tdb.fi Git - r2c2.git/blob - source/designer/selection.h
1c0d267f1618044271f7672c967c61d8cb118db6
[r2c2.git] / source / designer / selection.h
1 #ifndef SELECTION_H_
2 #define SELECTION_H_
3
4 #include <set>
5 #include <sigc++/sigc++.h>
6 #include "3d/track.h"
7
8 class Selection
9 {
10 private:
11         std::set<Marklin::Track *> tracks;
12
13 public:
14         sigc::signal<void> signal_changed;
15
16         const std::set<Marklin::Track *> &get_tracks() const { return tracks; }
17         Marklin::Track *get_track() const;
18         unsigned size() const { return tracks.size(); }
19         void clear();
20         void add_track(Marklin::Track *);
21         void remove_track(Marklin::Track *);
22         void toggle_track(Marklin::Track *);
23         void select_more();
24         void select_linked();
25 };
26
27 #endif