summaryrefslogtreecommitdiff
path: root/src/gui/windows/skilldialog.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-09-30 14:03:48 +0300
committerAndrei Karas <akaras@inbox.ru>2013-09-30 14:03:48 +0300
commit25d77892d72d455f8a89372687db45aefbc61cec (patch)
treede03cb1af09eebf6db853a6585b953884bcca3b2 /src/gui/windows/skilldialog.h
parent05c22dd1a69fe90da67188c74a6995ee3747e937 (diff)
downloadplus-25d77892d72d455f8a89372687db45aefbc61cec.tar.gz
plus-25d77892d72d455f8a89372687db45aefbc61cec.tar.bz2
plus-25d77892d72d455f8a89372687db45aefbc61cec.tar.xz
plus-25d77892d72d455f8a89372687db45aefbc61cec.zip
move windows classes to windows directory.
Diffstat (limited to 'src/gui/windows/skilldialog.h')
-rw-r--r--src/gui/windows/skilldialog.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/gui/windows/skilldialog.h b/src/gui/windows/skilldialog.h
new file mode 100644
index 000000000..9715a3bf3
--- /dev/null
+++ b/src/gui/windows/skilldialog.h
@@ -0,0 +1,109 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2004-2009 The Mana World Development Team
+ * Copyright (C) 2009-2010 The Mana Developers
+ * Copyright (C) 2011-2013 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GUI_SKILLDIALOG_H
+#define GUI_SKILLDIALOG_H
+
+#include "gui/widgets/window.h"
+
+#include <guichan/actionlistener.hpp>
+
+const int SKILL_MIN_ID = 200000;
+const unsigned int SKILL_VAR_MIN_ID = 1000000;
+
+class Button;
+class Label;
+class SkillModel;
+class Tab;
+class TabbedArea;
+
+struct SkillInfo;
+
+/**
+ * The skill dialog.
+ *
+ * \ingroup Interface
+ */
+class SkillDialog final : public Window, public gcn::ActionListener
+{
+ public:
+ SkillDialog();
+
+ A_DELETE_COPY(SkillDialog)
+
+ ~SkillDialog();
+
+ /**
+ * Called when receiving actions from widget.
+ */
+ void action(const gcn::ActionEvent &event) override;
+
+ /**
+ * Update the given skill's display
+ */
+ std::string update(const int id);
+
+ /**
+ * Update other parts of the display
+ */
+ void update();
+
+ void clearSkills();
+
+ void loadSkills();
+
+ bool updateSkill(const int id, const int range, const bool modifiable);
+
+ void addSkill(const int id, const int level, const int range,
+ const bool modifiable);
+
+ SkillInfo* getSkill(const int id) const A_WARN_UNUSED;
+
+ SkillInfo* getSkillByItem(const int itemId) const A_WARN_UNUSED;
+
+ bool hasSkills() const A_WARN_UNUSED
+ { return !mSkills.empty(); }
+
+ void widgetResized(const gcn::Event &event) override;
+
+ void useItem(const int itemId) const;
+
+ void updateTabSelection();
+
+ void updateQuest(const int var, const int val);
+
+ void playUpdateEffect(const int id) const;
+
+ private:
+ typedef std::map<int, SkillInfo*> SkillMap;
+ SkillMap mSkills;
+ TabbedArea *mTabs;
+ std::list<Tab*> mDeleteTabs;
+ Label *mPointsLabel;
+ Button *mUseButton;
+ Button *mIncreaseButton;
+ SkillModel *mDefaultModel;
+};
+
+extern SkillDialog *skillDialog;
+
+#endif // GUI_SKILLDIALOG_H