OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
tradeitemmodel.hpp
Go to the documentation of this file.
1 #ifndef MWGUI_TRADE_ITEM_MODEL_H
2 #define MWGUI_TRADE_ITEM_MODEL_H
3 
4 #include "itemmodel.hpp"
5 
6 namespace MWGui
7 {
8 
9  class ItemModel;
10 
14  {
15  public:
16  TradeItemModel (ItemModel* sourceModel, const MWWorld::Ptr& merchant);
17 
18  virtual ItemStack getItem (ModelIndex index);
19  virtual size_t getItemCount();
20 
21  virtual void update();
22 
23  void borrowItemFromUs (ModelIndex itemIndex, size_t count);
24 
25  void borrowItemToUs (ModelIndex itemIndex, ItemModel* source, size_t count);
27 
28  void returnItemBorrowedToUs (ModelIndex itemIndex, size_t count);
29 
30  void returnItemBorrowedFromUs (ModelIndex itemIndex, ItemModel* source, size_t count);
31 
33  void transferItems ();
35  void abort();
36 
39  void adjustEncumbrance (float& encumbrance);
40 
41  std::vector<ItemStack> getItemsBorrowedToUs();
42 
43  private:
44  void borrowImpl(const ItemStack& item, std::vector<ItemStack>& out);
45  void unborrowImpl(const ItemStack& item, size_t count, std::vector<ItemStack>& out);
46 
47  std::vector<ItemStack> mItems;
48 
49  std::vector<ItemStack> mBorrowedToUs;
50  std::vector<ItemStack> mBorrowedFromUs;
51 
53  };
54 
55 }
56 
57 #endif
virtual ItemStack getItem(ModelIndex index)
Throws for invalid index or out of range index.
Definition: tradeitemmodel.cpp:18
The base class that all item models should derive from.
Definition: itemmodel.hpp:43
An item model that allows 'borrowing' items from another item model. Used for previewing barter offer...
Definition: tradeitemmodel.hpp:13
void borrowImpl(const ItemStack &item, std::vector< ItemStack > &out)
Definition: tradeitemmodel.cpp:32
A proxy item model can be used to filter or rearrange items from a source model (or even add new item...
Definition: itemmodel.hpp:83
A single item stack managed by an item model.
Definition: itemmodel.hpp:12
void abort()
Aborts trade.
Definition: tradeitemmodel.cpp:111
std::vector< ItemStack > mItems
Definition: tradeitemmodel.hpp:47
std::vector< ItemStack > mBorrowedToUs
Definition: tradeitemmodel.hpp:49
void transferItems()
Permanently transfers items that were borrowed to us from another model to this model.
Definition: tradeitemmodel.cpp:122
virtual void update()
Rebuild the item model, this will invalidate existing model indices.
Definition: tradeitemmodel.cpp:148
MWWorld::Ptr mMerchant
Definition: tradeitemmodel.hpp:52
void borrowItemToUs(ModelIndex itemIndex, ItemModel *source, size_t count)
Definition: tradeitemmodel.cpp:77
virtual size_t getItemCount()
Definition: tradeitemmodel.cpp:27
void returnItemBorrowedToUs(ModelIndex itemIndex, size_t count)
Definition: tradeitemmodel.cpp:84
TradeItemModel(ItemModel *sourceModel, const MWWorld::Ptr &merchant)
Definition: tradeitemmodel.cpp:12
void unborrowImpl(const ItemStack &item, size_t count, std::vector< ItemStack > &out)
Definition: tradeitemmodel.cpp:49
void adjustEncumbrance(float &encumbrance)
Definition: tradeitemmodel.cpp:96
void returnItemBorrowedFromUs(ModelIndex itemIndex, ItemModel *source, size_t count)
Definition: tradeitemmodel.cpp:90
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
void borrowItemFromUs(ModelIndex itemIndex, size_t count)
Definition: tradeitemmodel.cpp:70
std::vector< ItemStack > getItemsBorrowedToUs()
Definition: tradeitemmodel.cpp:117
std::vector< ItemStack > mBorrowedFromUs
Definition: tradeitemmodel.hpp:50