projects
/
cs356-p1-elevator.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Get the Play/Pause and Quit buttons working nicely
[cs356-p1-elevator.git]
/
elevatorgui.cpp
diff --git
a/elevatorgui.cpp
b/elevatorgui.cpp
index
4ca5fe9
..
8e7ae2a
100644
(file)
--- a/
elevatorgui.cpp
+++ b/
elevatorgui.cpp
@@
-4,7
+4,7
@@
ElevatorGUI::ElevatorGUI (int floors, int elevators)
: Gtk::Window()
, number_of_floors_(floors)
, number_of_elevators_(elevators)
: Gtk::Window()
, number_of_floors_(floors)
, number_of_elevators_(elevators)
- , simulation_status_(
STOPP
ED)
+ , simulation_status_(
PAUS
ED)
/* The ElevatorController */
, ec_(floors, elevators)
/* The ElevatorController */
, ec_(floors, elevators)
@@
-13,9
+13,8
@@
ElevatorGUI::ElevatorGUI (int floors, int elevators)
, timer_()
/* GUI Elements */
, timer_()
/* GUI Elements */
- , table_(floors+
1, elevators+2
)
+ , table_(floors+
3, elevators+1
)
, button_playpause_(Gtk::Stock::MEDIA_PLAY)
, button_playpause_(Gtk::Stock::MEDIA_PLAY)
- , button_stop_(Gtk::Stock::STOP)
, button_quit_(Gtk::Stock::QUIT)
/* Storage for GUI elements for later lookup */
, button_quit_(Gtk::Stock::QUIT)
/* Storage for GUI elements for later lookup */
@@
-149,15
+148,16
@@
ElevatorGUI::ElevatorGUI (int floors, int elevators)
/* Fill in the control buttons */
Gtk::HBox *box = new Gtk::HBox ();
/* Fill in the control buttons */
Gtk::HBox *box = new Gtk::HBox ();
+ /* Tell the Play/Pause button to use the StockID so we can change it's image */
+ button_playpause_.set_use_stock (true);
+
+ /* Signals for control buttons */
button_quit_.signal_clicked().connect (
sigc::mem_fun (*this, &ElevatorGUI::on_quit_button_clicked));
button_quit_.signal_clicked().connect (
sigc::mem_fun (*this, &ElevatorGUI::on_quit_button_clicked));
- button_stop_.signal_clicked().connect (
- sigc::mem_fun (*this, &ElevatorGUI::on_stop_button_clicked));
button_playpause_.signal_clicked().connect (
sigc::mem_fun (*this, &ElevatorGUI::on_playpause_button_clicked));
box->pack_start (button_playpause_);
button_playpause_.signal_clicked().connect (
sigc::mem_fun (*this, &ElevatorGUI::on_playpause_button_clicked));
box->pack_start (button_playpause_);
- box->pack_start (button_stop_);
box->pack_start (button_quit_);
/* Attach the box to the bottom of the GUI */
box->pack_start (button_quit_);
/* Attach the box to the bottom of the GUI */
@@
-178,26
+178,20
@@
void ElevatorGUI::on_quit_button_clicked ()
void ElevatorGUI::on_playpause_button_clicked ()
{
void ElevatorGUI::on_playpause_button_clicked ()
{
- std::string names[] = { "
STOPPED", "
RUNNING", "PAUSED" };
+ std::string names[] = { "RUNNING", "PAUSED" };
std::cout << "Play/Pause pressed with status=" << names[simulation_status_] << std::endl;
switch (simulation_status_)
{
std::cout << "Play/Pause pressed with status=" << names[simulation_status_] << std::endl;
switch (simulation_status_)
{
- case STOPPED:
- simulation_status_ = RUNNING;
-
- // add and start timer
- timer_ = Glib::signal_timeout().connect (
- sigc::mem_fun (*this, &ElevatorGUI::on_timer_tick),
- timer_tick_ms_);
-
- break;
case RUNNING:
simulation_status_= PAUSED;
// stop and remove timer
timer_.disconnect ();
case RUNNING:
simulation_status_= PAUSED;
// stop and remove timer
timer_.disconnect ();
+ // Set the StockID of the button
+ button_playpause_.set_label ("gtk-media-play");
+
break;
case PAUSED:
simulation_status_ = RUNNING;
break;
case PAUSED:
simulation_status_ = RUNNING;
@@
-207,6
+201,9
@@
void ElevatorGUI::on_playpause_button_clicked ()
sigc::mem_fun (*this, &ElevatorGUI::on_timer_tick),
timer_tick_ms_);
sigc::mem_fun (*this, &ElevatorGUI::on_timer_tick),
timer_tick_ms_);
+ // Set the StockID of the button
+ button_playpause_.set_label ("gtk-media-pause");
+
break;
default:
std::cout << "Bad Simulation Status in Play/Pause" << std::endl;
break;
default:
std::cout << "Bad Simulation Status in Play/Pause" << std::endl;
@@
-214,14
+211,6
@@
void ElevatorGUI::on_playpause_button_clicked ()
}
}
}
}
-void ElevatorGUI::on_stop_button_clicked ()
-{
- // FIXME: implement this
- std::cout << "STOP Button Clicked" << std::endl;
-
- simulation_status_ = STOPPED;
-}
-
void ElevatorGUI::on_request_button_toggled (RequestButton *button)
{
// Only send an elevator if we are toggled to on
void ElevatorGUI::on_request_button_toggled (RequestButton *button)
{
// Only send an elevator if we are toggled to on