summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/status.cpp24
-rw-r--r--src/gui/status.h9
2 files changed, 32 insertions, 1 deletions
diff --git a/src/gui/status.cpp b/src/gui/status.cpp
index 40b7d8c4..e5482f09 100644
--- a/src/gui/status.cpp
+++ b/src/gui/status.cpp
@@ -40,8 +40,16 @@ StatusWindow::StatusWindow():
jobExpLabel = new gcn::Label("Job");
statsButton = new Button("Stats");
+ statsButton->setEventId("Stats");
+ statsButton->addActionListener(this);
+
skillsButton = new Button("Skills");
+ skillsButton->setEventId("Skills");
+ skillsButton->addActionListener(this);
+
inventoryButton = new Button("Inventory");
+ inventoryButton->setEventId("Inventory");
+ inventoryButton->addActionListener(this);
hp->setPosition(WIN_BORDER, WIN_BORDER);
sp->setPosition(WIN_BORDER, hp->getY() + hp->getHeight() + CONTROLS_SEPARATOR);
@@ -150,3 +158,19 @@ void StatusWindow::update()
delete[] tempstr;
}
+
+void StatusWindow::action(const std::string& eventId) {
+
+ if (eventId == "Stats") {
+ // Show / Hide the stats dialog
+ statsWindow->setVisible(!statsWindow->isVisible());
+ }
+ if (eventId == "Skills") {
+ // Show / Hide the skills dialog
+ skillDialog->setVisible(!skillDialog->isVisible());
+ }
+ if (eventId == "Inventory") {
+ // Show / Hide the inventory dialog
+ inventoryWindow->setVisible(!inventoryWindow->isVisible());
+ }
+}
diff --git a/src/gui/status.h b/src/gui/status.h
index 4f16ef23..7406f977 100644
--- a/src/gui/status.h
+++ b/src/gui/status.h
@@ -24,6 +24,8 @@
#ifndef _TMW_STATS_H
#define _TMW_STATS_H
+#include <string>
+
#include "window.h"
#include "progressbar.h"
@@ -32,7 +34,7 @@
*
* \ingroup GUI
*/
-class StatusWindow : public Window {
+class StatusWindow : public Window, public gcn::ActionListener {
public:
/**
* Constructor.
@@ -44,6 +46,11 @@ class StatusWindow : public Window {
*/
~StatusWindow();
+ /**
+ * Called when receiving actions from widget.
+ */
+ void action(const std::string& eventId);
+
/**
* Updates this dialog with values from PLAYER_INFO *char_info
*/