#include "main.hpp"
+#include "elevatorgui.hpp"
-ElevatorGUI *thegui = NULL;
+static ElevatorGUI *thegui = NULL;
int main (int argc, char *argv[])
{
int floors = 7;
int elevators = 3;
-#define USE_STATIC_FLOORS 1
+ // Start GTK
+ Gtk::Main app(argc, argv);
+
+//#define USE_STATIC_FLOORS
#ifndef USE_STATIC_FLOORS
do
{
- std::cout << "Enter the number of floors to use [2-10]: ";
- std::cin >> floors;
+ Gtk::Dialog d ("Floor Dialog", true, true);
+ Gtk::Label l ("Enter the number of floors to use [2-10]");
+ Gtk::Entry e;
+
+ d.get_vbox()->pack_start (l);
+ d.get_vbox()->pack_start (e);
+ l.show();
+ e.show();
+ d.add_button ("gtk-ok", Gtk::RESPONSE_OK);
+ e.set_activates_default (true);
+ d.set_default_response (Gtk::RESPONSE_OK);
+
+ int result = d.run ();
+ floors = atoi (e.get_text().c_str());
if (floors < 2 || floors > 10)
{
- std::cout << "You entered: " << floors
- << " which is outside the acceptable range." << std::endl;
- std::cout << "Please try again..." << std::endl << std::endl;
+ Gtk::MessageDialog bad_dialog ("The number of floors entered was not within"
+ " the acceptable range");
+ bad_dialog.run ();
}
else
{
do
{
- std::cout << "Enter the number of elevators to use [1-5]: ";
- std::cin >> elevators;
+ Gtk::Dialog d ("Elevator Dialog", true, true);
+ Gtk::Label l ("Enter the number of elevators to use [1-5]");
+ Gtk::Entry e;
+
+ d.get_vbox()->pack_start (l);
+ d.get_vbox()->pack_start (e);
+ l.show();
+ e.show();
+ d.add_button ("gtk-ok", Gtk::RESPONSE_OK);
+ e.set_activates_default (true);
+ d.set_default_response (Gtk::RESPONSE_OK);
+
+ int result = d.run ();
+ elevators = atoi (e.get_text().c_str());
if (elevators < 1 || elevators > 5)
{
- std::cout << "You entered: " << elevators
- << " which is outside the acceptable range." << std::endl;
- std::cout << "Please try again..." << std::endl << std::endl;
+ Gtk::MessageDialog bad_dialog ("The number of elevators entered was not within"
+ " the acceptable range");
+ bad_dialog.run ();
}
else
{
} while (true);
#endif
- // Start GTK
- Gtk::Main app(argc, argv);
-
// Start the GUI
ElevatorGUI eg(floors, elevators);
thegui = ⪚
return 0;
}
+
+void gui_update_position_label (int elevator, float new_position, Direction direction)
+{
+ thegui->gui_update_position_label (elevator, new_position, direction);
+}
+
+void gui_unpress_call_button (int floor, Direction direction)
+{
+ thegui->gui_unpress_call_button (floor, direction);
+}
+
+void gui_unpress_request_button (int elevator, int floor)
+{
+ thegui->gui_unpress_request_button (elevator, floor);
+}
+
+void gui_open_door (int elevator, int floor)
+{
+ thegui->gui_open_door (elevator, floor);
+}
+
+void gui_close_door (int elevator, int floor)
+{
+ thegui->gui_close_door (elevator, floor);
+}
+
/* vim: set ts=4 sts=4 sw=4 noet tw=112: */