Files
Work/imagelst/TVITEM.HPP
2024-08-07 09:16:27 -04:00

301 lines
6.4 KiB
C++

#ifndef _IMAGELIST_TREEVIEWITEM_HPP_
#define _IMAGELIST_TREEVIEWITEM_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_COMMCTRL_HPP_
#include <common/commctrl.hpp>
#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