1 // Windows/Control/ImageList.h 2 3 #ifndef __WINDOWS_CONTROL_IMAGE_LIST_H 4 #define __WINDOWS_CONTROL_IMAGE_LIST_H 5 6 #include <commctrl.h> 7 8 #include "../Defs.h" 9 10 namespace NWindows { 11 namespace NControl { 12 13 class CImageList 14 { 15 HIMAGELIST m_Object; 16 public: HIMAGELIST()17 operator HIMAGELIST() const {return m_Object; } CImageList()18 CImageList(): m_Object(NULL) {} Attach(HIMAGELIST imageList)19 bool Attach(HIMAGELIST imageList) 20 { 21 if (imageList == NULL) 22 return false; 23 m_Object = imageList; 24 return true; 25 } 26 Detach()27 HIMAGELIST Detach() 28 { 29 HIMAGELIST imageList = m_Object; 30 m_Object = NULL; 31 return imageList; 32 } 33 Create(int width,int height,UINT flags,int initialNumber,int grow)34 bool Create(int width, int height, UINT flags, int initialNumber, int grow) 35 { 36 HIMAGELIST a = ImageList_Create(width, height, flags, 37 initialNumber, grow); 38 if (a == NULL) 39 return false; 40 return Attach(a); 41 } 42 Destroy()43 bool Destroy() // DeleteImageList() in MFC 44 { 45 if (m_Object == NULL) 46 return false; 47 return BOOLToBool(ImageList_Destroy(Detach())); 48 } 49 ~CImageList()50 ~CImageList() 51 { Destroy(); } 52 GetImageCount()53 int GetImageCount() const 54 { return ImageList_GetImageCount(m_Object); } 55 GetImageInfo(int index,IMAGEINFO * imageInfo)56 bool GetImageInfo(int index, IMAGEINFO* imageInfo) const 57 { return BOOLToBool(ImageList_GetImageInfo(m_Object, index, imageInfo)); } 58 59 int Add(HBITMAP hbmImage, HBITMAP hbmMask = 0) 60 { return ImageList_Add(m_Object, hbmImage, hbmMask); } AddMasked(HBITMAP hbmImage,COLORREF mask)61 int AddMasked(HBITMAP hbmImage, COLORREF mask) 62 { return ImageList_AddMasked(m_Object, hbmImage, mask); } AddIcon(HICON icon)63 int AddIcon(HICON icon) 64 { return ImageList_AddIcon(m_Object, icon); } Replace(int index,HICON icon)65 int Replace(int index, HICON icon) 66 { return ImageList_ReplaceIcon(m_Object, index, icon); } 67 68 // If index is -1, the function removes all images. Remove(int index)69 bool Remove(int index) 70 { return BOOLToBool(ImageList_Remove(m_Object, index)); } RemoveAll()71 bool RemoveAll() 72 { return BOOLToBool(ImageList_RemoveAll(m_Object)); } 73 ExtractIcon(int index)74 HICON ExtractIcon(int index) 75 { return ImageList_ExtractIcon(NULL, m_Object, index); } GetIcon(int index,UINT flags)76 HICON GetIcon(int index, UINT flags) 77 { return ImageList_GetIcon(m_Object, index, flags); } 78 GetIconSize(int & width,int & height)79 bool GetIconSize(int &width, int &height) const 80 { return BOOLToBool(ImageList_GetIconSize(m_Object, &width, &height)); } SetIconSize(int width,int height)81 bool SetIconSize(int width, int height) 82 { return BOOLToBool(ImageList_SetIconSize(m_Object, width, height)); } 83 }; 84 85 }} 86 87 #endif 88