wxWidgets/src/palmos/fontenum.cpp
2005-09-23 12:56:45 +00:00

152 lines
4.4 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: src/palmos/fontenum.cpp
// Purpose: wxFontEnumerator class for Palm OS
// Author: William Osborne - minimal working wxPalmOS port
// Modified by:
// Created: 10/13/04
// RCS-ID: $Id$
// Copyright: (c) William Osborne
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_FONTMAP
#ifndef WX_PRECOMP
#include "wx/font.h"
#include "wx/encinfo.h"
#endif
#include "wx/palmos/private.h"
#include "wx/fontutil.h"
#include "wx/fontenum.h"
#include "wx/fontmap.h"
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
// the helper class which calls ::EnumFontFamilies() and whose OnFont() is
// called from the callback passed to this function and, in its turn, calls the
// appropariate wxFontEnumerator method
class wxFontEnumeratorHelper
{
public:
wxFontEnumeratorHelper(wxFontEnumerator *fontEnum);
// control what exactly are we enumerating
// we enumerate fonts with given enocding
bool SetEncoding(wxFontEncoding encoding);
// we enumerate fixed-width fonts
void SetFixedOnly(bool fixedOnly) { m_fixedOnly = fixedOnly; }
// we enumerate the encodings available in this family
void SetFamily(const wxString& family);
// call to start enumeration
void DoEnumerate();
// called by our font enumeration proc
bool OnFont(const LPLOGFONT lf, const LPTEXTMETRIC tm) const;
private:
// the object we forward calls to OnFont() to
wxFontEnumerator *m_fontEnum;
// if != -1, enum only fonts which have this encoding
int m_charset;
// if not empty, enum only the fonts with this facename
wxString m_facename;
// if not empty, enum only the fonts in this family
wxString m_family;
// if TRUE, enum only fixed fonts
bool m_fixedOnly;
// if TRUE, we enumerate the encodings, not fonts
bool m_enumEncodings;
// the list of charsets we already found while enumerating charsets
wxArrayInt m_charsets;
// the list of facenames we already found while enumerating facenames
wxArrayString m_facenames;
DECLARE_NO_COPY_CLASS(wxFontEnumeratorHelper)
};
// ----------------------------------------------------------------------------
// private functions
// ----------------------------------------------------------------------------
#ifndef __WXMICROWIN__
int CALLBACK wxFontEnumeratorProc(LPLOGFONT lplf, LPTEXTMETRIC lptm,
DWORD dwStyle, LONG lParam);
#endif
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxFontEnumeratorHelper
// ----------------------------------------------------------------------------
wxFontEnumeratorHelper::wxFontEnumeratorHelper(wxFontEnumerator *fontEnum)
{
}
void wxFontEnumeratorHelper::SetFamily(const wxString& family)
{
}
bool wxFontEnumeratorHelper::SetEncoding(wxFontEncoding encoding)
{
return FALSE;
}
#define wxFONTENUMPROC FONTENUMPROC
void wxFontEnumeratorHelper::DoEnumerate()
{
}
bool wxFontEnumeratorHelper::OnFont(const LPLOGFONT lf,
const LPTEXTMETRIC tm) const
{
return false;
}
// ----------------------------------------------------------------------------
// wxFontEnumerator
// ----------------------------------------------------------------------------
bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
bool fixedWidthOnly)
{
return false;
}
bool wxFontEnumerator::EnumerateEncodings(const wxString& family)
{
return false;
}
#endif // wxUSE_FONTMAP