diff options
Diffstat (limited to '')
-rw-r--r-- | CPP/Windows/Control/ImageList.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/CPP/Windows/Control/ImageList.h b/CPP/Windows/Control/ImageList.h new file mode 100644 index 0000000..19feb11 --- /dev/null +++ b/CPP/Windows/Control/ImageList.h | |||
@@ -0,0 +1,87 @@ | |||
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: | ||
17 | operator HIMAGELIST() const {return m_Object; } | ||
18 | CImageList(): m_Object(NULL) {} | ||
19 | bool Attach(HIMAGELIST imageList) | ||
20 | { | ||
21 | if (imageList == NULL) | ||
22 | return false; | ||
23 | m_Object = imageList; | ||
24 | return true; | ||
25 | } | ||
26 | |||
27 | HIMAGELIST Detach() | ||
28 | { | ||
29 | HIMAGELIST imageList = m_Object; | ||
30 | m_Object = NULL; | ||
31 | return imageList; | ||
32 | } | ||
33 | |||
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 | |||
43 | bool Destroy() // DeleteImageList() in MFC | ||
44 | { | ||
45 | if (m_Object == NULL) | ||
46 | return false; | ||
47 | return BOOLToBool(ImageList_Destroy(Detach())); | ||
48 | } | ||
49 | |||
50 | ~CImageList() | ||
51 | { Destroy(); } | ||
52 | |||
53 | int GetImageCount() const | ||
54 | { return ImageList_GetImageCount(m_Object); } | ||
55 | |||
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); } | ||
61 | int AddMasked(HBITMAP hbmImage, COLORREF mask) | ||
62 | { return ImageList_AddMasked(m_Object, hbmImage, mask); } | ||
63 | int AddIcon(HICON icon) | ||
64 | { return ImageList_AddIcon(m_Object, 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. | ||
69 | bool Remove(int index) | ||
70 | { return BOOLToBool(ImageList_Remove(m_Object, index)); } | ||
71 | bool RemoveAll() | ||
72 | { return BOOLToBool(ImageList_RemoveAll(m_Object)); } | ||
73 | |||
74 | HICON ExtractIcon(int index) | ||
75 | { return ImageList_ExtractIcon(NULL, m_Object, index); } | ||
76 | HICON GetIcon(int index, UINT flags) | ||
77 | { return ImageList_GetIcon(m_Object, index, flags); } | ||
78 | |||
79 | bool GetIconSize(int &width, int &height) const | ||
80 | { return BOOLToBool(ImageList_GetIconSize(m_Object, &width, &height)); } | ||
81 | bool SetIconSize(int width, int height) | ||
82 | { return BOOLToBool(ImageList_SetIconSize(m_Object, width, height)); } | ||
83 | }; | ||
84 | |||
85 | }} | ||
86 | |||
87 | #endif | ||