summaryrefslogtreecommitdiff
path: root/src/gui/ministatus.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2010-03-15 00:01:12 +0200
committerJared Adams <jaxad0127@gmail.com>2010-03-14 17:32:26 -0600
commite4f97df13f36c003a0e839e367e84d0d59ccb25f (patch)
tree29fe4cb6f40a990ed1629e9344e873eca4c76642 /src/gui/ministatus.cpp
parent0c6be6e5e9acd6f0597a2fcfaf5af9d93975435b (diff)
downloadmana-e4f97df13f36c003a0e839e367e84d0d59ccb25f.tar.gz
mana-e4f97df13f36c003a0e839e367e84d0d59ccb25f.tar.bz2
mana-e4f97df13f36c003a0e839e367e84d0d59ccb25f.tar.xz
mana-e4f97df13f36c003a0e839e367e84d0d59ccb25f.zip
Add tooltips to hp, xp, mp bars.
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
Diffstat (limited to 'src/gui/ministatus.cpp')
-rw-r--r--src/gui/ministatus.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp
index cdefc391..90581f61 100644
--- a/src/gui/ministatus.cpp
+++ b/src/gui/ministatus.cpp
@@ -28,6 +28,7 @@
#include "gui/gui.h"
#include "gui/statuswindow.h"
+#include "gui/textpopup.h"
#include "gui/theme.h"
#include "gui/widgets/progressbar.h"
@@ -35,6 +36,7 @@
#include "net/net.h"
#include "net/playerhandler.h"
+#include "utils/gettext.h"
#include "utils/stringutils.h"
extern volatile int tick_time;
@@ -64,6 +66,11 @@ MiniStatusWindow::MiniStatusWindow():
mXpBar->getY() + mXpBar->getHeight());
setVisible((bool) config.getValue(getPopupName() + "Visible", true));
+
+ mTextPopup = new TextPopup();
+
+ addMouseListener(this);
+
update(StatusWindow::HP);
}
@@ -134,3 +141,46 @@ void MiniStatusWindow::logic()
if (mIcons[i])
mIcons[i]->update(tick_time * 10);
}
+
+void MiniStatusWindow::mouseMoved(gcn::MouseEvent &event)
+{
+ Popup::mouseMoved(event);
+
+ const int x = event.getX();
+ const int y = event.getY();
+
+ if (event.getSource() == mXpBar)
+ {
+ mTextPopup->show(x + getX(), y + getY(),
+ strprintf("%u/%u", player_node->getExp(),
+ player_node->getExpNeeded()),
+ strprintf("%s: %u", _("Need"),
+ player_node->getExpNeeded()
+ - player_node->getExp()));
+ }
+ else if (event.getSource() == mHpBar)
+ {
+ mTextPopup->show(x + getX(), y + getY(),
+ strprintf("%u/%u", player_node->getHp(),
+ player_node->getMaxHp()));
+ }
+ else if (event.getSource() == mMpBar)
+ {
+ mTextPopup->show(x + getX(), y + getY(),
+ strprintf("%u/%u", player_node->getMP(),
+ player_node->getMaxMP()));
+ }
+ else
+ {
+ mTextPopup->setVisible(false);
+ }
+}
+
+void MiniStatusWindow::mouseExited(gcn::MouseEvent &event)
+{
+ Popup::mouseExited(event);
+
+ mTextPopup->setVisible(false);
+}
+
+