]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/engineer.h
Convert engineer to use mspgbase instead of SDL
[r2c2.git] / source / engineer / engineer.h
index 112e52f3a0209277cdda571d158abc235e147c6c..1575c0c31e381ad1d18a0a9727b2727746fff3db 100644 (file)
@@ -2,15 +2,19 @@
 #define ENGINEER_H_
 
 #include <msp/core/application.h>
+#include <msp/gbase/glcontext.h>
 #include <msp/gl/font.h>
 #include <msp/gltk/resources.h>
+#include <msp/gltk/root.h>
 #include "libmarklin/catalogue.h"
 #include "libmarklin/control.h"
 #include "libmarklin/trafficmanager.h"
+#include "libmarklin/train.h"
 #include "3d/layout.h"
 
 class MainPanel;
 class TrainPanel;
+class TrainProperties;
 
 class Engineer: public Msp::Application
 {
@@ -19,21 +23,19 @@ public:
        ~Engineer();
 
        Marklin::Control &get_control()    { return control; }
-       unsigned get_screen_width() const  { return screen_w; }
-       unsigned get_screen_height() const { return screen_h; }
-       unsigned get_font_size() const     { return font_size; }
-       Msp::GL::Font &get_font()          { return *font; }
-       void     add_train(unsigned);
+       Marklin::Train   *add_train(unsigned);
        int      main();
        void     quit() { exit(0); }
 private:
        typedef std::list<TrainPanel *> TrainPanelSeq;
 
+       Msp::Graphics::Display   *dpy;
+       Msp::Graphics::Window    *wnd;
+       Msp::Graphics::GLContext *glc;
+       Msp::GLtk::Root          *root;
        unsigned           screen_w;
        unsigned           screen_h;
-       unsigned           font_size;
        bool               fullscreen;
-       Msp::GL::Font      *font;
        Marklin::Catalogue catalogue;
        Marklin::Layout    layout;
        Marklin::Layout3D  layout_3d;
@@ -43,21 +45,27 @@ private:
        Msp::GLtk::Resources ui_res;
        MainPanel          *main_panel;
        TrainPanelSeq      train_panels;
-       std::string        status_text;
        bool               no_lighting;
        Marklin::TrafficManager *trfc_mgr;
-       Train              *placing_train;
+       Marklin::Train     *placing_train;
+       Marklin::Block     *placing_block;
+       unsigned           placing_entry;
+       bool               simulate;
+       TrainProperties    *train_prop;
+       bool               train_prop_stale;
 
        void tick();
-       void key_press(unsigned, unsigned);
-       void button_press(int, int, unsigned);
-       void button_release(int, int, unsigned);
+       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 view_all();
-       void turnout_route_changed(unsigned);
-       void sensor_state_changed(bool, unsigned);
+       void set_block_color(const Marklin::Block &, const Marklin::Color &);
+       void sensor_event(bool, Marklin::Sensor *);
+       void block_reserved(const Marklin::Block &, const Marklin::Train *);
        void project_3d();
        Marklin::Track3D *pick_track(int, int);
+       void dismiss_train_prop();
 
        static Msp::Application::RegApp<Engineer> reg;
 };