drp_type = dynamic_cast<GLtk::Dropdown *>(get_item(widgets, "drp_type"));
lbl_target = dynamic_cast<GLtk::Label *>(get_item(widgets, "lbl_target"));
ent_time = dynamic_cast<GLtk::Entry *>(get_item(widgets, "ent_time"));
+ drp_direction = dynamic_cast<GLtk::Dropdown *>(get_item(widgets, "drp_direction"));
dynamic_cast<GLtk::Button *>(get_item(widgets, "btn_pick"))->signal_clicked.connect(sigc::mem_fun(this, &TimetablePanel::pick_clicked));
dynamic_cast<GLtk::Button *>(get_item(widgets, "btn_insert"))->signal_clicked.connect(sigc::mem_fun(this, &TimetablePanel::insert_clicked));
row.type = static_cast<Timetable::RowType>(drp_type->get_selected_index()+1);
row.target = target;
+ row.direction = static_cast<TrackChain::Direction>(drp_direction->get_selected_index());
Regex r_time("([01]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?");
RegMatch m = r_time.match(ent_time->get_text());
if(row)
{
drp_type->set_selected_index(row->type-1);
- if(row->target)
- lbl_target->set_text(row->target->get_name());
+ target = row->target;
+ if(target)
+ lbl_target->set_text(target->get_name());
+ drp_direction->set_selected_index(row->direction);
ent_time->set_text(format_time(row->time));
}
}
{
case Timetable::ARRIVE: type = "Arrive at "; break;
case Timetable::DEPART: type = "Depart from "; break;
+ case Timetable::THROUGH: type = "Go through "; break;
+ }
+
+ string dir;
+ switch(row->direction)
+ {
+ case TrackChain::UP: dir = " up"; break;
+ case TrackChain::DOWN: dir = " down"; break;
+ default:;
}
- add(*new GLtk::Label(type+row->target->get_name()));
+
+ add(*new GLtk::Label(type+row->target->get_name()+dir));
}
else
add(*new GLtk::Label);