tor-browser

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

SysIconUtils.h (1487B)


      1 // SysIconUtils.h
      2 
      3 #ifndef __SYS_ICON_UTILS_H
      4 #define __SYS_ICON_UTILS_H
      5 
      6 #include "../../../Common/MyWindows.h"
      7 
      8 #include <commctrl.h>
      9 
     10 #include "../../../Common/MyString.h"
     11 
     12 struct CExtIconPair
     13 {
     14  UString Ext;
     15  int IconIndex;
     16  // UString TypeName;
     17 
     18  // int Compare(const CExtIconPair &a) const { return MyStringCompareNoCase(Ext, a.Ext); }
     19 };
     20 
     21 struct CAttribIconPair
     22 {
     23  DWORD Attrib;
     24  int IconIndex;
     25  // UString TypeName;
     26 
     27  // int Compare(const CAttribIconPair &a) const { return Ext.Compare(a.Ext); }
     28 };
     29 
     30 class CExtToIconMap
     31 {
     32 public:
     33  CRecordVector<CAttribIconPair> _attribMap;
     34  CObjectVector<CExtIconPair> _extMap;
     35  int SplitIconIndex;
     36  int SplitIconIndex_Defined;
     37  
     38  CExtToIconMap(): SplitIconIndex_Defined(false) {}
     39 
     40  void Clear()
     41  {
     42    SplitIconIndex_Defined = false;
     43    _extMap.Clear();
     44    _attribMap.Clear();
     45  }
     46  int GetIconIndex(DWORD attrib, const wchar_t *fileName /* , UString *typeName */);
     47  // int GetIconIndex(DWORD attrib, const UString &fileName);
     48 };
     49 
     50 DWORD_PTR GetRealIconIndex(CFSTR path, DWORD attrib, int &iconIndex);
     51 int GetIconIndexForCSIDL(int csidl);
     52 
     53 inline HIMAGELIST GetSysImageList(bool smallIcons)
     54 {
     55  SHFILEINFO shellInfo;
     56  return (HIMAGELIST)SHGetFileInfo(TEXT(""),
     57      FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_DIRECTORY,
     58      &shellInfo, sizeof(shellInfo),
     59      SHGFI_USEFILEATTRIBUTES | SHGFI_SYSICONINDEX | (smallIcons ? SHGFI_SMALLICON : SHGFI_ICON));
     60 }
     61 
     62 #endif