Files
Work/common/DRAWITEM.HPP
2024-08-07 09:09:36 -04:00

228 lines
4.7 KiB
C++

#ifndef _COMMON_DRAWITEM_HPP_
#define _COMMON_DRAWITEM_HPP_
#ifndef _COMMON_STDLIB_HPP_
#include <common/stdlib.hpp>
#endif
#ifndef _COMMON_COMMCTRL_HPP_
#include <common/commctrl.hpp>
#endif
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_RECTANGLE_HPP_
#include <common/rect.hpp>
#endif
class DrawItem : private DRAWITEMSTRUCT
{
public:
enum ItemAction{Select=ODA_SELECT,DrawEntire=ODA_DRAWENTIRE,Focus=ODA_FOCUS};
enum ControlType{Button=ODT_BUTTON,ComboBox=ODT_COMBOBOX,ListBox=ODT_LISTBOX,ListView=ODT_LISTVIEW,Menu=ODT_MENU,Static=ODT_STATIC,Tab=ODT_TAB};
DrawItem(void);
DrawItem(const DrawItem &someDrawItem);
DrawItem(const DRAWITEMSTRUCT &someDRAWITEMSTRUCT);
virtual ~DrawItem();
DrawItem &operator=(const DrawItem &someDrawItem);
DrawItem &operator=(const DRAWITEMSTRUCT &someDRAWITEMSTRUCT);
WORD operator==(const DrawItem &someDrawItem);
ControlType controlType(void)const;
void controlType(ControlType controlType);
UINT controlID(void)const;
void controlID(UINT controlID);
UINT itemID(void)const;
void itemID(UINT itemID);
ItemAction itemAction(void)const;
void itemAction(ItemAction itemAction);
UINT itemState(void)const;
void itemState(UINT itemState);
HWND hwndItem(void)const;
void hwndItem(HWND hwndItem);
HDC deviceContext(void)const;
void deviceContext(HDC hDeviceContext);
Rect rectItem(void)const;
void rectItem(const Rect &rectItem);
DWORD itemData(void)const;
void itemData(DWORD itemData);
private:
void setZero(void);
};
inline
DrawItem::DrawItem(void)
{
setZero();
}
inline
DrawItem::DrawItem(const DrawItem &someDrawItem)
{
*this=someDrawItem;
}
inline
DrawItem::DrawItem(const DRAWITEMSTRUCT &someDRAWITEMSTRUCT)
{
*this=someDRAWITEMSTRUCT;
}
inline
DrawItem::~DrawItem()
{
}
inline
DrawItem &DrawItem::operator=(const DrawItem &someDrawItem)
{
controlType(someDrawItem.controlType());
controlID(someDrawItem.controlID());
itemID(someDrawItem.itemID());
itemAction(someDrawItem.itemAction());
itemState(someDrawItem.itemState());
hwndItem(someDrawItem.hwndItem());
deviceContext(someDrawItem.deviceContext());
rectItem(someDrawItem.rectItem());
itemData(someDrawItem.itemData());
return *this;
}
inline
DrawItem &DrawItem::operator=(const DRAWITEMSTRUCT &someDRAWITEMSTRUCT)
{
::memcpy(&((DRAWITEMSTRUCT&)*this),&someDRAWITEMSTRUCT,sizeof(DRAWITEMSTRUCT));
return *this;
}
inline
WORD DrawItem::operator==(const DrawItem &someDrawItem)
{
return (controlType()==someDrawItem.controlType()&&
controlID()==someDrawItem.controlID()&&
itemID()==someDrawItem.itemID()&&
itemAction()==someDrawItem.itemAction()&&
itemState()==someDrawItem.itemState()&&
hwndItem()==someDrawItem.hwndItem()&&
deviceContext()==someDrawItem.deviceContext()&&
rectItem()==someDrawItem.rectItem()&&
itemData()==someDrawItem.itemData());
}
inline
DrawItem::ControlType DrawItem::controlType(void)const
{
return (ControlType)DRAWITEMSTRUCT::CtlType;
}
inline
void DrawItem::controlType(ControlType controlType)
{
DRAWITEMSTRUCT::CtlType=(ControlType)controlType;
}
inline
UINT DrawItem::controlID(void)const
{
return DRAWITEMSTRUCT::CtlID;
}
inline
void DrawItem::controlID(UINT controlID)
{
DRAWITEMSTRUCT::CtlID=controlID;
}
inline
UINT DrawItem::itemID(void)const
{
return DRAWITEMSTRUCT::itemID;
}
inline
void DrawItem::itemID(UINT itemID)
{
DRAWITEMSTRUCT::itemID;
}
inline
DrawItem::ItemAction DrawItem::itemAction(void)const
{
return (ItemAction)DRAWITEMSTRUCT::itemAction;
}
inline
void DrawItem::itemAction(ItemAction itemAction)
{
DRAWITEMSTRUCT::itemAction=(UINT)itemAction;
}
inline
UINT DrawItem::itemState(void)const
{
return DRAWITEMSTRUCT::itemState;
}
inline
void DrawItem::itemState(UINT itemState)
{
DRAWITEMSTRUCT::itemState=itemState;
}
inline
HWND DrawItem::hwndItem(void)const
{
return DRAWITEMSTRUCT::hwndItem;
}
inline
void DrawItem::hwndItem(HWND hwndItem)
{
DRAWITEMSTRUCT::hwndItem=hwndItem;
}
inline
HDC DrawItem::deviceContext(void)const
{
return DRAWITEMSTRUCT::hDC;
}
inline
void DrawItem::deviceContext(HDC hDeviceContext)
{
DRAWITEMSTRUCT::hDC=hDeviceContext;
}
inline
Rect DrawItem::rectItem(void)const
{
return DRAWITEMSTRUCT::rcItem;
}
inline
void DrawItem::rectItem(const Rect &rectItem)
{
DRAWITEMSTRUCT::rcItem.left=rectItem.left();
DRAWITEMSTRUCT::rcItem.top=rectItem.top();
DRAWITEMSTRUCT::rcItem.right=rectItem.right();
DRAWITEMSTRUCT::rcItem.bottom=rectItem.bottom();
}
inline
DWORD DrawItem::itemData(void)const
{
return DRAWITEMSTRUCT::itemData;
}
inline
void DrawItem::itemData(DWORD itemData)
{
DRAWITEMSTRUCT::itemData=itemData;
}
inline
void DrawItem::setZero(void)
{
::memset(&(DRAWITEMSTRUCT&)*this,0,sizeof(DRAWITEMSTRUCT));
}
#endif