diff options
Diffstat (limited to 'src/gui/skill.cpp')
-rw-r--r-- | src/gui/skill.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp index 0a3c244a..8c7d6f29 100644 --- a/src/gui/skill.cpp +++ b/src/gui/skill.cpp @@ -25,6 +25,7 @@ #include <guichan/widgets/label.hpp> #include <guichan/widgets/container.hpp> +#include <guichan/widgets/icon.hpp> #include "skill.h" @@ -46,10 +47,10 @@ SkillDialog::SkillDialog(): Window(_("Skills")) { setCloseButton(true); - setDefaultSize(windowContainer->getWidth() - 255, 25, 230, 425); + setDefaultSize(windowContainer->getWidth() - 255, 25, 275, 425); TabbedArea *panel = new TabbedArea(); - panel->setDimension(gcn::Rectangle(5, 5, 225, 420)); + panel->setDimension(gcn::Rectangle(5, 5, 270, 420)); Skill_Tab* tab; @@ -105,9 +106,10 @@ void SkillDialog::update() Skill_Tab::Skill_Tab(std::string type): type(type) { setOpaque(false); - setDimension(gcn::Rectangle(0, 0, 225, 420)); + setDimension(gcn::Rectangle(0, 0, 270, 420)); int skillNum = getSkillNum(); + mSkillIcons.resize(skillNum); mSkillNameLabels.resize(skillNum); mSkillLevelLabels.resize(skillNum); mSkillExpLabels.resize(skillNum); @@ -116,16 +118,20 @@ Skill_Tab::Skill_Tab(std::string type): type(type) // Set the initial positions of the skill information for (int a=0; a < skillNum; a++) { + mSkillIcons.at(a) = getIcon(a); + mSkillIcons.at(a)->setPosition(1, a*32); + add(mSkillIcons.at(a)); + mSkillNameLabels.at(a) = new gcn::Label(""); - mSkillNameLabels.at(a)->setPosition(1, a*32 ); + mSkillNameLabels.at(a)->setPosition(35, a*32 ); add(mSkillNameLabels.at(a)); mSkillProgress.at(a) = new ProgressBar(0.0f, 200, 20, 150, 150, 150); - mSkillProgress.at(a)->setPosition(1, a*32 + 13); + mSkillProgress.at(a)->setPosition(35, a*32 + 13); add(mSkillProgress.at(a)); mSkillExpLabels.at(a) = new gcn::Label(""); - mSkillExpLabels.at(a)->setPosition(10, a*32 + 16); + mSkillExpLabels.at(a)->setPosition(45, a*32 + 16); add(mSkillExpLabels.at(a)); mSkillLevelLabels.at(a) = new gcn::Label(""); @@ -181,6 +187,13 @@ int Skill_Tab::getSkillBegin() else return skillBegin; } +gcn::Icon* Skill_Tab::getIcon(int index) +{ + int skillBegin = getSkillBegin(); + std::string icon = LocalPlayer::getSkillInfo(index + skillBegin).icon; + return new gcn::Icon(icon); +} + void Skill_Tab::updateSkill(int index) { int skillBegin = getSkillBegin(); @@ -198,6 +211,7 @@ void Skill_Tab::updateSkill(int index) mSkillExpLabels.at(index)->setVisible(false); mSkillLevelLabels.at(index)->setVisible(false); mSkillNameLabels.at(index)->setVisible(false); + mSkillIcons.at(index)->setVisible(false); } else { @@ -205,6 +219,7 @@ void Skill_Tab::updateSkill(int index) mSkillExpLabels.at(index)->setVisible(true); mSkillLevelLabels.at(index)->setVisible(true); mSkillNameLabels.at(index)->setVisible(true); + mSkillIcons.at(index)->setVisible(true); std::string skillLevel("Lvl: " + toString(baseLevel)); if (effLevel < baseLevel) { |