mirror of
https://github.com/holub/mame
synced 2025-04-28 11:11:48 +03:00
88 lines
2.2 KiB
C++
88 lines
2.2 KiB
C++
// Windows/Control/ImageList.h
|
|
|
|
#ifndef __WINDOWS_CONTROL_IMAGE_LIST_H
|
|
#define __WINDOWS_CONTROL_IMAGE_LIST_H
|
|
|
|
#include <commctrl.h>
|
|
|
|
#include "../Defs.h"
|
|
|
|
namespace NWindows {
|
|
namespace NControl {
|
|
|
|
class CImageList
|
|
{
|
|
HIMAGELIST m_Object;
|
|
public:
|
|
operator HIMAGELIST() const {return m_Object; }
|
|
CImageList(): m_Object(NULL) {}
|
|
bool Attach(HIMAGELIST imageList)
|
|
{
|
|
if (imageList == NULL)
|
|
return false;
|
|
m_Object = imageList;
|
|
return true;
|
|
}
|
|
|
|
HIMAGELIST Detach()
|
|
{
|
|
HIMAGELIST imageList = m_Object;
|
|
m_Object = NULL;
|
|
return imageList;
|
|
}
|
|
|
|
bool Create(int width, int height, UINT flags, int initialNumber, int grow)
|
|
{
|
|
HIMAGELIST a = ImageList_Create(width, height, flags,
|
|
initialNumber, grow);
|
|
if (a == NULL)
|
|
return false;
|
|
return Attach(a);
|
|
}
|
|
|
|
bool Destroy() // DeleteImageList() in MFC
|
|
{
|
|
if (m_Object == NULL)
|
|
return false;
|
|
return BOOLToBool(ImageList_Destroy(Detach()));
|
|
}
|
|
|
|
~CImageList()
|
|
{ Destroy(); }
|
|
|
|
int GetImageCount() const
|
|
{ return ImageList_GetImageCount(m_Object); }
|
|
|
|
bool GetImageInfo(int index, IMAGEINFO* imageInfo) const
|
|
{ return BOOLToBool(ImageList_GetImageInfo(m_Object, index, imageInfo)); }
|
|
|
|
int Add(HBITMAP hbmImage, HBITMAP hbmMask = 0)
|
|
{ return ImageList_Add(m_Object, hbmImage, hbmMask); }
|
|
int AddMasked(HBITMAP hbmImage, COLORREF mask)
|
|
{ return ImageList_AddMasked(m_Object, hbmImage, mask); }
|
|
int AddIcon(HICON icon)
|
|
{ return ImageList_AddIcon(m_Object, icon); }
|
|
int Replace(int index, HICON icon)
|
|
{ return ImageList_ReplaceIcon(m_Object, index, icon); }
|
|
|
|
// If index is -1, the function removes all images.
|
|
bool Remove(int index)
|
|
{ return BOOLToBool(ImageList_Remove(m_Object, index)); }
|
|
bool RemoveAll()
|
|
{ return BOOLToBool(ImageList_RemoveAll(m_Object)); }
|
|
|
|
HICON ExtractIcon(int index)
|
|
{ return ImageList_ExtractIcon(NULL, m_Object, index); }
|
|
HICON GetIcon(int index, UINT flags)
|
|
{ return ImageList_GetIcon(m_Object, index, flags); }
|
|
|
|
bool GetIconSize(int &width, int &height) const
|
|
{ return BOOLToBool(ImageList_GetIconSize(m_Object, &width, &height)); }
|
|
bool SetIconSize(int width, int height)
|
|
{ return BOOLToBool(ImageList_SetIconSize(m_Object, width, height)); }
|
|
};
|
|
|
|
}}
|
|
|
|
#endif
|