summaryrefslogtreecommitdiff
path: root/src/gui/widgets/itemlinkhandler.h
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <bjorn@lindeijer.nl>2024-03-11 21:10:53 +0100
committerThorbjørn Lindeijer <bjorn@lindeijer.nl>2024-03-11 21:10:53 +0100
commit66599a9896e0cf69b58c0a73152aba4750d87af2 (patch)
tree034b6b4a05ea1b4fc87887f48734f630e757e6f7 /src/gui/widgets/itemlinkhandler.h
parent0694d89c4147882561ff44c6d0d80e7414dcb24a (diff)
downloadmana-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.h20
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