X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/373a5fb355f4023f96b14bbf8161cbd1de5b846e..256e97fb7d55aba8fe10c4c375a0228cbbdb7d86:/src/msw/fontenum.cpp?ds=sidebyside diff --git a/src/msw/fontenum.cpp b/src/msw/fontenum.cpp index 8dca8b0909..27c2832868 100644 --- a/src/msw/fontenum.cpp +++ b/src/msw/fontenum.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: msw/fontenum.cpp +// Name: src/msw/fontenum.cpp // Purpose: wxFontEnumerator class for Windows // Author: Julian Smart // Modified by: Vadim Zeitlin to add support for font encodings @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "fontenum.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,12 +24,13 @@ #pragma hdrstop #endif -#if wxUSE_FONTMAP +#if wxUSE_FONTENUM #ifndef WX_PRECOMP #include "wx/gdicmn.h" #include "wx/font.h" #include "wx/encinfo.h" + #include "wx/dynarray.h" #endif #include "wx/msw/private.h" @@ -93,7 +90,7 @@ private: // the list of facenames we already found while enumerating facenames wxArrayString m_facenames; - DECLARE_NO_COPY_CLASS(wxFontEnumeratorHelper) + wxDECLARE_NO_COPY_CLASS(wxFontEnumeratorHelper); }; // ---------------------------------------------------------------------------- @@ -102,7 +99,7 @@ private: #ifndef __WXMICROWIN__ int CALLBACK wxFontEnumeratorProc(LPLOGFONT lplf, LPTEXTMETRIC lptm, - DWORD dwStyle, LONG lParam); + DWORD dwStyle, LPARAM lParam); #endif // ============================================================================ @@ -162,12 +159,14 @@ void wxFontEnumeratorHelper::DoEnumerate() HDC hDC = ::GetDC(NULL); #ifdef __WXWINCE__ - ::EnumFontFamilies(hDC, m_facename, (wxFONTENUMPROC)wxFontEnumeratorProc, - (LPARAM)this) ; + ::EnumFontFamilies(hDC, + m_facename.empty() ? NULL : m_facename.wx_str(), + (wxFONTENUMPROC)wxFontEnumeratorProc, + (LPARAM)this) ; #else // __WIN32__ LOGFONT lf; lf.lfCharSet = (BYTE)m_charset; - wxStrncpy(lf.lfFaceName, m_facename, WXSIZEOF(lf.lfFaceName)); + wxStrlcpy(lf.lfFaceName, m_facename.c_str(), WXSIZEOF(lf.lfFaceName)); lf.lfPitchAndFamily = 0; ::EnumFontFamiliesEx(hDC, &lf, (wxFONTENUMPROC)wxFontEnumeratorProc, (LPARAM)this, 0 /* reserved */) ; @@ -270,7 +269,7 @@ bool wxFontEnumerator::EnumerateEncodings(const wxString& family) #ifndef __WXMICROWIN__ int CALLBACK wxFontEnumeratorProc(LPLOGFONT lplf, LPTEXTMETRIC lptm, - DWORD WXUNUSED(dwStyle), LONG lParam) + DWORD WXUNUSED(dwStyle), LPARAM lParam) { // we used to process TrueType fonts only, but there doesn't seem to be any @@ -290,4 +289,4 @@ int CALLBACK wxFontEnumeratorProc(LPLOGFONT lplf, LPTEXTMETRIC lptm, } #endif -#endif // wxUSE_FONTMAP +#endif // wxUSE_FONTENUM