/* client/inventorylistview.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_INVENTORYLISTVIEW_H__ #define __INCLUDED_CLIENT_INVENTORYLISTVIEW_H__ #include "core/info.h" #include "core/inventory.h" #include "ui/listview.h" namespace client { /** * @brief a listview displaying the items in an inventory belonging to a specified infotype */ class InventoryListView : public ui::ListView { public: InventoryListView(ui::Widget *parent = 0); ~InventoryListView(); void set_inventory(core::Inventory *inventory, core::InfoType *infotype); /** * @brief enable or disable the listing of empty items * Items are empty if their amount is 0 */ inline void set_showempty(const bool showempty) { listview_showempty = showempty; } inline const core::Inventory *inventory() const { return listview_inventory; } protected: virtual void draw(); private: bool verify() const; unsigned long listview_timestamp; unsigned long listview_infotimestamp; bool listview_showempty; core::Inventory *listview_inventory; core::InfoType *listview_infotype; }; } // namespace client #endif //__INCLUDED_CLIENT_INVENTORYLISTVIEW_H__