1 #ifndef TIMETABLEPANEL_H_
2 #define TIMETABLEPANEL_H_
4 #include <msp/gltk/dropdown.h>
5 #include <msp/gltk/entry.h>
6 #include <msp/gltk/label.h>
7 #include <msp/gltk/list.h>
8 #include <msp/gltk/panel.h>
9 #include "libr2c2/timetable.h"
10 #include "libr2c2/train.h"
11 #include "3d/trackchain.h"
15 class TimetablePanel: public Msp::GLtk::Panel, public sigc::trackable
20 R2C2::Timetable *timetable;
21 Msp::GLtk::List *lst_timetable;
22 Msp::GLtk::Dropdown *drp_type;
23 R2C2::TrackChain *target;
24 Msp::GLtk::Label *lbl_target;
25 Msp::GLtk::Entry *ent_time;
26 Msp::GLtk::Dropdown *drp_direction;
27 Msp::GLtk::BasicListData<const R2C2::Timetable::Row *> rows;
30 R2C2::TrackChain *picked_target;
31 R2C2::TrackChain3D *pick_highlight;
35 TimetablePanel(Engineer &, R2C2::Train &);
38 void row_added(unsigned, const R2C2::Timetable::Row &);
39 void row_modified(unsigned, const R2C2::Timetable::Row &);
40 void row_removed(unsigned);
41 R2C2::Timetable::Row create_row();
43 void row_selected(unsigned);
45 void insert_clicked();
46 void delete_clicked();
49 virtual void key_press(unsigned, unsigned);
50 virtual void key_release(unsigned, unsigned);
51 virtual void button_press(int, int, unsigned);
52 virtual void pointer_motion(int, int);