]> git.tdb.fi Git - r2c2.git/blob - source/designer/selection.h
Initial revision
[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 public:
11         typedef std::set<Marklin::Track *> TrackSet;
12
13         sigc::signal<void> signal_changed;
14
15         const TrackSet &get_tracks() const { return tracks; }
16         Marklin::Track *get_track() const;
17         unsigned size() const { return tracks.size(); }
18         void clear();
19         void add_track(Marklin::Track *);
20         void remove_track(Marklin::Track *);
21         void toggle_track(Marklin::Track *);
22         void select_more();
23         void select_linked();
24 private:
25         TrackSet tracks;
26 };
27
28 #endif