]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/trainlistdialog.h
Improve accessory turn-off logic in arducontrol driver
[r2c2.git] / source / engineer / trainlistdialog.h
index 5757c731b4ba96f35b61f2211f5518e7dff2f916..e73a6bbdaeb02478df214bf55a4217fb300de27c 100644 (file)
@@ -2,20 +2,22 @@
 #define TRAINLISTDIALOG_H_
 
 #include <sigc++/trackable.h>
-#include <msp/gltk/dialog.h>
 #include <msp/gltk/list.h>
 #include <msp/gltk/listdata.h>
 #include "libr2c2/layout.h"
+#include "dynamicdialog.h"
 
 class Engineer;
 
-class TrainListDialog: public Msp::GLtk::Dialog, public sigc::trackable
+class TrainListDialog: public DynamicDialog, public sigc::trackable
 {
 private:
        Engineer &engineer;
        R2C2::Layout &layout;
        Msp::GLtk::BasicListData<R2C2::Train *> trains;
        Msp::GLtk::List *lst_trains;
+       Msp::GLtk::BasicListData<const R2C2::Driver::DetectedLocomotive *> detected_locos;
+       Msp::GLtk::List *lst_imported;
 
 public:
        TrainListDialog(Engineer &);
@@ -23,9 +25,15 @@ public:
 private:
        void new_clicked();
        void show_clicked();
+       void tab_toggled(bool, Msp::GLtk::Widget *);
+       void locomotive_detected(const R2C2::Driver::DetectedLocomotive &);
+       void locomotive_gone(const R2C2::Driver::DetectedLocomotive &);
        void train_added(R2C2::Train &);
        void train_removed(R2C2::Train &);
        void train_name_changed(R2C2::Train &);
+
+public:
+       virtual bool save_state(Msp::DataFile::Statement &) const;
 };
 
 #endif