diff options
author | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-10-28 15:04:58 +0000 |
---|---|---|
committer | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-10-28 15:04:58 +0000 |
commit | ded755e810ef9ec94c65b0c4282d6419c84e21d0 (patch) | |
tree | 5de12d8c43f73b850fa9726375f744a28f2215a4 /src/gui/trade.h | |
parent | aea08a9368265c6afd6741fa84c97491552bfb84 (diff) | |
download | mana-client-ded755e810ef9ec94c65b0c4282d6419c84e21d0.tar.gz mana-client-ded755e810ef9ec94c65b0c4282d6419c84e21d0.tar.bz2 mana-client-ded755e810ef9ec94c65b0c4282d6419c84e21d0.tar.xz mana-client-ded755e810ef9ec94c65b0c4282d6419c84e21d0.zip |
Fixed display of trade window. Completed trade protocol.
Diffstat (limited to 'src/gui/trade.h')
-rw-r--r-- | src/gui/trade.h | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/src/gui/trade.h b/src/gui/trade.h index 478d2876..b5b0db6a 100644 --- a/src/gui/trade.h +++ b/src/gui/trade.h @@ -24,8 +24,6 @@ #ifndef _TMW_TRADE_H #define _TMW_TRADE_H -#include <memory> - #include <guichan/actionlistener.hpp> #include "window.h" @@ -67,34 +65,14 @@ class TradeWindow : public Window, gcn::ActionListener, SelectionListener void addItem(int id, bool own, int quantity); /** - * Remove a item from the trade window. - */ - void removeItem(int id, bool own); - - /** * Reset both item containers */ void reset(); /** - * Change quantity of an item. - */ - void changeQuantity(int index, bool own, int quantity); - - /** - * Increase quantity of an item. - */ - void increaseQuantity(int index, bool own, int quantity); - - /** - * Set trade Button disabled - */ - void setTradeButton(bool enabled); - - /** * Player received ok message from server */ - void receivedOk(bool own); + void receivedOk(); /** * Send trade packet. @@ -114,9 +92,21 @@ class TradeWindow : public Window, gcn::ActionListener, SelectionListener void action(const gcn::ActionEvent &event); private: - typedef std::auto_ptr<Inventory> InventoryPtr; - InventoryPtr mMyInventory; - InventoryPtr mPartnerInventory; + + enum Status + { + PREPARING, /**< Players are adding items. */ + PROPOSING, /**< Local player is proposing a trade. */ + ACCEPTING, /**< Distant player is proposing a trade. */ + }; + + /** + * Sets the current status of the trade. + */ + void setStatus(Status); + + Inventory *mMyInventory; + Inventory *mPartnerInventory; ItemContainer *mMyItemContainer; ItemContainer *mPartnerItemContainer; @@ -124,11 +114,10 @@ class TradeWindow : public Window, gcn::ActionListener, SelectionListener gcn::Label *mItemNameLabel; gcn::Label *mItemDescriptionLabel; gcn::Label *mMoneyLabel; - gcn::Label *mMoneyLabel2; - gcn::Button *mAddButton, *mOkButton, *mCancelButton, *mTradeButton; - ScrollArea *mMyScroll, *mPartnerScroll; + gcn::Button *mTradeButton; gcn::TextField *mMoneyField; - bool mOkOther, mOkMe; + + Status mStatus; }; extern TradeWindow *tradeWindow; |