X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/98e6fc816f5b5f902fa7372a2a3ca86fe55ad4b9..04633c190f5a6eafe607a5712647aaa131522b1f:/src/msw/fontenum.cpp diff --git a/src/msw/fontenum.cpp b/src/msw/fontenum.cpp index dec87f4fc1..7ee7852e02 100644 --- a/src/msw/fontenum.cpp +++ b/src/msw/fontenum.cpp @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "fontenum.h" #endif @@ -31,15 +31,16 @@ #if wxUSE_FONTMAP #ifndef WX_PRECOMP - #include "wx/font.h" + #include "wx/font.h" + #include "wx/encinfo.h" #endif +#include "wx/msw/private.h" + #include "wx/fontutil.h" #include "wx/fontenum.h" #include "wx/fontmap.h" -#include "wx/msw/private.h" - // ---------------------------------------------------------------------------- // private classes // ---------------------------------------------------------------------------- @@ -90,6 +91,8 @@ private: // the list of facenames we already found while enumerating facenames wxArrayString m_facenames; + + DECLARE_NO_COPY_CLASS(wxFontEnumeratorHelper) }; // ---------------------------------------------------------------------------- @@ -131,7 +134,7 @@ bool wxFontEnumeratorHelper::SetEncoding(wxFontEncoding encoding) if ( !wxGetNativeFontEncoding(encoding, &info) ) { #if wxUSE_FONTMAP - if ( !wxTheFontMapper->GetAltForEncoding(encoding, &info) ) + if ( !wxFontMapper::Get()->GetAltForEncoding(encoding, &info) ) #endif // wxUSE_FONTMAP { // no such encodings at all @@ -146,12 +149,8 @@ bool wxFontEnumeratorHelper::SetEncoding(wxFontEncoding encoding) return TRUE; } -#if defined(__GNUWIN32__) && !defined(__CYGWIN10__) - #if wxUSE_NORLANDER_HEADERS - #define wxFONTENUMPROC int(*)(const LOGFONT *, const TEXTMETRIC *, long unsigned int, LPARAM) - #else - #define wxFONTENUMPROC int(*)(ENUMLOGFONTEX *, NEWTEXTMETRICEX*, int, LPARAM) - #endif +#if defined(__GNUWIN32__) && !defined(__CYGWIN10__) && !wxCHECK_W32API_VERSION( 1, 1 ) && !wxUSE_NORLANDER_HEADERS + #define wxFONTENUMPROC int(*)(ENUMLOGFONTEX *, NEWTEXTMETRICEX*, int, LPARAM) #else #define wxFONTENUMPROC FONTENUMPROC #endif @@ -161,22 +160,17 @@ void wxFontEnumeratorHelper::DoEnumerate() #ifndef __WXMICROWIN__ HDC hDC = ::GetDC(NULL); -#ifdef __WIN32__ +#ifdef __WXWINCE__ + ::EnumFontFamilies(hDC, m_facename, (wxFONTENUMPROC)wxFontEnumeratorProc, + (LPARAM)this) ; +#else // __WIN32__ LOGFONT lf; lf.lfCharSet = m_charset; wxStrncpy(lf.lfFaceName, m_facename, WXSIZEOF(lf.lfFaceName)); lf.lfPitchAndFamily = 0; ::EnumFontFamiliesEx(hDC, &lf, (wxFONTENUMPROC)wxFontEnumeratorProc, (LPARAM)this, 0 /* reserved */) ; -#else // Win16 - ::EnumFonts(hDC, (LPTSTR)NULL, (FONTENUMPROC)wxFontEnumeratorProc, - #ifdef STRICT - (LPARAM) - #else - (LPSTR) - #endif - this); -#endif // Win32/16 +#endif // Win32/CE ::ReleaseDC(NULL, hDC); #endif @@ -275,8 +269,9 @@ bool wxFontEnumerator::EnumerateEncodings(const wxString& family) #ifndef __WXMICROWIN__ int CALLBACK wxFontEnumeratorProc(LPLOGFONT lplf, LPTEXTMETRIC lptm, - DWORD dwStyle, LONG lParam) + DWORD WXUNUSED(dwStyle), LONG lParam) { + // we used to process TrueType fonts only, but there doesn't seem to be any // reasons to restrict ourselves to them here #if 0