#ifndef TRAINLISTDIALOG_H_
#define TRAINLISTDIALOG_H_
+#include <sigc++/trackable.h>
#include <msp/gltk/dialog.h>
#include <msp/gltk/list.h>
#include <msp/gltk/listdata.h>
class Engineer;
-class TrainListDialog: public Msp::GLtk::Dialog
+class TrainListDialog: public Msp::GLtk::Dialog, 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 &);
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 &);
};
#endif