class Block;
class Layout;
+class TrackAttachment;
class Track: public Object, public sigc::trackable
{
void turnout_id(unsigned);
};
+ typedef std::list<TrackAttachment *> AttachmentList;
+
sigc::signal<void, unsigned, Track *> signal_link_changed;
sigc::signal<void, unsigned> signal_path_changing;
sigc::signal<void, unsigned> signal_path_changed;
std::vector<Track *> links;
unsigned active_path;
bool path_changing;
+ AttachmentList attachments;
Track(const Track &);
Track &operator=(const Track &);
using Object::break_link;
virtual bool break_link(unsigned);
+ void add_attachment(TrackAttachment &);
+ void remove_attachment(TrackAttachment &);
+ const AttachmentList &get_attachments() const { return attachments; }
+ AttachmentList get_attachments_ordered(unsigned) const;
+
void save(std::list<Msp::DataFile::Statement> &) const;
private:
void turnout_event(unsigned, unsigned);