Initial Commit
This commit is contained in:
123
common/PUREICON.HPP
Normal file
123
common/PUREICON.HPP
Normal file
@@ -0,0 +1,123 @@
|
||||
#ifndef _COMMON_PUREICON_HPP_
|
||||
#define _COMMON_PUREICON_HPP_
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_PUREDEVICE_HPP_
|
||||
#include <common/purehdc.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_POINT_HPP_
|
||||
#include <common/point.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_ICONINFO_HPP_
|
||||
#include <common/iconinfo.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_STRING_HPP_
|
||||
#include <common/string.hpp>
|
||||
#endif
|
||||
|
||||
class PureIcon : public IconInfo
|
||||
{
|
||||
public:
|
||||
PureIcon(void);
|
||||
PureIcon(HICON hIcon);
|
||||
PureIcon(HINSTANCE hProcessInstance,const String &iconName);
|
||||
PureIcon(const PureIcon &somePureIcon);
|
||||
virtual ~PureIcon();
|
||||
PureIcon &operator=(const PureIcon &somePureIcon);
|
||||
WORD operator==(const PureIcon &somePureIcon)const;
|
||||
WORD drawIcon(PureDevice &somePureDevice,const Point &xyPoint);
|
||||
operator HICON(void)const;
|
||||
WORD isOkay(void)const;
|
||||
private:
|
||||
void getIconInfo(void);
|
||||
void destroyIconInfo(void);
|
||||
HICON mhIcon;
|
||||
};
|
||||
|
||||
inline
|
||||
PureIcon::PureIcon(void)
|
||||
: mhIcon(0)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
PureIcon::PureIcon(HICON hIcon)
|
||||
: mhIcon(hIcon)
|
||||
{
|
||||
getIconInfo();
|
||||
}
|
||||
|
||||
inline
|
||||
PureIcon::PureIcon(HINSTANCE hProcessInstance,const String &iconName)
|
||||
: mhIcon(0)
|
||||
{
|
||||
if(iconName.isNull())return;
|
||||
mhIcon=::LoadIcon(hProcessInstance,iconName);
|
||||
getIconInfo();
|
||||
return;
|
||||
}
|
||||
|
||||
inline
|
||||
PureIcon::PureIcon(const PureIcon &somePureIcon)
|
||||
{
|
||||
*this=somePureIcon;
|
||||
}
|
||||
|
||||
inline
|
||||
PureIcon::~PureIcon()
|
||||
{
|
||||
destroyIconInfo();
|
||||
}
|
||||
|
||||
inline
|
||||
PureIcon &PureIcon::operator=(const PureIcon &somePureIcon)
|
||||
{
|
||||
if(somePureIcon.isOkay())
|
||||
{
|
||||
mhIcon=(HICON)somePureIcon;
|
||||
getIconInfo();
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline
|
||||
WORD PureIcon::operator==(const PureIcon &somePureIcon)const
|
||||
{
|
||||
return (HICON)*this==(HICON)somePureIcon;
|
||||
}
|
||||
|
||||
inline
|
||||
PureIcon::operator HICON(void)const
|
||||
{
|
||||
return mhIcon;
|
||||
}
|
||||
|
||||
inline
|
||||
WORD PureIcon::drawIcon(PureDevice &somePureDevice,const Point &xyPoint)
|
||||
{
|
||||
if(!isOkay())return FALSE;
|
||||
return ::DrawIcon(somePureDevice,xyPoint.x(),xyPoint.y(),mhIcon);
|
||||
}
|
||||
|
||||
inline
|
||||
void PureIcon::getIconInfo(void)
|
||||
{
|
||||
if(!isOkay())return;
|
||||
destroyIconInfo();
|
||||
::GetIconInfo(mhIcon,&((_ICONINFO&)((IconInfo&)*this)));
|
||||
}
|
||||
|
||||
inline
|
||||
void PureIcon::destroyIconInfo(void)
|
||||
{
|
||||
if(maskBitmap()){::DeleteObject(maskBitmap());maskBitmap(0);}
|
||||
if(colorBitmap()){::DeleteObject(colorBitmap());colorBitmap(0);}
|
||||
}
|
||||
|
||||
inline
|
||||
WORD PureIcon::isOkay(void)const
|
||||
{
|
||||
return (mhIcon?TRUE:FALSE);
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user