00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef STATUS_H
00023 #define STATUS_H
00024
00025 #include "gui/widgets/window.h"
00026
00027 #include <guichan/actionlistener.hpp>
00028
00029 class LocalPlayer;
00030 class ProgressBar;
00031
00037 class StatusWindow : public Window, public gcn::ActionListener
00038 {
00039 public:
00043 StatusWindow(LocalPlayer *player);
00044
00048 void action(const gcn::ActionEvent &event);
00049
00053 void draw(gcn::Graphics *graphics);
00054
00058 void update();
00059
00060 static void updateHPBar(ProgressBar *bar, bool showMax = false);
00061 static void updateMPBar(ProgressBar *bar, bool showMax = false);
00062 static void updateXPBar(ProgressBar *bar, bool percent = true);
00063 static void updateJobBar(ProgressBar *bar, bool percent = true);
00064
00065 private:
00066 LocalPlayer *mPlayer;
00067
00071 gcn::Label *mLvlLabel, *mJobLvlLabel;
00072 gcn::Label *mGpLabel;
00073 int mCurrency;
00074 gcn::Label *mHpLabel, *mMpLabel, *mXpLabel, *mJobLabel;
00075 ProgressBar *mHpBar, *mMpBar;
00076 ProgressBar *mXpBar, *mJobBar;
00077
00081 gcn::Label *mStatsAttackLabel, *mStatsDefenseLabel;
00082 gcn::Label *mStatsMagicAttackLabel, *mStatsMagicDefenseLabel;
00083 gcn::Label *mStatsAccuracyLabel, *mStatsEvadeLabel;
00084 gcn::Label *mStatsReflexLabel;
00085
00086 gcn::Label *mStatsAttackPoints, *mStatsDefensePoints;
00087 gcn::Label *mStatsMagicAttackPoints, *mStatsMagicDefensePoints;
00088 gcn::Label *mStatsAccuracyPoints, *mStatsEvadePoints;
00089 gcn::Label *mStatsReflexPoints;
00090
00094 gcn::Label *mStatsLabel[6];
00095 gcn::Label *mPointsLabel[6];
00096 gcn::Label *mStatsDisplayLabel[6];
00097 gcn::Label *mRemainingStatsPointsLabel;
00098
00102 gcn::Button *mStatsButton[6];
00103 };
00104
00105 extern StatusWindow *statusWindow;
00106
00107 #endif