229 lines
4.8 KiB
C++
229 lines
4.8 KiB
C++
#ifndef _DIALOG_DIALOGTEMPLATE_HPP_
|
|
#define _DIALOG_DIALOGTEMPLATE_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_RECTANGLE_HPP_
|
|
#include <common/rect.hpp>
|
|
#endif
|
|
#ifndef _COMMON_GLOBALDATA_HPP_
|
|
#include <common/gdata.hpp>
|
|
#endif
|
|
#ifndef _COMMON_BLOCK_HPP_
|
|
#include <common/block.hpp>
|
|
#endif
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
#ifndef _DIALOG_DIALOGITEMTEMPLATE_HPP_
|
|
#include <dialog/dlgitem.hpp>
|
|
#endif
|
|
|
|
class DialogTemplate : private DLGTEMPLATE
|
|
{
|
|
public:
|
|
DialogTemplate(void);
|
|
DialogTemplate(const DialogTemplate &someDialogTemplate);
|
|
~DialogTemplate();
|
|
DialogTemplate &operator=(const DialogTemplate &someDialogTemplate);
|
|
WORD operator==(const DialogTemplate &someDialogTemplate)const;
|
|
operator DLGTEMPLATE *(void);
|
|
DialogTemplate &operator+=(const DialogItemTemplate &someDialogItemTemplate);
|
|
DWORD style(void)const;
|
|
void style(DWORD style);
|
|
DWORD extendedStyle(void)const;
|
|
void extendedStyle(DWORD extendedStyle);
|
|
Rect posRect(void)const;
|
|
void posRect(const Rect &posRect);
|
|
WORD itemCount(void)const;
|
|
String className(void)const;
|
|
void className(const String &className);
|
|
String titleText(void)const;
|
|
void titleText(const String &titleText);
|
|
String typeFace(void)const;
|
|
void typeFace(const String &typeFace);
|
|
WORD pointSize(void)const;
|
|
void pointSize(WORD pointSize);
|
|
private:
|
|
enum{MaxTemplateBytes=16384};
|
|
void itemCount(WORD itemCount);
|
|
BYTE *alignBoundary(BYTE *lpCharByte)const;
|
|
BYTE *copyString(BYTE *lpCharByte,const String &someString)const;
|
|
Block<DialogItemTemplate> mDlgItems;
|
|
GlobalData<BYTE> mItemData;
|
|
WORD mPointSize;
|
|
String mClassName;
|
|
String mTitleText;
|
|
String mTypeFace;
|
|
};
|
|
|
|
inline
|
|
DialogTemplate::DialogTemplate(void)
|
|
{
|
|
style(0);
|
|
extendedStyle(0);
|
|
itemCount(0);
|
|
posRect(Rect(0,0,0,0));
|
|
pointSize(0);
|
|
}
|
|
|
|
inline
|
|
DialogTemplate::DialogTemplate(const DialogTemplate &someDialogTemplate)
|
|
{
|
|
pointSize(0);
|
|
*this=someDialogTemplate;
|
|
}
|
|
|
|
inline
|
|
DialogTemplate::~DialogTemplate()
|
|
{
|
|
}
|
|
|
|
inline
|
|
DialogTemplate &DialogTemplate::operator=(const DialogTemplate &someDialogTemplate)
|
|
{
|
|
style(someDialogTemplate.style());
|
|
extendedStyle(someDialogTemplate.extendedStyle());
|
|
itemCount(someDialogTemplate.itemCount());
|
|
className(someDialogTemplate.className());
|
|
titleText(someDialogTemplate.titleText());
|
|
posRect(someDialogTemplate.posRect());
|
|
pointSize(someDialogTemplate.pointSize());
|
|
typeFace(someDialogTemplate.typeFace());
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
WORD DialogTemplate::operator==(const DialogTemplate &someDialogTemplate)const
|
|
{
|
|
return (style()==someDialogTemplate.style()&&
|
|
extendedStyle()==someDialogTemplate.extendedStyle()&&
|
|
itemCount()==someDialogTemplate.itemCount()&&
|
|
className()==someDialogTemplate.className()&&
|
|
titleText()==someDialogTemplate.titleText()&&
|
|
posRect()==someDialogTemplate.posRect()&&
|
|
pointSize()==someDialogTemplate.pointSize()&&
|
|
typeFace()==someDialogTemplate.typeFace());
|
|
}
|
|
|
|
inline
|
|
DialogTemplate &DialogTemplate::operator+=(const DialogItemTemplate &someDialogItemTemplate)
|
|
{
|
|
mDlgItems.insert(&someDialogItemTemplate);
|
|
itemCount(itemCount()+1);
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
DWORD DialogTemplate::style(void)const
|
|
{
|
|
return DLGTEMPLATE::style;
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::style(DWORD style)
|
|
{
|
|
DLGTEMPLATE::style=style;
|
|
}
|
|
|
|
inline
|
|
DWORD DialogTemplate::extendedStyle(void)const
|
|
{
|
|
return DLGTEMPLATE::dwExtendedStyle;
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::extendedStyle(DWORD extendedStyle)
|
|
{
|
|
DLGTEMPLATE::dwExtendedStyle=extendedStyle;
|
|
}
|
|
|
|
inline
|
|
WORD DialogTemplate::itemCount(void)const
|
|
{
|
|
return DLGTEMPLATE::cdit;
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::itemCount(WORD itemCount)
|
|
{
|
|
DLGTEMPLATE::cdit=itemCount;
|
|
}
|
|
|
|
inline
|
|
Rect DialogTemplate::posRect(void)const
|
|
{
|
|
return Rect(DLGTEMPLATE::x,DLGTEMPLATE::y,DLGTEMPLATE::cx,DLGTEMPLATE::cy);
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::posRect(const Rect &posRect)
|
|
{
|
|
DLGTEMPLATE::x=posRect.left();
|
|
DLGTEMPLATE::y=posRect.top();
|
|
DLGTEMPLATE::cx=posRect.right();
|
|
DLGTEMPLATE::cy=posRect.bottom();
|
|
}
|
|
|
|
inline
|
|
String DialogTemplate::className(void)const
|
|
{
|
|
return mClassName;
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::className(const String &className)
|
|
{
|
|
mClassName=className;
|
|
}
|
|
|
|
inline
|
|
String DialogTemplate::titleText(void)const
|
|
{
|
|
return mTitleText;
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::titleText(const String &titleText)
|
|
{
|
|
mTitleText=titleText;
|
|
}
|
|
|
|
inline
|
|
String DialogTemplate::typeFace(void)const
|
|
{
|
|
return mTypeFace;
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::typeFace(const String &typeFace)
|
|
{
|
|
mTypeFace=typeFace;
|
|
}
|
|
|
|
inline
|
|
WORD DialogTemplate::pointSize(void)const
|
|
{
|
|
return mPointSize;
|
|
}
|
|
|
|
inline
|
|
void DialogTemplate::pointSize(WORD pointSize)
|
|
{
|
|
mPointSize=pointSize;
|
|
}
|
|
|
|
inline
|
|
BYTE *DialogTemplate::alignBoundary(BYTE *lpCharByte)const
|
|
{
|
|
WORD *lpWORD=((WORD*)lpCharByte);
|
|
ULONG align;
|
|
|
|
align=(ULONG)lpWORD;
|
|
align+=3;
|
|
align>>=2;
|
|
align<<=2;
|
|
return (BYTE*)align;
|
|
}
|
|
#endif
|