diff options
author | Mateusz Kaduk <mateusz.kaduk@gmail.com> | 2004-12-28 11:29:01 +0000 |
---|---|---|
committer | Mateusz Kaduk <mateusz.kaduk@gmail.com> | 2004-12-28 11:29:01 +0000 |
commit | 51777892f80d950757a27591dca861cc41f7a8fa (patch) | |
tree | 796fc0d7dc2c8c36ea0dfb3d009d8b83884e7772 /src/gui/stats.cpp | |
parent | f8a90f4964ad694e1d6166f82b51897629df487c (diff) | |
download | mana-51777892f80d950757a27591dca861cc41f7a8fa.tar.gz mana-51777892f80d950757a27591dca861cc41f7a8fa.tar.bz2 mana-51777892f80d950757a27591dca861cc41f7a8fa.tar.xz mana-51777892f80d950757a27591dca861cc41f7a8fa.zip |
Added new gui for stats window
Diffstat (limited to 'src/gui/stats.cpp')
-rw-r--r-- | src/gui/stats.cpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/gui/stats.cpp b/src/gui/stats.cpp new file mode 100644 index 00000000..3a1a206f --- /dev/null +++ b/src/gui/stats.cpp @@ -0,0 +1,87 @@ +#include "stats_window.h" + +/* + * Constructor + */ +StatsWindow::StatsWindow(gcn::Container *parent) + : Window(parent, "Stats") +{ + stats_str[0] << "Strenght: " << char_info->STR; + stats_str[1] << "Agility: " << char_info->AGI; + stats_str[2] << "Vitality: " << char_info->VIT; + stats_str[3] << "Inteligence: " << char_info->INT; + stats_str[4] << "Dexternity: " << char_info->DEX; + stats_str[5] << "Luck: " << char_info->LUK; + + /* New labels */ + for(int i=0; i<5;i++) + statsLabel[i] = new gcn::Label(stats_str[i]); + + /* New buttons */ + for(i=0; i<5;i++) + statsButton[i] = new Button("+"); + + /* Set position */ + for(i=0;i<5;i++) { + statsLabel[i]->setPosition(10,(i*22)+10); + statsButton[i]->setPosition(170,(i*22)+10); + } + + /* Set button events Id */ + statsButton[0]->setEventId("STR"); + statsButton[1]->setEventId("AGI"); + statsButton[2]->setEventId("VIT"); + statsButton[3]->setEventId("INT"); + statsButton[4]->setEventId("DEX"); + statsButton[5]->setEventId("LUK"); + + /* Assemble */ + for(i=0; i<5; i++) { + add(statsLabel[i]); + add(statsButton[i]); + } + + setSize(200,150); + setLocationRelativeTo(getParent()); +} + +/* + * Destructor + */ +StatsWindow::~StatsWindow() { + for(int i=0; i<5; i++) { + delete statsStr[i]; + delete statsLabel[i]; + delete statsButton[i]; + } +} + +/* + * Static method for creating singleton objects + */ +StatsWindow * StatsWindow::ptr = NULL; +StatsWindow * StatsWindow::create_statswindow() { + if(ptr == NULL) + ptr = new StatsWindow(guiTop); + else + ptr->setVisible(true); + return ptr; +} + +/* + * Event handling method + */ +void StatsWindow::action(const std::string& eventId) { + if(eventId == "STR") + setVisible(false); + if(eventId == "AGI") + setVisible(false); + if(eventId == "VIT") + setVisible(false); + if(eventId == "INT") + setVisible(false); + if(eventId == "DEX") + setVisible(false); + if(eventId == "LUK") + setVisible(false); +} |