#pragma once #ifndef TNZ_ITEMBROWSER_INCLUDED #define TNZ_ITEMBROWSER_INCLUDED #include "tw/tw.h" #undef DVAPI #undef DVVAR #ifdef TWIN_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif class TFilePath; class DVAPI TItemBrowser : public TWidget { class Data; Data *m_data; public: TItemBrowser(TWidget *parent, const TFilePath &rootDir, string name = "ItemBrowser"); ~TItemBrowser(); void setBorder(int dx, int dy); void setItemSize(const TDimension &d); TDimension getItemSize() const; virtual int getItemCount() const = 0; virtual void drawItem( TWidget *w, const TRect &rect, int index, bool selected) const = 0; virtual bool isItemWide(int index) const { return false; }; virtual void loadItems(const TFilePath &rootDir) {} virtual void onSelect(int index) {} void select(int index); void notifyItemCountChange(); void configureNotify(const TDimension &); void update(); virtual void onKey(int key, int index){}; virtual wstring getTooltipString(int) { return wstring(); } virtual string getContextHelpReference(int) { return string(); } }; #endif