#ifndef _IMAGELIST_FOLDERTREE_HPP_ #define _IMAGELIST_FOLDERTREE_HPP_ #ifndef _COMMON_CALLBACK_HPP_ #include #endif #ifndef _COMMON_RGBCOLOR_HPP_ #include #endif #ifndef _COMMON_CALLBACKPOINTER_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _IMAGELIST_TREEVIEW_HPP_ #include #endif #ifndef _IMAGELIST_IMAGELIST_HPP_ #include #endif class TreeViewMessageHeader; class TreeViewDisplayInfo; class TreeViewKeyDown; class Rect; class FolderTree : public TreeView, public ImageList { public: enum{FolderOpen=0,FolderClosed=2}; enum HandlerType{SelChangedHandler,SelChangingHandler,ItemExpandingHandler, ItemExpandedHandler,BeginDragHandler,KeyDownHandler}; FolderTree(GUIWindow &parentWindow,const Rect &winRect=Rect(1,1,320,200),int controlID=101,RGBColor bkColor=RGBColor(GetSysColor(COLOR_WINDOW))); virtual ~FolderTree(); void insertHandler(HandlerType handlerType,PureCallback *lpCallback); void removeHandler(HandlerType handlerType); protected: virtual WORD tvnSelChanging(const TreeViewMessageHeader &treeViewMessageHeader); virtual WORD tvnSelChanged(const TreeViewMessageHeader &treeViewMessageHeader); virtual WORD tvnGetDispInfo(TreeViewDisplayInfo &treeViewDisplayInfo); virtual WORD tvnSetDispInfo(TreeViewDisplayInfo &treeViewDisplayInfo); virtual WORD tvnItemExpanding(const TreeViewMessageHeader &treeViewMessageHeader); virtual WORD tvnItemExpanded(const TreeViewMessageHeader &treeViewMessageHeader); virtual WORD tvnBeginDrag(const TreeViewMessageHeader &TreeViewMessageHeader); virtual WORD tvnBeginRDrag(const TreeViewMessageHeader &TreeViewMessageHeader); virtual WORD tvnDeleteItem(const TreeViewMessageHeader &treeViewMessageHeader); virtual WORD tvnBeginLabelEdit(const TreeViewDisplayInfo &treeViewDisplayInfo); virtual WORD tvnEndLabelEdit(const TreeViewDisplayInfo &treeViewDisplayInfo); virtual WORD tvnKeyDown(const TreeViewKeyDown &treeViewKeyDown); private: void callHandler(HandlerType handlerType,CallbackData &someCallbackData); void initHandlers(void); Block mEventHandlers; }; #endif