From 66160760e1b333dd73f4c32cb6549bbc0461b67e Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Sat, 2 Jun 2007 12:56:36 +0000
Subject: [PATCH] added msw.font.no-proof-quality system option as it makes
 more fonts available (feature request 1617941)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/changes.txt         |  7 +++++++
 docs/latex/wx/sysopt.tex |  5 +++++
 src/msw/font.cpp         | 14 +++++++++++---
 3 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/docs/changes.txt b/docs/changes.txt
index 56730a7cde..72d38dfc23 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -153,6 +153,13 @@ wxX11:
 - Make Enter key activate the default button (David Hart)
 
 
+2.8.5
+-----
+
+wxMSW:
+
+- Added msw.font.no-proof-quality system option, see manual for description
+
 2.8.4
 -----
 
diff --git a/docs/latex/wx/sysopt.tex b/docs/latex/wx/sysopt.tex
index 91009e1a7c..7078bd6fa5 100644
--- a/docs/latex/wx/sysopt.tex
+++ b/docs/latex/wx/sysopt.tex
@@ -31,6 +31,11 @@ Setting this to 0 causes more flicker, but allows applications to paint graphics
 \twocolitem{msw.display.directdraw}{If set to 1, use DirectDraw-based implementation of
 \helpref{wxDisplay}{wxdisplay}. By default the standard Win32 functions are
 used.}
+\twocolitem{msw.font.no-proof-quality}{If set to 1, use default fonts quality
+instead of proof quality when creating fonts. With proof quality the fonts
+have slightly better appearance but not all fonts are available in this
+quality, e.g. the Terminal font in small sizes is not and this option may be
+used if wider fonts selection is more important than higher quality.}
 \end{twocollist}
 
 \wxheading{GTK}
diff --git a/src/msw/font.cpp b/src/msw/font.cpp
index ffddf1c6a6..8023ed0e3d 100644
--- a/src/msw/font.cpp
+++ b/src/msw/font.cpp
@@ -39,6 +39,10 @@
 #include "wx/fontutil.h"
 #include "wx/fontmap.h"
 
+#ifndef __WXWINCE__
+    #include "wx/sysopt.h"
+#endif
+
 #include "wx/tokenzr.h"
 
 #if wxUSE_EXTENDED_RTTI
@@ -453,12 +457,16 @@ void wxNativeFontInfo::Init()
 {
     wxZeroMemory(lf);
 
-    // we get better font quality if we use this instead of DEFAULT_QUALITY
-    // apparently without any drawbacks
+    // we get better font quality if we use PROOF_QUALITY instead of
+    // DEFAULT_QUALITY but some fonts (e.g. "Terminal 6pt") are not available
+    // then so we allow to set a global option to choose between quality and
+    // wider font selection
 #ifdef __WXWINCE__
     lf.lfQuality = CLEARTYPE_QUALITY;
 #else
-    lf.lfQuality = PROOF_QUALITY;
+    lf.lfQuality = wxSystemOptions::GetOptionInt(_T("msw.font.no-proof-quality"))
+                    ? DEFAULT_QUALITY
+                    : PROOF_QUALITY;
 #endif
 }
 
-- 
2.47.2