]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/trainproperties.h
Maintain a Block pointer in Track
[r2c2.git] / source / engineer / trainproperties.h
index 89b6e94eb7311d427ec22fb60300435eba845828..c75015b08f4b27f8c5b009af0af17aa572352713 100644 (file)
@@ -1,18 +1,39 @@
+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
 #ifndef TRAINPROPERTIES_H_
 #define TRAINPROPERTIES_H_
 
+#include <msp/gltk/dropdown.h>
 #include <msp/gltk/entry.h>
-#include <msp/gltk/panel.h>
 #include <libmarklin/train.h>
+#include "dialog.h"
 
-class TrainProperties: public Msp::GLtk::Panel
+class Engineer;
+
+class TrainProperties: public Dialog
 {
-public:
-       TrainProperties(Msp::GLtk::Resources &, Marklin::Train &);
 private:
-       Marklin::Train &train;
-       Msp::GLtk::Entry *ent_id;
+       Engineer &engineer;
+       Marklin::Train *train;
+       Msp::GLtk::Entry *ent_addr;
+       Msp::GLtk::Dropdown *drp_type;
        Msp::GLtk::Entry *ent_name;
+       Msp::GLtk::Dropdown *drp_priority;
+       Msp::GLtk::List *lst_vehicles;
+       Msp::GLtk::Dropdown *drp_new_vehicle;
+       std::vector<const Marklin::VehicleType *> add_vehicles;
+
+public:
+       TrainProperties(Engineer &, const Msp::GLtk::Resources &, Marklin::Train *);
+private:
+       virtual void on_ok_clicked();
+       void new_vehicle_selected(unsigned, const std::string &);
+       const Marklin::VehicleType &get_vehicle_type(unsigned, bool);
 };
 
 #endif