diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-05-12 18:39:30 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-05-12 18:39:30 +0300 |
commit | 3198ea5c33e58c71cdd489c32fcc3c864c2fe6e1 (patch) | |
tree | 0a249d5d4a1dc0b2a25af86c7862e5e255bc24d8 /src/gui/widgets/characterdisplay.cpp | |
parent | 92ddb0de073b591a3f0833406a02c063cff43002 (diff) | |
download | plus-3198ea5c33e58c71cdd489c32fcc3c864c2fe6e1.tar.gz plus-3198ea5c33e58c71cdd489c32fcc3c864c2fe6e1.tar.bz2 plus-3198ea5c33e58c71cdd489c32fcc3c864c2fe6e1.tar.xz plus-3198ea5c33e58c71cdd489c32fcc3c864c2fe6e1.zip |
In chat selection dialog show popup with character name.
Diffstat (limited to 'src/gui/widgets/characterdisplay.cpp')
-rw-r--r-- | src/gui/widgets/characterdisplay.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/gui/widgets/characterdisplay.cpp b/src/gui/widgets/characterdisplay.cpp index 23a22fbbb..dba6be286 100644 --- a/src/gui/widgets/characterdisplay.cpp +++ b/src/gui/widgets/characterdisplay.cpp @@ -23,6 +23,7 @@ #include "gui/widgets/characterdisplay.h" #include "gui/charselectdialog.h" +#include "gui/textpopup.h" #include "gui/widgets/label.h" #include "gui/widgets/layouthelper.h" @@ -32,9 +33,12 @@ CharacterDisplay::CharacterDisplay(const Widget2 *const widget, CharSelectDialog *const charSelectDialog) : Container(widget), + gcn::MouseListener(), + gcn::WidgetListener(), mCharacter(nullptr), mPlayerBox(new PlayerBox(nullptr)), - mName(new Label(this, "wwwwwwwwwwwwwwwwwwwwwwww")) + mName(new Label(this, "wwwwwwwwwwwwwwwwwwwwwwww")), + mPopup(new TextPopup) { mPlayerBox->setActionEventId("select"); mPlayerBox->addActionListener(charSelectDialog); @@ -55,6 +59,14 @@ CharacterDisplay::CharacterDisplay(const Widget2 *const widget, else setWidth(80); setHeight(120); + addMouseListener(this); + addWidgetListener(this); +} + +CharacterDisplay::~CharacterDisplay() +{ + delete mPopup; + mPopup = nullptr; } void CharacterDisplay::setCharacter(Net::Character *const character) @@ -84,3 +96,21 @@ void CharacterDisplay::update() distributeResizedEvent(); } + +void CharacterDisplay::widgetHidden(const gcn::Event &event) +{ + mPopup->setVisible(false); +} + +void CharacterDisplay::mouseExited(gcn::MouseEvent &event) +{ + mPopup->setVisible(false); +} + +void CharacterDisplay::mouseMoved(gcn::MouseEvent &event) +{ + int mouseX = 0; + int mouseY = 0; + SDL_GetMouseState(&mouseX, &mouseY); + mPopup->show(mouseX, mouseY, mName->getCaption()); +} |