5 #include <msp/core/application.h>
6 #include <msp/gl/font.h>
7 #include <msp/time/timestamp.h>
8 #include "libmarklin/catalogue.h"
9 #include "libmarklin/layout.h"
10 #include "3d/layout.h"
18 class Designer: public Msp::Application
21 Designer(int, char **);
22 Marklin::Layout *get_layout() { return layout; }
23 Marklin::Layout3D *get_layout_3d() { return layout_3d; }
24 Msp::GL::Font &get_font() { return *font; }
26 void map_pointer_coords(int, int, float &, float &);
41 Marklin::Catalogue catalogue;
42 Marklin::Layout *layout;
43 Marklin::Layout3D *layout_3d;
44 Marklin::Layout *cat_layout;
45 Marklin::Layout3D *cat_layout_3d;
47 Manipulator *manipulator;
53 Marklin::Point cam_pos;
65 Msp::Time::TimeStamp tooltip_timeout;
66 Msp::Time::TimeStamp last_tick;
69 void key_press(unsigned, unsigned, wchar_t);
70 void key_release(unsigned, unsigned);
71 void button_press(int, int, float, float, unsigned);
72 void pointer_motion(int, int, float, float);
76 Marklin::Track3D *pick_track(int, int);
77 void manipulation_status(const std::string &);
78 void manipulation_done(bool);
79 void measure_changed();
81 void move_tooltip(int, int);
83 void turnout_id_accept();
84 void sensor_id_accept();
87 static Msp::Application::RegApp<Designer> reg;