#ifndef _IMAGELIST_TREEVIEWITEM_HPP_ #define _IMAGELIST_TREEVIEWITEM_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_COMMCTRL_HPP_ #include #endif class TreeViewItem : private TV_ITEM { public: enum ItemFlags{MaskText=TVIF_TEXT,MaskImage=TVIF_IMAGE,MaskParam=TVIF_PARAM, MaskState=TVIF_STATE,MaskHandle=TVIF_HANDLE,MaskSelectedImage=TVIF_SELECTEDIMAGE, MaskChildren=TVIF_CHILDREN}; enum StateFlags{StateSelected=TVIS_SELECTED,StateCut=TVIS_CUT, StateDropHilited=TVIS_DROPHILITED,StateBold=TVIS_BOLD, StateExpanded=TVIS_EXPANDED,StateExpandedOnce=TVIS_EXPANDEDONCE}; TreeViewItem(void); TreeViewItem(const TreeViewItem &someTreeViewItem); TreeViewItem(const TV_ITEM &someTVITEM); TreeViewItem(UINT maskParam,HTREEITEM itemParam,UINT stateParam,UINT stateMask,LPSTR pszTextParam,DWORD maxTextParam,DWORD imageParam,DWORD selectedImageParam,DWORD childrenParam,DWORD lParam); virtual ~TreeViewItem(); TreeViewItem &operator=(const TreeViewItem &someTreeViewItem); TreeViewItem &operator=(const TV_ITEM &someTVITEM); WORD operator==(const TreeViewItem &someTreeViewItem)const; WORD operator==(const TV_ITEM &someTVITEM)const; operator TV_ITEM&(void); UINT mask(void)const; void mask(UINT mask); HTREEITEM item(void)const; void item(HTREEITEM item); UINT state(void)const; void state(UINT state); UINT stateMask(void)const; void stateMask(UINT stateMask); LPSTR text(void)const; void text(LPSTR pszText); DWORD maxText(void)const; void maxText(DWORD maxText); DWORD image(void)const; void image(DWORD image); DWORD selectedImage(void)const; void selectedImage(DWORD selectedImage); DWORD children(void)const; void children(DWORD children); LPARAM lParam(void)const; void lParam(LPARAM lParam); private: void clearData(void); }; inline TreeViewItem::TreeViewItem(void) { clearData(); } inline TreeViewItem::TreeViewItem(const TreeViewItem &someTreeViewItem) { clearData(); *this=someTreeViewItem; } inline TreeViewItem::TreeViewItem(const TV_ITEM &someTVITEM) { *this=someTVITEM; } inline TreeViewItem::TreeViewItem(UINT maskParam,HTREEITEM itemParam,UINT stateParam,UINT stateMaskParam,LPSTR pszTextParam,DWORD maxTextParam,DWORD imageParam,DWORD selectedImageParam,DWORD childrenParam,DWORD lParamParam) { clearData(); mask(maskParam); item(itemParam); state(stateParam); stateMask(stateMaskParam); text(pszTextParam); maxText(maxTextParam); image(imageParam); selectedImage(selectedImageParam); children(childrenParam); lParam(lParamParam); } inline TreeViewItem::~TreeViewItem() { } inline TreeViewItem::operator TV_ITEM &(void) { return *this; } inline TreeViewItem &TreeViewItem::operator=(const TreeViewItem &someTreeViewItem) { mask(someTreeViewItem.mask()); item(someTreeViewItem.item()); state(someTreeViewItem.state()); stateMask(someTreeViewItem.stateMask()); text(someTreeViewItem.text()); maxText(someTreeViewItem.maxText()); image(someTreeViewItem.image()); selectedImage(someTreeViewItem.selectedImage()); children(someTreeViewItem.children()); lParam(someTreeViewItem.lParam()); return *this; } inline TreeViewItem &TreeViewItem::operator=(const TV_ITEM &someTVITEM) { mask(someTVITEM.mask); item(someTVITEM.hItem); state(someTVITEM.state); stateMask(someTVITEM.stateMask); text(someTVITEM.pszText); maxText(someTVITEM.cchTextMax); image(someTVITEM.iImage); selectedImage(someTVITEM.iSelectedImage); children(someTVITEM.cChildren); lParam(someTVITEM.lParam); return *this; } inline WORD TreeViewItem::operator==(const TreeViewItem &someTreeViewItem)const { return (mask()==someTreeViewItem.mask()&& item()==someTreeViewItem.item()&& state()==someTreeViewItem.state()&& stateMask()==someTreeViewItem.stateMask()&& text()==someTreeViewItem.text()&& maxText()==someTreeViewItem.maxText()&& image()==someTreeViewItem.image()&& selectedImage()==someTreeViewItem.selectedImage()&& children()==someTreeViewItem.children()&& lParam()==someTreeViewItem.lParam()); } inline WORD TreeViewItem::operator==(const TV_ITEM &someTVITEM)const { return (TV_ITEM::mask==someTVITEM.mask&& TV_ITEM::hItem==someTVITEM.hItem&& TV_ITEM::state==someTVITEM.state&& TV_ITEM::stateMask==someTVITEM.stateMask&& TV_ITEM::pszText==someTVITEM.pszText&& TV_ITEM::cchTextMax==someTVITEM.cchTextMax&& TV_ITEM::iImage==someTVITEM.iImage&& TV_ITEM::iSelectedImage==someTVITEM.iSelectedImage&& TV_ITEM::cChildren==someTVITEM.cChildren&& TV_ITEM::lParam==someTVITEM.lParam); } inline void TreeViewItem::clearData(void) { TV_ITEM::mask=0; TV_ITEM::hItem=0; TV_ITEM::state=0; TV_ITEM::stateMask=0; TV_ITEM::pszText=0; TV_ITEM::cchTextMax=0; TV_ITEM::iImage=0; TV_ITEM::iSelectedImage=0; TV_ITEM::cChildren=0; TV_ITEM::lParam=0; } inline UINT TreeViewItem::mask(void)const { return TV_ITEM::mask; } inline void TreeViewItem::mask(UINT mask) { TV_ITEM::mask=mask; } inline HTREEITEM TreeViewItem::item(void)const { return TV_ITEM::hItem; } inline void TreeViewItem::item(HTREEITEM hItem) { TV_ITEM::hItem=hItem; } inline UINT TreeViewItem::state(void)const { return TV_ITEM::state; } inline void TreeViewItem::state(UINT state) { TV_ITEM::state=state; } inline UINT TreeViewItem::stateMask(void)const { return TV_ITEM::stateMask; } inline void TreeViewItem::stateMask(UINT stateMask) { TV_ITEM::stateMask=stateMask; } inline LPSTR TreeViewItem::text(void)const { return TV_ITEM::pszText; } inline void TreeViewItem::text(LPSTR pszText) { TV_ITEM::pszText=pszText; } inline DWORD TreeViewItem::maxText(void)const { return TV_ITEM::cchTextMax; } inline void TreeViewItem::maxText(DWORD maxText) { TV_ITEM::cchTextMax=maxText; } inline DWORD TreeViewItem::image(void)const { return TV_ITEM::iImage; } inline void TreeViewItem::image(DWORD image) { TV_ITEM::iImage=image; } inline DWORD TreeViewItem::selectedImage(void)const { return TV_ITEM::iSelectedImage; } inline void TreeViewItem::selectedImage(DWORD selectedImage) { TV_ITEM::iSelectedImage=selectedImage; } inline DWORD TreeViewItem::children(void)const { return TV_ITEM::cChildren; } inline void TreeViewItem::children(DWORD children) { TV_ITEM::cChildren=children; } inline LPARAM TreeViewItem::lParam(void)const { return TV_ITEM::lParam; } inline void TreeViewItem::lParam(LPARAM lParam) { TV_ITEM::lParam=lParam; } #endif