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