1 #include <msp/core/maputils.h>
2 #include "network/client.h"
3 #include "trainselector.h"
9 string train_name(NetTrain *const &train)
12 return train->get_name();
14 return "(no train selected)";
17 TrainSelector::TrainSelector(Client &client):
20 Loader::WidgetMap widgets;
21 DataFile::load(*this, "data/remote/trainselector.ui", widgets);
23 drp_trains = dynamic_cast<GLtk::Dropdown *>(get_item(widgets, "drp_trains"));
24 drp_trains->set_data(trains);
25 drp_trains->signal_item_selected.connect(sigc::mem_fun(this, &TrainSelector::train_selected));
27 client.signal_train_added.connect(sigc::mem_fun(this, &TrainSelector::train_added));
30 drp_trains->set_selected_index(0);
31 const map<unsigned, NetTrain *> &ctrains = client.get_trains();
32 for(map<unsigned, NetTrain *>::const_iterator i=ctrains.begin(); i!=ctrains.end(); ++i)
33 trains.append(i->second);
36 void TrainSelector::train_added(NetTrain &train)
38 trains.append(&train);
41 void TrainSelector::train_selected(unsigned index)
43 signal_train_selected.emit(trains.get(index));