diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-05-05 23:48:45 +0200 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-05-05 23:51:09 +0200 |
commit | 3c4661726f9321e91037291fcf628a54b993c4ec (patch) | |
tree | d2024fecd35a0f769a538bebdafd4aa5340f7b6a /src | |
parent | 5a9759680427154f379499cb3268f307bb860c22 (diff) | |
download | mana-3c4661726f9321e91037291fcf628a54b993c4ec.tar.gz mana-3c4661726f9321e91037291fcf628a54b993c4ec.tar.bz2 mana-3c4661726f9321e91037291fcf628a54b993c4ec.tar.xz mana-3c4661726f9321e91037291fcf628a54b993c4ec.zip |
Hide the item popup when the mouse moves on top of it
Makes the popup a lot less annoying. Still sticks around in some cases
when it shouldn't, which seems to be because of missing mouseExited
events from Guichan.
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/itempopup.cpp | 8 | ||||
-rw-r--r-- | src/gui/itempopup.h | 7 | ||||
-rw-r--r-- | src/gui/widgets/popup.h | 14 |
3 files changed, 22 insertions, 7 deletions
diff --git a/src/gui/itempopup.cpp b/src/gui/itempopup.cpp index 2a45a06a..e1822e03 100644 --- a/src/gui/itempopup.cpp +++ b/src/gui/itempopup.cpp @@ -66,6 +66,8 @@ ItemPopup::ItemPopup(): add(mItemEffect); add(mItemWeight); + addMouseListener(this); + loadPopupConfiguration(); } @@ -178,3 +180,9 @@ void ItemPopup::view(int x, int y) setVisible(true); requestMoveToTop(); } + +void ItemPopup::mouseMoved(gcn::MouseEvent &event) +{ + // When the mouse moved on top of the popup, hide it + setVisible(false); +} diff --git a/src/gui/itempopup.h b/src/gui/itempopup.h index 6140e4dd..e4bef371 100644 --- a/src/gui/itempopup.h +++ b/src/gui/itempopup.h @@ -27,12 +27,15 @@ #include "resources/iteminfo.h" +#include <guichan/mouselistener.hpp> + class TextBox; /** * A popup that displays information about an item. */ -class ItemPopup : public Popup +class ItemPopup : public Popup, + public gcn::MouseListener { public: /** @@ -55,6 +58,8 @@ class ItemPopup : public Popup */ void view(int x, int y); + void mouseMoved(gcn::MouseEvent &mouseEvent); + private: gcn::Label *mItemName; TextBox *mItemDesc; diff --git a/src/gui/widgets/popup.h b/src/gui/widgets/popup.h index 895484b0..119ed841 100644 --- a/src/gui/widgets/popup.h +++ b/src/gui/widgets/popup.h @@ -32,12 +32,14 @@ class Skin; class WindowContainer; /** - * A rather reduced down version of the Window class that is particularly suited - * for popup type functionality that doesn't need to be resized or moved around - * by the mouse once created, but only needs to display some simple content, - * like a static message. Popups, in general, shouldn't also need to update - * their content once created, although this is not an explicit requirement to - * use the popup class. + * A light version of the Window class. Particularly suited for popup type + * functionality that doesn't need to be resized or moved around by the mouse + * once created, but only needs to display some simple content, like a static + * message. + * + * Popups, in general, shouldn't also need to update their content once + * created, although this is not an explicit requirement to use the popup + * class. * * \ingroup GUI */ |