Files
Work/imagelst/FTREE.BAK
2024-08-07 09:16:27 -04:00

55 lines
2.1 KiB
Plaintext

#ifndef _IMAGELIST_FOLDERTREE_HPP_
#define _IMAGELIST_FOLDERTREE_HPP_
#ifndef _COMMON_CALLBACK_HPP_
#include <common/callback.hpp>
#endif
#ifndef _COMMON_RGBCOLOR_HPP_
#include <common/rgbcolor.hpp>
#endif
#ifndef _COMMON_CALLBACKPOINTER_HPP_
#include <common/cbptr.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
#ifndef _IMAGELIST_TREEVIEW_HPP_
#include <imagelst/treeview.hpp>
#endif
#ifndef _IMAGELIST_IMAGELIST_HPP_
#include <imagelst/imagelst.hpp>
#endif
class TreeViewMessageHeader;
class TreeViewDisplayInfo;
class Rect;
class FolderTree : public TreeView, public ImageList
{
public:
enum{FolderOpen=0,FolderClosed=2};
enum HandlerType{SelChangedHandler,SelChangingHandler,ItemExpandingHandler,ItemExpandedHandler,BeginDragHandler};
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 TreeViewMessageHeader &treeViewMessageHeader);
private:
void callHandler(HandlerType handlerType,CallbackData &someCallbackData);
void initHandlers(void);
Block<CallbackPointer> mEventHandlers;
};
#endif