#ifndef LIBR2C2_LAYOUT_H_
#define LIBR2C2_LAYOUT_H_
#include <set>
#include <sigc++/sigc++.h>
#ifndef LIBR2C2_LAYOUT_H_
#define LIBR2C2_LAYOUT_H_
#include <set>
#include <sigc++/sigc++.h>
void track(unsigned);
void track(ArticleNumber);
void train(unsigned, unsigned, const std::string &);
void train(ArticleNumber, unsigned, const std::string &);
void track(unsigned);
void track(ArticleNumber);
void train(unsigned, unsigned, const std::string &);
void train(ArticleNumber, unsigned, const std::string &);
sigc::signal<void, Track &> signal_track_added;
sigc::signal<void, Track &> signal_track_removed;
sigc::signal<void, Track &> signal_track_added;
sigc::signal<void, Track &> signal_track_removed;
sigc::signal<void, Route &> signal_route_added;
sigc::signal<void, Route &> signal_route_removed;
sigc::signal<void, Zone &> signal_zone_added;
sigc::signal<void, Route &> signal_route_added;
sigc::signal<void, Route &> signal_route_removed;
sigc::signal<void, Zone &> signal_zone_added;
sigc::signal<void, Vehicle &> signal_vehicle_added;
sigc::signal<void, Vehicle &> signal_vehicle_removed;
sigc::signal<void, Block &, Train *> signal_block_reserved;
sigc::signal<void, Vehicle &> signal_vehicle_added;
sigc::signal<void, Vehicle &> signal_vehicle_removed;
sigc::signal<void, Block &, Train *> signal_block_reserved;