aboutsummaryrefslogtreecommitdiff
path: root/CPP/Windows/Control/ImageList.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--CPP/Windows/Control/ImageList.h87
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
10namespace NWindows {
11namespace NControl {
12
13class CImageList
14{
15 HIMAGELIST m_Object;
16public:
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