/* $Id$
This file is part of the MSP Märklin suite
-Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
+Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa
Distributed under the GPL
*/
#include "libmarklin/trafficmanager.h"
#include "libmarklin/train.h"
#include "3d/layout.h"
+#include "network/server.h"
class MainPanel;
class TrainPanel;
Marklin::Layout3D layout_3d;
Marklin::Control control;
Marklin::TrafficManager *trfc_mgr;
+ Marklin::Server *server;
+ Msp::IO::EventDispatcher event_disp;
Marklin::Point cam_pos;
float cam_rot;
MainPanel *main_panel;
std::list<TrainPanel *> train_panels;
- TrainProperties *train_prop;
- bool train_prop_stale;
Marklin::Train *placing_train;
Marklin::Block *placing_block;
unsigned placing_entry;
Engineer(int argc, char **argv);
~Engineer();
+ const Msp::GLtk::Resources &get_ui_resources() const { return ui_res; }
+ Msp::GLtk::Root &get_root() const { return *root; }
const Marklin::Catalogue &get_catalogue() const { return catalogue; }
+ const Marklin::Layout &get_layout() const { return layout; }
Marklin::Control &get_control() { return control; }
- void add_train();
- Marklin::Train *add_train(const Marklin::LocoType &, unsigned);
+ Marklin::TrafficManager &get_traffic_manager() { return *trfc_mgr; }
void place_train(Marklin::Train &);
int main();
void quit() { exit(0); }
private:
void tick();
- void key_press(unsigned, unsigned, wchar_t);
void button_press(int, int, unsigned, unsigned);
void button_release(int, int, unsigned, unsigned);
void pointer_motion(int, int);
void block_reserved(const Marklin::Block &, const Marklin::Train *);
void project_3d();
Marklin::Track3D *pick_track(int, int);
- void dismiss_train_prop();
+ void train_added(Marklin::Train &);
+ virtual void sighandler(int);
static Msp::Application::RegApp<Engineer> reg;
};