[WIN32SS] Introduce the NATIVE_REACTX define and disable some Dx calls (#6025)
[reactos.git] / dll / shellext / fontext / CFontCache.hpp
1 /*
2 * PROJECT: ReactOS Font Shell Extension
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: font list cache handling
5 * COPYRIGHT: Copyright 2019,2020 Mark Jansen (mark.jansen@reactos.org)
6 */
7
8 #pragma once
9
10
11 class CFontInfo
12 {
13 private:
14 CStringW m_Name;
15 CStringW m_File;
16 bool m_FileRead;
17 public:
18 CFontInfo(LPCWSTR name = L"");
19
20 const CStringW& Name() const;
21 const CStringW& File();
22 const bool Valid() const;
23 };
24
25
26 class CFontCache
27 {
28 private:
29 CAtlArray<CFontInfo> m_Fonts;
30 CStringW m_FontFolderPath;
31
32 protected:
33 CFontCache();
34
35 void Insert(CAtlList<CFontInfo>& fonts, const CStringW& KeyName);
36 void Read();
37
38 public:
39 void SetFontDir(const LPCWSTR Path);
40 const CStringW& FontPath() const { return m_FontFolderPath; }
41
42 size_t Size();
43 CStringW Name(size_t Index);
44 CStringW Filename(const FontPidlEntry* fontEntry, bool alwaysFullPath = false);
45
46 friend class CFontExtModule;
47 };
48
49
50 extern CFontCache* g_FontCache;
51
52