/* Fill in all of the ElevatorDoors and CallButtons */
for (f_attach=0, f=floors-1; f>=0; --f, ++f_attach)
{
- std::cout << "at floor: " << f << std::endl;
-
/* Create and attach the VBox */
Gtk::VBox *box = new Gtk::VBox ();
table_.attach (*box, 0, 1, f_attach, f_attach+1);
for (e=0; e<elevators; ++e) // run left-to-right
{
- std::cout << "Attaching ElevatorDoor (e=" << e << ", f=" << f << ")" << std::endl;
ElevatorDoor *door = new ElevatorDoor (e, f);
elevator_doors_.push_back (door);
table_.attach (*door, e+1, e+2, f_attach, f_attach+1);
}
}
-void ElevatorGUI::gui_update_position_label (int elevator, float new_position)
+void ElevatorGUI::gui_update_position_label (int elevator, float new_position, Direction direction)
{
- std::ostringstream str;
-
- // Generate the text
- str << std::setiosflags (std::ios_base::showpoint | std::ios_base::fixed)
- << std::setprecision(1) << new_position;
-
// Find the correct label and set it
PositionLabelVector::iterator it;
for (it=position_labels_.begin(); it!=position_labels_.end(); it++)
if ((*it)->getElevatorNumber() == elevator)
- (*it)->set_text (str.str());
+ (*it)->update_position (new_position, direction);
}
void ElevatorGUI::gui_unpress_call_button (int floor, Direction direction)