OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
containeritemmodel.hpp
Go to the documentation of this file.
1 #ifndef MWGUI_CONTAINER_ITEM_MODEL_H
2 #define MWGUI_CONTAINER_ITEM_MODEL_H
3 
4 #include "itemmodel.hpp"
5 
6 namespace MWGui
7 {
8 
12  {
13  public:
14  ContainerItemModel (const std::vector<MWWorld::Ptr>& itemSources, const std::vector<MWWorld::Ptr>& worldItems);
17 
18  ContainerItemModel (const MWWorld::Ptr& source);
19 
20  virtual bool allowedToUseItems() const;
21 
22  virtual bool onDropItem(const MWWorld::Ptr &item, int count);
23  virtual bool onTakeItem(const MWWorld::Ptr &item, int count);
24 
25  virtual ItemStack getItem (ModelIndex index);
26  virtual ModelIndex getIndex (ItemStack item);
27  virtual size_t getItemCount();
28 
29  virtual MWWorld::Ptr copyItem (const ItemStack& item, size_t count, bool setNewOwner=false);
30  virtual void removeItem (const ItemStack& item, size_t count);
31 
32  virtual void update();
33 
34  private:
35  std::vector<MWWorld::Ptr> mItemSources;
36  std::vector<MWWorld::Ptr> mWorldItems;
37 
38  std::vector<ItemStack> mItems;
39  };
40 
41 }
42 
43 #endif
The base class that all item models should derive from.
Definition: itemmodel.hpp:43
std::vector< ItemStack > mItems
Definition: containeritemmodel.hpp:38
The container item model supports multiple item sources, which are needed for making NPCs sell items ...
Definition: containeritemmodel.hpp:11
virtual bool onTakeItem(const MWWorld::Ptr &item, int count)
Definition: containeritemmodel.cpp:222
virtual MWWorld::Ptr copyItem(const ItemStack &item, size_t count, bool setNewOwner=false)
Definition: containeritemmodel.cpp:96
virtual ModelIndex getIndex(ItemStack item)
Returns an invalid index if the item was not found.
Definition: containeritemmodel.cpp:84
virtual void removeItem(const ItemStack &item, size_t count)
Definition: containeritemmodel.cpp:104
virtual size_t getItemCount()
Definition: containeritemmodel.cpp:79
A single item stack managed by an item model.
Definition: itemmodel.hpp:12
std::vector< MWWorld::Ptr > mItemSources
Definition: containeritemmodel.hpp:35
virtual bool allowedToUseItems() const
Is the player allowed to use items from this item model? (default true)
Definition: containeritemmodel.cpp:57
ContainerItemModel(const std::vector< MWWorld::Ptr > &itemSources, const std::vector< MWWorld::Ptr > &worldItems)
Definition: containeritemmodel.cpp:45
virtual void update()
Rebuild the item model, this will invalidate existing model indices.
Definition: containeritemmodel.cpp:140
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
virtual bool onDropItem(const MWWorld::Ptr &item, int count)
Definition: containeritemmodel.cpp:192
std::vector< MWWorld::Ptr > mWorldItems
Definition: containeritemmodel.hpp:36
virtual ItemStack getItem(ModelIndex index)
Throws for invalid index or out of range index.
Definition: containeritemmodel.cpp:70