reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

iconlist.hpp (1282B)


      1 /* ReaPack: Package manager for REAPER
      2  * Copyright (C) 2015-2025  Christian Fillion
      3  *
      4  * This program is free software: you can redistribute it and/or modify
      5  * it under the terms of the GNU Lesser General Public License as published by
      6  * the Free Software Foundation, either version 3 of the License, or
      7  * (at your option) any later version.
      8  *
      9  * This program is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12  * GNU Lesser General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU Lesser General Public License
     15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     16  */
     17 
     18 #ifndef REAPACK_ICONLIST_HPP
     19 #define REAPACK_ICONLIST_HPP
     20 
     21 #include "win32.hpp"
     22 
     23 #include <initializer_list>
     24 
     25 #ifdef _WIN32
     26 #  include <windows.h>
     27 #  include <commctrl.h>
     28 #else
     29 #  include <swell/swell.h>
     30 #endif
     31 
     32 class IconList {
     33 public:
     34   typedef const Win32::char_type *Icon;
     35 
     36   static Icon CheckedIcon;
     37   static Icon UncheckedIcon;
     38 
     39   IconList(const std::initializer_list<Icon> &icons);
     40   ~IconList();
     41 
     42   void loadIcon(Icon icon);
     43   HIMAGELIST handle() const { return m_list; }
     44 
     45 private:
     46   HIMAGELIST m_list;
     47 };
     48 
     49 #endif