wxMaxima
Loading...
Searching...
No Matches
FontRenderabilityCache.h
Go to the documentation of this file.
1// -*- mode: c++; c-file-style: "linux"; c-basic-offset: 2; indent-tabs-mode: nil -*-
2//
3// Copyright (C) 2026 Gunter Königsmann <wxMaxima@physikbuch.de>
4//
5// This program is free software; you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation; either version 2 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15//
16// You should have received a copy of the GNU General Public License
17// along with this program; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19//
20// SPDX-License-Identifier: GPL-2.0+
21
34#ifndef FONTRENDERABILITYCACHE_H
35#define FONTRENDERABILITYCACHE_H
36
37#include <wx/confbase.h>
38#include <wx/font.h>
39#include <wx/hashmap.h>
40#include <wx/string.h>
41#include <unordered_map>
42
65{
66public:
68 bool FontRendersChar(wxUniChar ch, const wxFont &font);
69
71 void ClearValues();
72
74 void ReadFrom(wxConfigBase *config);
76 void WriteTo(wxConfigBase *config) const;
77
78private:
80 using RenderableCharsHash =
81 std::unordered_map<wxString, wxString, wxStringHash>;
82
84 static bool FontDisplaysChar(wxUniChar ch, const wxFont &font);
86 static bool CharVisiblyDifferent(wxChar ch, wxChar otherChar,
87 const wxFont &font);
88
90 RenderableCharsHash m_renderableChars;
92 RenderableCharsHash m_nonRenderableChars;
93};
94
95#endif // FONTRENDERABILITYCACHE_H
Caches which characters each font can actually render.
Definition: FontRenderabilityCache.h:65
bool FontRendersChar(wxUniChar ch, const wxFont &font)
True if we are confident that the font renders this char.
Definition: FontRenderabilityCache.cpp:32
void ReadFrom(wxConfigBase *config)
Reads the persisted verdicts from the configuration storage.
Definition: FontRenderabilityCache.cpp:60
void WriteTo(wxConfigBase *config) const
Persists the verdicts to the configuration storage.
Definition: FontRenderabilityCache.cpp:82
void ClearValues()
Forgets the cached verdicts (the known font names stay as empty entries).
Definition: FontRenderabilityCache.cpp:53