]> git.tdb.fi Git - r2c2.git/blobdiff - source/remote/trainpanel.h
Export routes over network
[r2c2.git] / source / remote / trainpanel.h
index 2dcd095b593b403ae37576743be4c136e9a90be2..b969af406d2becef314f48b114823882801d4f3d 100644 (file)
@@ -9,28 +9,45 @@ Distributed under the GPL
 #define TRAINPANEL_H_
 
 #include <gtkmm/checkbutton.h>
-#include <gtkmm/frame.h>
+#include <gtkmm/combobox.h>
+#include <gtkmm/expander.h>
 #include <gtkmm/label.h>
 #include <gtkmm/scale.h>
+#include "network/client.h"
 #include "network/train.h"
 
-class TrainPanel: public Gtk::Frame
+class TrainPanel: public Gtk::Expander
 {
 private:
+       struct RouteRecord: public Gtk::TreeModelColumnRecord
+       {
+               Gtk::TreeModelColumn<Glib::ustring> name;
+
+               RouteRecord();
+       };
+
+       Marklin::Client &client;
        Marklin::NetTrain &train;
        Gtk::Scale *scl_speed;
        Gtk::Label *lbl_status;
+       Gtk::CheckButton *chk_reverse;
+       RouteRecord route_columns;
+       Gtk::ComboBox *cmb_route;
        std::map<unsigned, Gtk::CheckButton *> chk_funcs;
 
 public:
-       TrainPanel(Marklin::NetTrain &);
+       TrainPanel(Marklin::Client &, Marklin::NetTrain &);
 private:
        void name_changed(const std::string &);
        void status_changed(const std::string &);
        void speed_changed(unsigned);
+       void reverse_changed(bool);
        void function_changed(unsigned, bool);
+       void route_changed(const std::string &);
        void ui_speed_changed();
+       void ui_reverse_changed();
        void ui_function_changed(unsigned);
+       void ui_route_changed();
 };
 
 #endif