55 lines
2.1 KiB
Plaintext
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
|