diff options
author | Andrei Karas <akaras@inbox.ru> | 2010-03-15 00:01:12 +0200 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2010-03-14 17:32:26 -0600 |
commit | e4f97df13f36c003a0e839e367e84d0d59ccb25f (patch) | |
tree | 29fe4cb6f40a990ed1629e9344e873eca4c76642 /src/gui/ministatus.cpp | |
parent | 0c6be6e5e9acd6f0597a2fcfaf5af9d93975435b (diff) | |
download | mana-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.cpp | 50 |
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); +} + + |