OpenMW
|
00001 #ifndef MWGUI_TRADE_ITEM_MODEL_H 00002 #define MWGUI_TRADE_ITEM_MODEL_H 00003 00004 #include "itemmodel.hpp" 00005 00006 namespace MWGui 00007 { 00008 00009 class ItemModel; 00010 00013 class TradeItemModel : public ProxyItemModel 00014 { 00015 public: 00016 TradeItemModel (ItemModel* sourceModel, const MWWorld::Ptr& merchant); 00017 00018 virtual ItemStack getItem (ModelIndex index); 00019 virtual size_t getItemCount(); 00020 00021 virtual void update(); 00022 00023 void borrowItemFromUs (ModelIndex itemIndex, size_t count); 00024 00025 void borrowItemToUs (ModelIndex itemIndex, ItemModel* source, size_t count); 00027 00028 void returnItemBorrowedToUs (ModelIndex itemIndex, size_t count); 00029 00030 void returnItemBorrowedFromUs (ModelIndex itemIndex, ItemModel* source, size_t count); 00031 00033 void transferItems (); 00035 void abort(); 00036 00037 std::vector<ItemStack> getItemsBorrowedToUs(); 00038 00039 private: 00040 void borrowImpl(const ItemStack& item, std::vector<ItemStack>& out); 00041 void unborrowImpl(const ItemStack& item, size_t count, std::vector<ItemStack>& out); 00042 00043 std::vector<ItemStack> mItems; 00044 00045 std::vector<ItemStack> mBorrowedToUs; 00046 std::vector<ItemStack> mBorrowedFromUs; 00047 00048 MWWorld::Ptr mMerchant; 00049 }; 00050 00051 } 00052 00053 #endif