]> git.saurik.com Git - wxWidgets.git/blame - src/msw/fontenum.cpp
Added sqltypes.h (for Cygwin b20), some other Cygwin fixes.
[wxWidgets.git] / src / msw / fontenum.cpp
CommitLineData
543f08a6
JS
1/////////////////////////////////////////////////////////////////////////////
2// Name: fontenum.cpp
3// Purpose: wxFontEnumerator class for Windows
4// Author: Julian Smart
5// Modified by:
6// Created: 04/01/98
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12// For compilers that support precompilation, includes "wx.h".
13#include "wx/wxprec.h"
14
15#ifdef __BORLANDC__
16 #pragma hdrstop
17#endif
18
19#ifndef WX_PRECOMP
20 #include "wx/font.h"
21#endif
22
23#include <wx/msw/private.h>
24
25int CALLBACK wxFontEnumeratorProc(LPLOGFONT lplf, LPTEXTMETRIC lptm,
26 DWORD dwStyle, LONG lParam)
27{
28 // Get rid of any fonts that we don't want...
29 if (dwStyle != TRUETYPE_FONTTYPE)
30 return 1;
31
32 wxFontEnumerator *fontEnum = (wxFontEnumerator *)lParam;
33
34 wxFont font = wxCreateFontFromLogFont(lplf);
35
36 if (fontEnum->OnFont(font))
37 return 1 ;
38 else
39 return 0 ;
40}
41
42IMPLEMENT_CLASS(wxFontEnumerator, wxObject)
43
44bool wxFontEnumerator::Enumerate()
45{
46 m_faceNames.Clear();
47
48 HDC hDC = ::GetDC(NULL);
49#ifdef __WIN32__
50 ::EnumFontFamilies(hDC, (LPTSTR) NULL, (FONTENUMPROC) wxFontEnumeratorProc, (LPARAM) (void*) this) ;
51#else
52 ::EnumFonts(hDC, (LPTSTR) NULL, (FONTENUMPROC) wxFontEnumeratorProc, (LPARAM) (void*) this) ;
53#endif
54 ::ReleaseDC(NULL, hDC);
55 return TRUE;
56}
57
58bool wxFontEnumerator::OnFont(const wxFont& font)
59{
60 m_faceNames.Add(font.GetFaceName());
61 return TRUE;
62}
63