diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-11 21:10:53 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-11 21:10:53 +0100 |
commit | 66599a9896e0cf69b58c0a73152aba4750d87af2 (patch) | |
tree | 034b6b4a05ea1b4fc87887f48734f630e757e6f7 /src/gui/widgets/itemlinkhandler.h | |
parent | 0694d89c4147882561ff44c6d0d80e7414dcb24a (diff) | |
download | mana-66599a9896e0cf69b58c0a73152aba4750d87af2.tar.gz mana-66599a9896e0cf69b58c0a73152aba4750d87af2.tar.bz2 mana-66599a9896e0cf69b58c0a73152aba4750d87af2.tar.xz mana-66599a9896e0cf69b58c0a73152aba4750d87af2.zip |
Implemented ability to open external links in news and chat
* Use ConfirmDialog to confirm the opening of the external link.
* ConfirmDialog now centers on its parent window when provided.
* Reset hovered link when mouse exits the BrowserBox.
Diffstat (limited to 'src/gui/widgets/itemlinkhandler.h')
-rw-r--r-- | src/gui/widgets/itemlinkhandler.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/gui/widgets/itemlinkhandler.h b/src/gui/widgets/itemlinkhandler.h index d0f00b25..3bb0b557 100644 --- a/src/gui/widgets/itemlinkhandler.h +++ b/src/gui/widgets/itemlinkhandler.h @@ -24,18 +24,32 @@ #include "gui/widgets/linkhandler.h" +#include <guichan/actionlistener.hpp> + +#include <memory> + +class ConfirmDialog; class ItemPopup; +class Window; -class ItemLinkHandler : public LinkHandler +class ItemLinkHandler : public LinkHandler, gcn::ActionListener { public: - ItemLinkHandler(); + ItemLinkHandler(Window *parent = nullptr); ~ItemLinkHandler() override; + // LinkHandler interface void handleLink(const std::string &link) override; + // ActionListener interface + void action(const gcn::ActionEvent &actionEvent) override; + private: - ItemPopup *mItemPopup; + std::unique_ptr<ItemPopup> mItemPopup; + ConfirmDialog *mConfirmDialog = nullptr; + + Window *mParent = nullptr; + std::string mLink; }; #endif |