X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Ftrainpanel.h;h=d74ccbf88695e40c960a93c72975f9de31d33b97;hb=1ff06c5bc46a677fa389ef86c6b26664368f1653;hp=5abec3b443e24941160ee525aa91a1f0b0bc0271;hpb=06c100aacb559fbbe7380e15981c4772092c269b;p=r2c2.git diff --git a/source/engineer/trainpanel.h b/source/engineer/trainpanel.h index 5abec3b..d74ccbf 100644 --- a/source/engineer/trainpanel.h +++ b/source/engineer/trainpanel.h @@ -1,27 +1,65 @@ +/* $Id$ + +This file is part of R²C² +Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + #ifndef TRAINPANEL_H_ #define TRAINPANEL_H_ +#include +#include #include #include #include -#include "libmarklin/train.h" +#include +#include "libr2c2/route.h" +#include "libr2c2/train.h" class Engineer; -class TrainPanel: public Msp::GLtk::Panel +class TrainPanel: public Msp::GLtk::Panel, public sigc::trackable { -public: - TrainPanel(Engineer &, const Msp::GLtk::Resources &, Marklin::Train &); private: Engineer &engineer; - Marklin::Train &train; + R2C2::Train &train; + Msp::GLtk::Panel *pnl_basic; + Msp::GLtk::Panel *pnl_extra; + Msp::GLtk::Button *btn_expand; + Msp::GLtk::Label *lbl_addr; Msp::GLtk::Label *lbl_name; Msp::GLtk::HSlider *sld_speed; - Marklin::Locomotive *loco; Msp::GLtk::Label *lbl_speed; + Msp::GLtk::Label *lbl_route; + Msp::GLtk::Label *lbl_status; + Msp::GLtk::Toggle *tgl_forward; + std::map tgl_funcs; + sigc::connection pick_conn; + bool expanded; +public: + TrainPanel(Engineer &, R2C2::Train &); + void expand(bool = true); + +private: + void train_control_changed(const std::string &, float); + void train_function_changed(unsigned, bool); + void train_route_changed(const R2C2::Route *); + void train_status_changed(const std::string &); + void place_clicked(); + void take_clicked(); + void edit_clicked(); + void route_clicked(); + void goto_clicked(); + void timetable_clicked(); + void view_clicked(); + void expand_clicked(); void speed_slider_changed(double); - void loco_speed_changed(unsigned); + void forward_toggled(bool); + void func_toggled(bool, unsigned); + void place(R2C2::Track *, unsigned); + void go_to(R2C2::Track *, unsigned); }; #endif