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  bool allowedToUseItems() const;
19 
20  virtual ItemStack getItem (ModelIndex index);
21  virtual size_t getItemCount();
22 
23  virtual void update();
24 
25  void borrowItemFromUs (ModelIndex itemIndex, size_t count);
26 
27  void borrowItemToUs (ModelIndex itemIndex, ItemModel* source, size_t count);
29 
30  void returnItemBorrowedToUs (ModelIndex itemIndex, size_t count);
31 
32  void returnItemBorrowedFromUs (ModelIndex itemIndex, ItemModel* source, size_t count);
33 
35  void transferItems ();
37  void abort();
38 
41  void adjustEncumbrance (float& encumbrance);
42 
43  std::vector<ItemStack> getItemsBorrowedToUs();
44 
45  private:
46  void borrowImpl(const ItemStack& item, std::vector<ItemStack>& out);
47  void unborrowImpl(const ItemStack& item, size_t count, std::vector<ItemStack>& out);
48 
49  std::vector<ItemStack> mItems;
50 
51  std::vector<ItemStack> mBorrowedToUs;
52  std::vector<ItemStack> mBorrowedFromUs;
53 
55  };
56 
57 }
58 
59 #endif
virtual ItemStack getItem(ModelIndex index)
Throws for invalid index or out of range index.
Definition: tradeitemmodel.cpp:23
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:37
A proxy item model can be used to filter or rearrange items from a source model (or even add new item...
Definition: itemmodel.hpp:88
A single item stack managed by an item model.
Definition: itemmodel.hpp:12
void abort()
Aborts trade.
Definition: tradeitemmodel.cpp:116
std::vector< ItemStack > mItems
Definition: tradeitemmodel.hpp:49
std::vector< ItemStack > mBorrowedToUs
Definition: tradeitemmodel.hpp:51
void transferItems()
Permanently transfers items that were borrowed to us from another model to this model.
Definition: tradeitemmodel.cpp:127
virtual void update()
Rebuild the item model, this will invalidate existing model indices.
Definition: tradeitemmodel.cpp:153
MWWorld::Ptr mMerchant
Definition: tradeitemmodel.hpp:54
bool allowedToUseItems() const
Is the player allowed to use items from this item model? (default true)
Definition: tradeitemmodel.cpp:18
void borrowItemToUs(ModelIndex itemIndex, ItemModel *source, size_t count)
Definition: tradeitemmodel.cpp:82
virtual size_t getItemCount()
Definition: tradeitemmodel.cpp:32
void returnItemBorrowedToUs(ModelIndex itemIndex, size_t count)
Definition: tradeitemmodel.cpp:89
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:54
void adjustEncumbrance(float &encumbrance)
Definition: tradeitemmodel.cpp:101
void returnItemBorrowedFromUs(ModelIndex itemIndex, ItemModel *source, size_t count)
Definition: tradeitemmodel.cpp:95
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
void borrowItemFromUs(ModelIndex itemIndex, size_t count)
Definition: tradeitemmodel.cpp:75
std::vector< ItemStack > getItemsBorrowedToUs()
Definition: tradeitemmodel.cpp:122
std::vector< ItemStack > mBorrowedFromUs
Definition: tradeitemmodel.hpp:52