From 51777892f80d950757a27591dca861cc41f7a8fa Mon Sep 17 00:00:00 2001 From: Mateusz Kaduk Date: Tue, 28 Dec 2004 11:29:01 +0000 Subject: Added new gui for stats window --- src/gui/stats.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/gui/stats.cpp (limited to 'src/gui/stats.cpp') 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); +} -- cgit v1.2.3-70-g09d2