tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ImageList.h (2372B)


      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