summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYohann Ferreira <bertram@cegetel.net>2005-01-25 22:25:29 +0000
committerYohann Ferreira <bertram@cegetel.net>2005-01-25 22:25:29 +0000
commitadd62901031e1c981d98779536a0ad16ceddf897 (patch)
tree809727a877a6646c6650f28d4df9655282488d1d
parenteb20715f6788956392cb89f94211b5f502237dd0 (diff)
downloadmana-add62901031e1c981d98779536a0ad16ceddf897.tar.gz
mana-add62901031e1c981d98779536a0ad16ceddf897.tar.bz2
mana-add62901031e1c981d98779536a0ad16ceddf897.tar.xz
mana-add62901031e1c981d98779536a0ad16ceddf897.zip
*** empty log message ***
-rw-r--r--src/graphic/graphic.cpp3
-rw-r--r--src/gui/status.cpp24
-rw-r--r--src/gui/status.h9
3 files changed, 33 insertions, 3 deletions
diff --git a/src/graphic/graphic.cpp b/src/graphic/graphic.cpp
index c5bed789..8cd117b9 100644
--- a/src/graphic/graphic.cpp
+++ b/src/graphic/graphic.cpp
@@ -235,7 +235,7 @@ Engine::Engine()
// Create dialogs
statusWindow = new StatusWindow();
- statusWindow->setPosition(screen->w - statusWindow->getWidth() - 10, 10);
+ statusWindow->setPosition(screen->w - statusWindow->getWidth(), 0);
buyDialog = new BuyDialog();
buyDialog->setVisible(false);
@@ -262,7 +262,6 @@ Engine::Engine()
statsWindow = new StatsWindow();
statsWindow->setVisible(false);
-
// Give focus to the chat input
chatInput->requestFocus();
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
*/