#include <msp/gl/light.h>
#include <msp/gl/lighting.h>
#include <msp/gl/pipeline.h>
-#include <msp/gltk/resources.h>
-#include <msp/gltk/root.h>
+#include <msp/input/keyboard.h>
+#include <msp/input/mouse.h>
#include "libr2c2/catalogue.h"
-#include "libr2c2/driver.h"
#include "libr2c2/train.h"
#include "3d/layout.h"
#include "3d/overlay.h"
#include "3d/view.h"
#include "network/server.h"
#include "options.h"
-
-class MainWindow;
-class DynamicDialog;
+#include "userinterface.h"
class Engineer: public Msp::RegisteredApplication<Engineer>
{
Msp::Graphics::SimpleGLWindow window;
Msp::Input::Keyboard keyboard;
Msp::Input::Mouse mouse;
- Msp::GLtk::Resources ui_res;
- Msp::GLtk::Root *root;
- Msp::GLtk::Arrangement *root_arrangement;
- bool import_active;
R2C2::Catalogue catalogue;
R2C2::Layout layout;
std::map<R2C2::Train *, Msp::GL::Color> train_colors;
R2C2::View3D main_view;
+ UserInterface ui;
- MainWindow *main_wnd;
std::list<R2C2::Train *> new_trains;
- std::list<DynamicDialog *> dyn_dialogs;
- Msp::Time::TimeStamp status_timeout;
R2C2::Vector pointer;
std::list<R2C2::TrackChain3D *> emergencies;
Msp::Time::TimeStamp emergency_blink_timeout;
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 R2C2::Catalogue &get_catalogue() const { return catalogue; }
R2C2::Layout &get_layout() { return layout; }
R2C2::Layout3D &get_layout_3d() { return layout_3d; }
R2C2::View3D &get_main_view() { return main_view; }
- void set_status(const std::string &);
- void add_dynamic_dialog(DynamicDialog &);
- void remove_dynamic_dialog(DynamicDialog &);
+ UserInterface &get_user_interface() { return ui; }
int main();
void quit() { exit(0); }
private:
R2C2::Object *pick_object(const R2C2::Vector &);
void emergency(R2C2::Block *, const std::string &);
void halt_event(bool);
- void locomotive_detected(const R2C2::Driver::DetectedLocomotive &);
- void import_finished(int);
void train_added(R2C2::Train &);
void process_new_train(R2C2::Train &);
virtual void sighandler(int);