summaryrefslogtreecommitdiff
path: root/src/net/tradehandler.cpp
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2006-02-01 12:24:10 +0000
committerBjörn Steinbrink <B.Steinbrink@gmx.de>2006-02-01 12:24:10 +0000
commit4490b8643f2449da159c9284503eb2c443aa2e9e (patch)
treed859ebeb3ee69b89c471793b76f9df7fe9546137 /src/net/tradehandler.cpp
parent6bff53b318937999a70d775bb6ecea2b18576e0f (diff)
downloadmana-4490b8643f2449da159c9284503eb2c443aa2e9e.tar.gz
mana-4490b8643f2449da159c9284503eb2c443aa2e9e.tar.bz2
mana-4490b8643f2449da159c9284503eb2c443aa2e9e.tar.xz
mana-4490b8643f2449da159c9284503eb2c443aa2e9e.zip
Made the OkDialog and ConfirmDialog classes proxies for their buttons' events. Removed the RequestTradeWindow class, replaced with a plain ConfirmDialog. Fixed a memory leak along the way.
Diffstat (limited to 'src/net/tradehandler.cpp')
-rw-r--r--src/net/tradehandler.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/net/tradehandler.cpp b/src/net/tradehandler.cpp
index 6ed3bab2..5675fab8 100644
--- a/src/net/tradehandler.cpp
+++ b/src/net/tradehandler.cpp
@@ -30,11 +30,22 @@
#include "../localplayer.h"
#include "../gui/chat.h"
-#include "../gui/requesttrade.h"
+#include "../gui/confirm_dialog.h"
#include "../gui/trade.h"
std::string tradePartnerName;
+/**
+ * Listener for request trade dialogs
+ */
+struct RequestTradeListener : public gcn::ActionListener
+{
+ void action(const std::string& eventId)
+ {
+ player_node->tradeReply(eventId == "yes");
+ };
+} requestTradeListener;
+
TradeHandler::TradeHandler()
{
static const Uint16 _messages[] = {
@@ -69,7 +80,10 @@ void TradeHandler::handleMessage(MessageIn *msg)
player_node->setTrading(true);
tradePartnerName = msg->readString(24);
- new RequestTradeDialog(tradePartnerName);
+ ConfirmDialog *dlg = new ConfirmDialog("Request for trade",
+ tradePartnerName +
+ " wants to trade with you, do you accept?");
+ dlg->addActionListener(&requestTradeListener);
break;
case SMSG_TRADE_RESPONSE: