From: Vadim Zeitlin Date: Mon, 25 Oct 1999 16:41:22 +0000 (+0000) Subject: it now lives under unix X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/bbea8df3590572eaffec4d285726698632c76171 it now lives under unix git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/motif/fontenum.cpp b/src/motif/fontenum.cpp deleted file mode 100644 index c97a533c5d..0000000000 --- a/src/motif/fontenum.cpp +++ /dev/null @@ -1,206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: src/motif/fontenum.cpp -// Purpose: wxFontEnumerator class for X11/GDK -// Author: Vadim Zeitlin -// Modified by: -// Created: 01.10.99 -// RCS-ID: $Id$ -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "fontenum.h" -#endif - -#include "wx/defs.h" -#include "wx/dynarray.h" -#include "wx/string.h" -#include "wx/utils.h" - -#include "wx/fontenum.h" - -#include - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -// compare function for sorted array of strings -static int CMPFUNC_CONV CompareStrings(const char *s1, const char *s2); - -// create the list of all fonts with the given spacing -static char **CreateFontList(wxChar spacing, int *nFonts); - -// extract all font families from the given font list and call our -// OnFontFamily() for each of them -static bool ProcessFamiliesFromFontList(wxFontEnumerator *This, - char **fonts, - int nFonts); - - -// ---------------------------------------------------------------------------- -// private types -// ---------------------------------------------------------------------------- - -WX_DEFINE_SORTED_ARRAY(const char *, wxSortedStringArray); - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// helpers -// ---------------------------------------------------------------------------- - -static int CMPFUNC_CONV CompareStrings(const char *s1, const char *s2) -{ - return strcmp(s1, s2); -} - -static char **CreateFontList(wxChar spacing, int *nFonts) -{ - wxString pattern; - pattern.Printf(wxT("-*-*-*-*-*-*-*-*-*-*-%c-*-*-*"), spacing); - - // get the list of all fonts - return XListFonts((Display *)wxGetDisplay(), pattern, 32767, nFonts); -} - -static bool ProcessFamiliesFromFontList(wxFontEnumerator *This, - char **fonts, - int nFonts) -{ - // extract the list of (unique) font families - wxSortedStringArray families(CompareStrings); - for ( int n = 0; n < nFonts; n++ ) - { - char *font = fonts[n]; - if ( !wxString(font).Matches("-*-*-*-*-*-*-*-*-*-*-*-*-*-*") ) - { - // it's not a full font name (probably an alias) - continue; - } - - char *dash = strchr(font + 1, '-'); - char *family = dash + 1; - dash = strchr(family, '-'); - *dash = '\0'; // !NULL because Matches() above succeeded - - if ( families.Index(family) == wxNOT_FOUND ) - { - if ( !This->OnFontFamily(family) ) - { - // stop enumerating - return FALSE; - } - - families.Add(family); - } - //else: already seen - } - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxFontEnumerator -// ---------------------------------------------------------------------------- - -bool wxFontEnumerator::EnumerateFamilies(bool fixedWidthOnly) -{ - int nFonts; - char **fonts; - - if ( fixedWidthOnly ) - { - bool cont = TRUE; - fonts = CreateFontList(wxT('m'), &nFonts); - if ( fonts ) - { - cont = ProcessFamiliesFromFontList(this, fonts, nFonts); - - XFreeFontNames(fonts); - } - - if ( !cont ) - { - return TRUE; - } - - fonts = CreateFontList(wxT('c'), &nFonts); - if ( !fonts ) - { - return TRUE; - } - } - else - { - fonts = CreateFontList(wxT('*'), &nFonts); - - if ( !fonts ) - { - wxFAIL_MSG(wxT("No fonts at all on this system?")); - - return FALSE; - } - } - - (void)ProcessFamiliesFromFontList(this, fonts, nFonts); - - XFreeFontNames(fonts); - - return TRUE; -} - -bool wxFontEnumerator::EnumerateEncodings(const wxString& family) -{ -#if 0 - wxString pattern; - pattern.Printf(wxT("-*-%s-*-*-*-*-*-*-*-*-*-*-*-*"), - family.IsEmpty() ? wxT("*") : family.c_str()); - - // get the list of all fonts - int nFonts; - char **fonts = XListFonts((Display *)wxGetDisplay(), pattern, - 32767, nFonts); - - if ( !fonts ) - { - // unknown family? - return FALSE; - } - - // extract the list of (unique) encodings - wxSortedStringArray families(CompareStrings); - for ( int n = 0; n < nFonts; n++ ) - { - char *font = fonts[n]; - if ( !wxString(font).Matches("-*-*-*-*-*-*-*-*-*-*-*-*-*-*") ) - { - // it's not a full font name (probably an alias) - continue; - } - - // extract the family - char *dash = strchr(font + 1, '-'); - char *family = dash + 1; - dash = strchr(family, '-'); - *dash = '\0'; // !NULL because Matches() above succeeded - - // now extract the registry/encoding - } - - return TRUE; -#endif // 0 - - return FALSE; // TODO -}