]> Pileus Git - ~andy/gtk/commitdiff
Remove deprecated GdkFont
authorChristian Dywan <christian@lanedo.com>
Wed, 28 Apr 2010 19:28:06 +0000 (21:28 +0200)
committerJavier Jardón <jjardon@gnome.org>
Mon, 28 Jun 2010 21:38:03 +0000 (23:38 +0200)
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=604196

Signed-off-by: Javier Jardón <jjardon@gnome.org>
22 files changed:
docs/reference/gdk/gdk3-sections.txt
docs/reference/gdk/tmpl/fonts.sgml [deleted file]
gdk/Makefile.am
gdk/directfb/Makefile.am
gdk/directfb/TODO
gdk/directfb/gdkfont-directfb.c [deleted file]
gdk/gdk.h
gdk/gdk.symbols
gdk/gdkfont.c [deleted file]
gdk/gdkfont.h [deleted file]
gdk/gdkinternals.h
gdk/gdktypes.h
gdk/makefile.msc
gdk/quartz/Makefile.am
gdk/quartz/gdkfont-quartz.c [deleted file]
gdk/win32/Makefile.am
gdk/win32/gdkfont-win32.c [deleted file]
gdk/win32/gdkprivate-win32.h
gdk/win32/makefile.msc
gdk/x11/Makefile.am
gdk/x11/gdkfont-x11.c [deleted file]
gdk/x11/gdkxid.c

index 35b29e16405ceb1d79cc6feb7a6e27d14f26714f..2e062f2377ad13c578db34621937b84f04d5d4a4 100644 (file)
@@ -74,7 +74,6 @@ gdk_extension_mode_get_type
 gdk_fill_get_type
 gdk_fill_rule_get_type
 gdk_filter_return_get_type
-gdk_font_type_get_type
 gdk_function_get_type
 gdk_gc_values_mask_get_type
 gdk_grab_ownership_get_type
@@ -394,28 +393,6 @@ gdk_colormap_get_type
 gdk_color_get_type
 </SECTION>
 
-<SECTION>
-<TITLE>Fonts</TITLE>
-<FILE>fonts</FILE>
-GdkFont
-GdkFontType
-gdk_font_load
-gdk_fontset_load
-gdk_fontset_load_for_display
-gdk_font_get_display
-gdk_font_ref
-gdk_font_unref
-gdk_font_id
-gdk_font_equal
-
-<SUBSECTION Standard>
-GDK_TYPE_FONT
-GDK_TYPE_FONT_TYPE
-
-<SUBSECTION Private>
-gdk_font_get_type
-</SECTION>
-
 <SECTION>
 <TITLE>Drawing Primitives</TITLE>
 <FILE>drawing</FILE>
diff --git a/docs/reference/gdk/tmpl/fonts.sgml b/docs/reference/gdk/tmpl/fonts.sgml
deleted file mode 100644 (file)
index 2e69396..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Fonts
-
-<!-- ##### SECTION Short_Description ##### -->
-Loading and manipulating fonts
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-The #GdkFont data type represents a font for drawing on
-the screen. These functions provide support for
-loading fonts, and also for determining the dimensions
-of characters and strings when drawn with a particular
-font.
-</para>
-
-<para>
-Fonts in X are specified by a
-<firstterm>X Logical Font Description</firstterm>. 
-The following description is considerably simplified.
-For definitive information about XLFD's see the 
-X reference documentation. A X Logical Font Description (XLFD)
-consists of a sequence of fields separated (and surrounded by) '-'
-characters. For example, Adobe Helvetica Bold 12 pt, has the
-full description: 
-<informalexample><programlisting>
-"-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"
-</programlisting></informalexample>
-</para>
-
-<para>
-The fields in the XLFD are:
-
-<informaltable pgwide="1" frame="none">
-<tgroup cols="2"><colspec colwidth="2*"/><colspec colwidth="8*"/>
-<tbody>
-
-<row>
-<entry>Foundry</entry>
-<entry>the company or organization where the font originated.</entry>
-</row>
-
-<row>
-<entry>Family</entry>
-<entry>the font family (a group of related font designs).</entry>
-</row>
-
-<row>
-<entry>Weight</entry>
-<entry>A name for the font's typographic weight
-For example, 'bold' or 'medium').</entry>
-</row>
-
-<row>
-<entry>Slant</entry>
-<entry>The slant of the font. Common values are 'R' for Roman,
-'I' for italoc, and 'O' for oblique.</entry>
-</row>
-
-<row>
-<entry>Set Width</entry>
-<entry>A name for the width of the font. For example,
-'normal' or 'condensed'.</entry>
-</row>
-
-<row>
-<entry>Add Style</entry>
-<entry>Additional information to distinguish a font from
-other fonts of the same family.</entry>
-</row>
-
-<row>
-<entry>Pixel Size</entry>
-<entry>The body size of the font in pixels.</entry>
-</row>
-
-<row>
-<entry>Point Size</entry>
-<entry>The body size of the font in 10ths of a point.
-(A <firstterm>point</firstterm> is 1/72.27 inch) </entry>
-</row>
-
-<row>
-<entry>Resolution X</entry>
-<entry>The horizontal resolution that the font was designed for.</entry>
-</row>
-
-<row>
-<entry>Resolution Y</entry>
-<entry>The vertical resolution that the font was designed for .</entry>
-</row>
-
-<row>
-<entry>Spacing</entry>
-<entry>The type of spacing for the font - can be 'p' for proportional,
-'m' for monospaced or 'c' for charcell.</entry>
-</row>
-
-<row>
-<entry>Average Width</entry>
-<entry>The average width of a glyph in the font. For monospaced
-and charcell fonts, all glyphs in the font have this width</entry>
-</row>
-
-<row>
-<entry>Charset Registry</entry>
-<entry>The registration authority that owns the encoding for
-the font. Together with the Charset Encoding field, this
-defines the character set for the font.</entry>
-</row>
-
-<row>
-<entry>Charset Encoding</entry>
-<entry>An identifier for the particular character set encoding.</entry>
-</row>
-
-</tbody></tgroup></informaltable>
-</para>
-
-<para>
-When specifying a font via a X logical Font Description,
-'*' can be used as a wildcard to match any portion of
-the XLFD. For instance, the above example could
-also be specified as
-<informalexample><programlisting>
-"-*-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-1"
-</programlisting></informalexample>
-
-It is generally a good idea to use wildcards for any
-portion of the XLFD that your program does not care
-about specifically, since that will improve the
-chances of finding a matching font.
-</para>
-
-<para>
-A <firstterm>fontset</firstterm> is a list of fonts
-that is used for drawing international text that may
-contain characters from a number of different character
-sets. It is represented by a list of XLFD's. 
-</para>
-
-<para>
-The font for a given character set is determined by going
-through the list of XLFD's in order. For each one, if
-the registry and and encoding fields match the desired
-character set, then that font is used, otherwise if
-the XLFD contains wild-cards for the registry and encoding
-fields, the registry and encoding for the desired character
-set are substituted in and a lookup is done. If a match is found
-that font is used. Otherwise, processing continues
-on to the next font in the list.
-</para>
-
-<para>
-The functions for determining the metrics of a string
-come in several varieties that can take a number
-of forms of string input:
-
-<variablelist>
-  <varlistentry>
-    <term>8-bit string</term>
-    <listitem><para>
-    When using functions like gdk_string_width() that
-    take a <type>gchar *</type>, if the font is of type
-    %GDK_FONT_FONT and is an 8-bit font, then each
-    <type>gchar</type> indexes the glyphs in the font directly.
-    </para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>16-bit string</term>
-    <listitem><para>
-    For functions taking a <type>gchar *</type>, if the
-    font is of type %GDK_FONT_FONT, and is a 16-bit
-    font, then the <type>gchar *</type> argument is
-    interpreted as a <type>guint16 *</type> cast to
-    a <type>gchar *</type> and each <type>guint16</type>
-    indexes the glyphs in the font directly.
-    </para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>Multibyte string</term>
-    <listitem><para>
-    For functions taking a <type>gchar *</type>, if the
-    font is of type %GDK_FONT_FONTSET, then the input
-    string is interpreted as a <firstterm>multibyte</firstterm>
-    encoded according to the current locale. (A multibyte
-    string is one in which each character may consist
-    of one or more bytes, with different lengths for different
-    characters in the string). The string will
-    be rendered using one or more different fonts from
-    the fontset.
-    </para></listitem>
-  </varlistentry>
-</variablelist>
-</para>
-
-<para>
-GDK provides functions to determine a number of different
-measurements (metrics) for a given string. (Need diagram
-here).
-
-<variablelist>
-  <varlistentry>
-    <term>ascent</term>
-    <listitem><para>
-    The vertical distance from the origin of the drawing
-    opereration to the top of the drawn character.
-    </para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>descent</term>
-    <listitem><para>
-    The vertical distance from the origin of the drawing
-    opereration to the bottom of the drawn character.
-    </para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>left bearing</term>
-    <listitem><para>
-    The horizontal distance from the origin of the drawing
-    operation to the left-most part of the drawn character.
-    </para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>right bearing</term>
-    <listitem><para>
-    The horizontal distance from the origin of the drawing
-    operation to the right-most part of the drawn character.
-    </para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>width bearing</term>
-    <listitem><para>
-    The horizontal distance from the origin of the drawing
-    operation to the correct origin for drawing another
-    string to follow the current one. Depending on the
-    font, this could be greater than or less than the 
-    right bearing.
-    </para></listitem>
-  </varlistentry>
-</variablelist>
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GdkFont ##### -->
-<para>
-The <structname>GdkFont</structname> structure represents a font or fontset. It
-contains the following public fields. A new <structname>GdkFont</structname>
-structure is returned by gdk_font_load() or gdk_fontset_load(),
-and is reference counted with gdk_font_ref() and gdk_font_unref()
-</para>
-
-@type: a value of type #GdkFontType which indicates
-  whether this font is a single font or a fontset.
-@ascent: the maximum distance that the font, when drawn,
-  ascends above the baseline.
-@descent: the maximum distance that the font, when drawn,
-descends below the baseline.
-
-<!-- ##### ENUM GdkFontType ##### -->
-<para>
-Indicates the type of a font. The possible values
-are currently:
-</para>
-
-@GDK_FONT_FONT: the font is a single font.
-@GDK_FONT_FONTSET: the font is a fontset.
-
-<!-- ##### FUNCTION gdk_fontset_load ##### -->
-<para>
-</para>
-
-@fontset_name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_fontset_load_for_display ##### -->
-<para>
-
-</para>
-
-@display: 
-@fontset_name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_font_get_display ##### -->
-<para>
-
-</para>
-
-@font: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_font_ref ##### -->
-<para>
-</para>
-
-@font: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_font_unref ##### -->
-<para>
-</para>
-
-@font: 
-
-
-<!-- ##### FUNCTION gdk_font_id ##### -->
-<para>
-</para>
-
-@font: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_font_equal ##### -->
-<para>
-</para>
-
-@fonta: 
-@fontb: 
-@Returns: 
index b4fbbc7d61a2ef3844069ecebfdef37c2242ad58..4073d957e0aafd38f6fe8bb20a459e84067005df 100644 (file)
@@ -82,7 +82,6 @@ gdk_public_h_sources =                                \
        gdkdnd.h                                \
        gdkdrawable.h                           \
        gdkevents.h                             \
-       gdkfont.h                               \
        gdkgc.h                                 \
        gdkimage.h                              \
        gdkinput.h                              \
@@ -130,7 +129,6 @@ gdk_c_sources =                 \
        gdkdnd.c                \
        gdkdraw.c               \
        gdkevents.c             \
-       gdkfont.c               \
        gdkgc.c                 \
        gdkglobals.c            \
        gdkimage.c              \
index be2bf257726434a09ecfcd423095f2bc32432f05..57d3fed3c60b8d20532b6f619ce3bb3099490945 100644 (file)
@@ -27,7 +27,6 @@ libgdk_directfb_la_SOURCES =  \
        gdkdisplay-directfb.h   \
        gdkdrawable-directfb.c  \
        gdkevents-directfb.c    \
-       gdkfont-directfb.c      \
        gdkgc-directfb.c        \
        gdkgeometry-directfb.c  \
        gdkglobals-directfb.c   \
index db0eb77b02a8da9eec4746b126d6aee363726cd3..10215d3ea4425a56bc12c186302f94b42a7f905b 100644 (file)
@@ -31,7 +31,6 @@ gdkdisplay-directfb.c
 gdkdnd-directfb.c
 gdkdrawable-directfb.c
 gdkevents-directfb.c
-gdkfont-directfb.c
 gdkgc-directfb.c
 gdkgeometry-directfb.c
 gdkglobals-directfb.c
diff --git a/gdk/directfb/gdkfont-directfb.c b/gdk/directfb/gdkfont-directfb.c
deleted file mode 100644 (file)
index 06635c5..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#undef GDK_DISABLE_DEPRECATED
-
-#include "config.h"
-#include "gdk.h"
-
-#include <string.h>
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkinternals.h"
-
-#include "gdkfont.h"
-#include "gdkalias.h"
-
-
-typedef struct _GdkFontDirectFB  GdkFontDirectFB;
-
-struct _GdkFontDirectFB
-{
-  GdkFontPrivate    base;
-  gint              size;
-  IDirectFBFont    *dfbfont;
-};
-
-
-static GdkFont *
-gdk_directfb_bogus_font (gint height)
-{
-  GdkFont         *font;
-  GdkFontDirectFB *private;
-
-  private = g_new0 (GdkFontDirectFB, 1);
-  font = (GdkFont *)private;
-
-  font->type = GDK_FONT_FONT;
-  font->ascent = height*3/4;
-  font->descent = height/4;
-  private->size = height;
-  private->base.ref_count = 1;
-  return font;
-}
-
-
-/* ********************* */
-
-GdkFont*
-gdk_fontset_load (const gchar *fontset_name)
-{
-  return gdk_directfb_bogus_font (10);
-}
-
-GdkFont *
-gdk_fontset_load_for_display (GdkDisplay *display,const gchar *font_name) {
-  return gdk_directfb_bogus_font (10);
-}
-
-void
-_gdk_font_destroy (GdkFont *font)
-{
-  switch (font->type)
-    {
-    case GDK_FONT_FONT:
-      break;
-    case GDK_FONT_FONTSET:
-      break;
-    default:
-      g_error ("unknown font type.");
-      break;
-    }
-
-  g_free (font);
-}
-
-gint
-_gdk_font_strlen (GdkFont     *font,
-                  const gchar *str)
-{
-  GdkFontDirectFB *font_private;
-  gint length = 0;
-
-  g_return_val_if_fail (font != NULL, -1);
-  g_return_val_if_fail (str != NULL, -1);
-
-  font_private = (GdkFontDirectFB*) font;
-
-  if (font->type == GDK_FONT_FONT)
-    {
-      guint16 *string_2b = (guint16 *)str;
-
-      while (*(string_2b++))
-        length++;
-    }
-  else if (font->type == GDK_FONT_FONTSET)
-    {
-      length = strlen (str);
-    }
-  else
-    g_error("undefined font type\n");
-
-  return length;
-}
-
-gint
-gdk_font_id (const GdkFont *font)
-{
-  const GdkFontDirectFB *font_private;
-
-  g_return_val_if_fail (font != NULL, 0);
-
-  font_private = (const GdkFontDirectFB*) font;
-
-  if (font->type == GDK_FONT_FONT)
-    {
-      return -1;
-    }
-  else
-    {
-      return 0;
-    }
-}
-
-gint
-gdk_font_equal (const GdkFont *fonta,
-                const GdkFont *fontb)
-{
-  const GdkFontDirectFB *privatea;
-  const GdkFontDirectFB *privateb;
-
-  g_return_val_if_fail (fonta != NULL, FALSE);
-  g_return_val_if_fail (fontb != NULL, FALSE);
-
-  privatea = (const GdkFontDirectFB*) fonta;
-  privateb = (const GdkFontDirectFB*) fontb;
-
-  if(fonta == fontb)
-    return TRUE;
-
-  return FALSE;
-}
-
-
-#define __GDK_FONT_X11_C__
-#include "gdkaliasdef.c"
index 199e5670458417151aaa4d2ac39e8a8a2b0317d5..62c2e89c77fb21d482db7a9053ff41d51ae73854 100644 (file)
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -41,7 +41,6 @@
 #include <gdk/gdkdrawable.h>
 #include <gdk/gdkenumtypes.h>
 #include <gdk/gdkevents.h>
-#include <gdk/gdkfont.h>
 #include <gdk/gdkgc.h>
 #include <gdk/gdkimage.h>
 #include <gdk/gdkinput.h>
index bfb1d76674b32d7c575fbaf5c09c64392fee2926..81626e80cbb60f1af66783200f317a611b6d38a8 100644 (file)
@@ -279,7 +279,6 @@ gdk_subwindow_mode_get_type G_GNUC_CONST
 gdk_visibility_state_get_type G_GNUC_CONST
 gdk_wm_decoration_get_type G_GNUC_CONST
 gdk_wm_function_get_type G_GNUC_CONST
-gdk_font_type_get_type G_GNUC_CONST
 gdk_cursor_type_get_type G_GNUC_CONST
 gdk_drag_action_get_type G_GNUC_CONST
 gdk_gc_values_mask_get_type G_GNUC_CONST
@@ -295,26 +294,6 @@ gdk_visual_type_get_type G_GNUC_CONST
 #endif
 #endif
 
-#if IN_HEADER(__GDK_FONT_H__)
-#if IN_FILE(__GDK_FONT_C__)
-gdk_font_get_type G_GNUC_CONST
-gdk_font_ref
-gdk_font_unref
-#endif
-#endif
-
-#if IN_HEADER(__GDK_FONT_H__)
-#if IN_FILE(__GDK_FONT_X11_C__)
-#ifndef GDK_DISABLE_DEPRECATED
-gdk_font_get_display
-gdk_fontset_load
-#endif
-gdk_font_id
-gdk_font_equal
-gdk_fontset_load_for_display
-#endif
-#endif
-
 #if IN_HEADER(__GDK_CAIRO_H__)
 #if IN_FILE(__GDK_CAIRO_C__)
 gdk_cairo_create
diff --git a/gdk/gdkfont.c b/gdk/gdkfont.c
deleted file mode 100644 (file)
index 4f2f39c..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef GDK_DISABLE_DEPRECATED
-
-#include "config.h"
-#include "gdkdisplay.h"
-#include "gdkfont.h"
-#include "gdkinternals.h"
-#include "gdkalias.h"
-
-GType
-gdk_font_get_type (void)
-{
-  static GType our_type = 0;
-  
-  if (our_type == 0)
-    our_type = g_boxed_type_register_static (g_intern_static_string ("GdkFont"),
-                                            (GBoxedCopyFunc)gdk_font_ref,
-                                            (GBoxedFreeFunc)gdk_font_unref);
-  return our_type;
-}
-
-/**
- * gdk_font_ref:
- * @font: a #GdkFont
- * 
- * Increases the reference count of a font by one.
- * 
- * Return value: @font
- **/
-GdkFont*
-gdk_font_ref (GdkFont *font)
-{
-  GdkFontPrivate *private;
-
-  g_return_val_if_fail (font != NULL, NULL);
-
-  private = (GdkFontPrivate*) font;
-  private->ref_count += 1;
-  return font;
-}
-
-/**
- * gdk_font_unref:
- * @font: a #GdkFont
- * 
- * Decreases the reference count of a font by one.
- * If the result is zero, destroys the font.
- **/
-void
-gdk_font_unref (GdkFont *font)
-{
-  GdkFontPrivate *private;
-  private = (GdkFontPrivate*) font;
-
-  g_return_if_fail (font != NULL);
-  g_return_if_fail (private->ref_count > 0);
-
-  private->ref_count -= 1;
-  if (private->ref_count == 0)
-    _gdk_font_destroy (font);
-}
-
-
-#define __GDK_FONT_C__
-#include "gdkaliasdef.c"
diff --git a/gdk/gdkfont.h b/gdk/gdkfont.h
deleted file mode 100644 (file)
index 79e6e2f..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#if !defined(GDK_DISABLE_DEPRECATED) || defined(GDK_COMPILATION) || defined(GTK_COMPILATION)
-
-#ifndef __GDK_FONT_H__
-#define __GDK_FONT_H__
-
-#include <gdk/gdktypes.h>
-#include <pango/pango.h>
-
-G_BEGIN_DECLS
-
-#define GDK_TYPE_FONT gdk_font_get_type ()
-
-/* Types of font.
- *   GDK_FONT_FONT: the font is an XFontStruct.
- *   GDK_FONT_FONTSET: the font is an XFontSet used for I18N.
- */
-typedef enum
-{
-  GDK_FONT_FONT,
-  GDK_FONT_FONTSET
-} GdkFontType;
-
-struct _GdkFont
-{
-  GdkFontType type;
-  gint ascent;
-  gint descent;
-};
-
-GType    gdk_font_get_type  (void) G_GNUC_CONST;
-
-GdkFont* gdk_font_ref      (GdkFont        *font);
-void    gdk_font_unref     (GdkFont        *font);
-gint    gdk_font_id        (const GdkFont  *font);
-gboolean gdk_font_equal            (const GdkFont  *fonta,
-                            const GdkFont  *fontb);
-
-GdkFont *gdk_fontset_load_for_display          (GdkDisplay           *display,
-                                               const gchar          *fontset_name);
-
-#ifndef GDK_DISABLE_DEPRECATED
-
-#ifndef GDK_MULTIHEAD_SAFE
-GdkFont* gdk_fontset_load          (const gchar          *fontset_name);
-#endif
-
-GdkDisplay * gdk_font_get_display (GdkFont *font);
-
-#endif /* GDK_DISABLE_DEPRECATED */
-
-G_END_DECLS
-
-#endif /* __GDK_FONT_H__ */
-
-#endif /* !GDK_DISABLE_DEPRECATED || GDK_COMPILATION || GTK_COMPILATION */
index 01d3f88bb9042ff6effc392478d9c5ddeddb5d74..4ddd3277ed58069b578db44bd9fbb80cec5c5beb 100644 (file)
@@ -89,18 +89,6 @@ typedef enum {
   GDK_DEBUG_EVENTLOOP     = 1 <<15
 } GdkDebugFlag;
 
-#ifndef GDK_DISABLE_DEPRECATED
-
-typedef struct _GdkFontPrivate        GdkFontPrivate;
-
-struct _GdkFontPrivate
-{
-  GdkFont font;
-  guint ref_count;
-};
-
-#endif /* GDK_DISABLE_DEPRECATED */
-
 extern GList            *_gdk_default_filters;
 extern GdkWindow       *_gdk_parent_root;
 extern gint             _gdk_error_code;
@@ -452,8 +440,6 @@ void         _gdk_drawable_end_direct_draw (gpointer priv_data);
  *****************************************/
 
 /* Font/string functions implemented in module-specific code */
-gint _gdk_font_strlen (GdkFont *font, const char *str);
-void _gdk_font_destroy (GdkFont *font);
 
 void _gdk_colormap_real_destroy (GdkColormap *colormap);
 
index c82c9f3cbf5a43b5c1949383af3d505a755f5ac6..d33e6e74acd3a93310a071fb08c67968bd9d0fb3 100644 (file)
@@ -102,7 +102,6 @@ typedef guint32 GdkNativeWindow;
 typedef struct _GdkColor             GdkColor;
 typedef struct _GdkColormap          GdkColormap;
 typedef struct _GdkCursor            GdkCursor;
-typedef struct _GdkFont                      GdkFont;
 typedef struct _GdkGC                 GdkGC;
 typedef struct _GdkImage              GdkImage;
 typedef struct _GdkRegion             GdkRegion;
index 4599fb9eff6a789f7912576473388b1fc13e29e6..73b181f681d36d5a5889708f4678fd9b65f6fdd0 100644 (file)
@@ -75,7 +75,6 @@ gdk_OBJECTS = \
        gdkdraw.obj \
        gdkenumtypes.obj \
        gdkevents.obj \
-       gdkfont.obj \
        gdkgc.obj \
        gdkglobals.obj \
        gdkimage.obj \
@@ -105,7 +104,6 @@ gdk_public_h_sources = \
        gdkdnd.h        \
        gdkdrawable.h   \
        gdkevents.h     \
-       gdkfont.h       \
        gdkgc.h         \
        gdkkeysyms.h    \
        gdkimage.h      \
index 363090b892fb8733b48561ff551c32a183f418e7..6a45b489ec7a3de47c48b5ef1a333fe2fc0b6b45 100644 (file)
@@ -32,7 +32,6 @@ libgdk_quartz_la_SOURCES =            \
        gdkdrawable-quartz.h    \
        gdkevents-quartz.c      \
        gdkeventloop-quartz.c   \
-       gdkfont-quartz.c        \
        gdkgc-quartz.c          \
        gdkgeometry-quartz.c    \
        gdkglobals-quartz.c     \
diff --git a/gdk/quartz/gdkfont-quartz.c b/gdk/quartz/gdkfont-quartz.c
deleted file mode 100644 (file)
index d4e1ba2..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/* gdkwindow-quartz.c
- *
- * Copyright (C) 2005 Imendio AB
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-#include "config.h"
-
-#include "gdkfont.h"
-
-
-GdkFont *
-gdk_fontset_load_for_display (GdkDisplay  *display,
-                             const gchar *fontset_name)
-{
-  return NULL;
-}
-
-GdkFont*
-gdk_fontset_load (const gchar *fontset_name)
-{
-  return NULL;
-}
-
-void
-_gdk_font_destroy (GdkFont *font)
-{
-  /* FIXME: Implement */
-}
-
-gint
-_gdk_font_strlen (GdkFont     *font,
-                 const gchar *str)
-{
-  /* FIXME: Implement */
-  return -1;
-}
-
-gint
-gdk_font_id (const GdkFont *font)
-{
-  /* FIXME: Implement */
-  return 0;
-}
-
-gboolean
-gdk_font_equal (const GdkFont *fonta,
-                const GdkFont *fontb)
-{
-  /* FIXME: Implement */
-  return FALSE;
-}
-
-GdkDisplay* 
-gdk_font_get_display (GdkFont* font)
-{
-  /* FIXME: Implement */ 
-  return NULL;
-}
index 0772dbec09d42fb83608fa4b4783a9ceafe6ce99..099247384ade1151d648a81f4c3f879e93239ba0 100644 (file)
@@ -40,7 +40,6 @@ libgdk_win32_la_SOURCES = \
        gdkdrawable-win32.c \
        gdkdrawable-win32.h \
        gdkevents-win32.c \
-       gdkfont-win32.c \
        gdkgc-win32.c \
        gdkgeometry-win32.c \
        gdkglobals-win32.c \
diff --git a/gdk/win32/gdkfont-win32.c b/gdk/win32/gdkfont-win32.c
deleted file mode 100644 (file)
index 73ea282..0000000
+++ /dev/null
@@ -1,1461 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * Copyright (C) 1998-2002 Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#include "config.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-
-#include "gdkfont.h"
-#include "gdkpango.h" /* gdk_pango_context_get() */
-#include "gdkdisplay.h"
-#include "gdkprivate-win32.h"
-
-static GHashTable *font_name_hash = NULL;
-static GHashTable *fontset_name_hash = NULL;
-
-static void
-gdk_font_hash_insert (GdkFontType  type,
-                     GdkFont     *font,
-                     const gchar *font_name)
-{
-  GdkFontPrivateWin32 *private = (GdkFontPrivateWin32 *) font;
-  GHashTable **hashp = (type == GDK_FONT_FONT) ?
-    &font_name_hash : &fontset_name_hash;
-
-  if (!*hashp)
-    *hashp = g_hash_table_new (g_str_hash, g_str_equal);
-
-  private->names = g_slist_prepend (private->names, g_strdup (font_name));
-  g_hash_table_insert (*hashp, private->names->data, font);
-}
-
-static void
-gdk_font_hash_remove (GdkFontType type,
-                     GdkFont    *font)
-{
-  GdkFontPrivateWin32 *private = (GdkFontPrivateWin32 *) font;
-  GSList *tmp_list;
-  GHashTable *hash = (type == GDK_FONT_FONT) ?
-    font_name_hash : fontset_name_hash;
-
-  tmp_list = private->names;
-  while (tmp_list)
-    {
-      g_hash_table_remove (hash, tmp_list->data);
-      g_free (tmp_list->data);
-      
-      tmp_list = tmp_list->next;
-    }
-
-  g_slist_free (private->names);
-  private->names = NULL;
-}
-
-static GdkFont *
-gdk_font_hash_lookup (GdkFontType  type,
-                     const gchar *font_name)
-{
-  GdkFont *result;
-  GHashTable *hash = (type == GDK_FONT_FONT) ?
-    font_name_hash : fontset_name_hash;
-
-  if (!hash)
-    return NULL;
-  else
-    {
-      result = g_hash_table_lookup (hash, font_name);
-      if (result)
-       gdk_font_ref (result);
-      
-      return result;
-    }
-}
-
-static const char *
-charset_name (DWORD charset)
-{
-  switch (charset)
-    {
-    case ANSI_CHARSET: return "ansi";
-    case DEFAULT_CHARSET: return "default";
-    case SYMBOL_CHARSET: return "symbol";
-    case SHIFTJIS_CHARSET: return "shiftjis";
-    case HANGEUL_CHARSET: return "hangeul";
-    case GB2312_CHARSET: return "gb2312";
-    case CHINESEBIG5_CHARSET: return "big5";
-    case JOHAB_CHARSET: return "johab";
-    case HEBREW_CHARSET: return "hebrew";
-    case ARABIC_CHARSET: return "arabic";
-    case GREEK_CHARSET: return "greek";
-    case TURKISH_CHARSET: return "turkish";
-    case VIETNAMESE_CHARSET: return "vietnamese";
-    case THAI_CHARSET: return "thai";
-    case EASTEUROPE_CHARSET: return "easteurope";
-    case RUSSIAN_CHARSET: return "russian";
-    case MAC_CHARSET: return "mac";
-    case BALTIC_CHARSET: return "baltic";
-    }
-  return "unknown";
-}
-
-/* This table classifies Unicode characters according to the Microsoft
- * Unicode subset numbering. This is based on the table in "Developing
- * International Software for Windows 95 and Windows NT". This is almost,
- * but not quite, the same as the official Unicode block table in
- * Blocks.txt from ftp.unicode.org. The bit number field is the bitfield
- * number as in the FONTSIGNATURE struct's fsUsb field.
- * There are some grave bugs in the table in the books. For instance
- * it claims there are Hangul at U+3400..U+4DFF while this range in
- * fact contains CJK Unified Ideographs Extension A. Also, the whole
- * block of Hangul Syllables U+AC00..U+D7A3 is missing from the book.
- */
-
-typedef enum
-{
-  U_BASIC_LATIN = 0,
-  U_LATIN_1_SUPPLEMENT = 1,
-  U_LATIN_EXTENDED_A = 2,
-  U_LATIN_EXTENDED_B = 3,
-  U_IPA_EXTENSIONS = 4,
-  U_SPACING_MODIFIER_LETTERS = 5,
-  U_COMBINING_DIACRITICAL_MARKS = 6,
-  U_BASIC_GREEK = 7,
-  U_GREEK_SYMBOLS_AND_COPTIC = 8,
-  U_CYRILLIC = 9,
-  U_ARMENIAN = 10,
-  U_HEBREW_EXTENDED = 12,
-  U_BASIC_HEBREW = 11,
-  U_BASIC_ARABIC = 13,
-  U_ARABIC_EXTENDED = 14,
-  U_DEVANAGARI = 15,
-  U_BENGALI = 16,
-  U_GURMUKHI = 17,
-  U_GUJARATI = 18,
-  U_ORIYA = 19,
-  U_TAMIL = 20,
-  U_TELUGU = 21,
-  U_KANNADA = 22,
-  U_MALAYALAM = 23,
-  U_THAI = 24,
-  U_LAO = 25,
-  U_GEORGIAN_EXTENDED = 27,
-  U_BASIC_GEORGIAN = 26,
-  U_HANGUL_JAMO = 28,
-  U_LATIN_EXTENDED_ADDITIONAL = 29,
-  U_GREEK_EXTENDED = 30,
-  U_GENERAL_PUNCTUATION = 31,
-  U_SUPERSCRIPTS_AND_SUBSCRIPTS = 32,
-  U_CURRENCY_SYMBOLS = 33,
-  U_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = 34,
-  U_LETTERLIKE_SYMBOLS = 35,
-  U_NUMBER_FORMS = 36,
-  U_ARROWS = 37,
-  U_MATHEMATICAL_OPERATORS = 38,
-  U_MISCELLANEOUS_TECHNICAL = 39,
-  U_CONTROL_PICTURES = 40,
-  U_OPTICAL_CHARACTER_RECOGNITION = 41,
-  U_ENCLOSED_ALPHANUMERICS = 42,
-  U_BOX_DRAWING = 43,
-  U_BLOCK_ELEMENTS = 44,
-  U_GEOMETRIC_SHAPES = 45,
-  U_MISCELLANEOUS_SYMBOLS = 46,
-  U_DINGBATS = 47,
-  U_CJK_SYMBOLS_AND_PUNCTUATION = 48,
-  U_HIRAGANA = 49,
-  U_KATAKANA = 50,
-  U_BOPOMOFO = 51,
-  U_HANGUL_COMPATIBILITY_JAMO = 52,
-  U_CJK_MISCELLANEOUS = 53,
-  U_ENCLOSED_CJK = 54,
-  U_CJK_COMPATIBILITY = 55,
-  U_HANGUL = 56,
-  U_HANGUL_SUPPLEMENTARY_A = 57,
-  U_HANGUL_SUPPLEMENTARY_B = 58,
-  U_CJK_UNIFIED_IDEOGRAPHS = 59,
-  U_PRIVATE_USE_AREA = 60,
-  U_CJK_COMPATIBILITY_IDEOGRAPHS = 61,
-  U_ALPHABETIC_PRESENTATION_FORMS = 62,
-  U_ARABIC_PRESENTATION_FORMS_A = 63,
-  U_COMBINING_HALF_MARKS = 64,
-  U_CJK_COMPATIBILITY_FORMS = 65,
-  U_SMALL_FORM_VARIANTS = 66,
-  U_ARABIC_PRESENTATION_FORMS_B = 67,
-  U_SPECIALS = 69,
-  U_HALFWIDTH_AND_FULLWIDTH_FORMS = 68,
-  U_LAST_PLUS_ONE
-} unicode_subset;
-
-static struct {
-  wchar_t low, high;
-  unicode_subset bit; 
-  gchar *name;
-} utab[] =
-{
-  { 0x0000, 0x007E,
-    U_BASIC_LATIN, "Basic Latin" },
-  { 0x00A0, 0x00FF,
-    U_LATIN_1_SUPPLEMENT, "Latin-1 Supplement" },
-  { 0x0100, 0x017F,
-    U_LATIN_EXTENDED_A, "Latin Extended-A" },
-  { 0x0180, 0x024F,
-    U_LATIN_EXTENDED_B, "Latin Extended-B" },
-  { 0x0250, 0x02AF,
-    U_IPA_EXTENSIONS, "IPA Extensions" },
-  { 0x02B0, 0x02FF,
-    U_SPACING_MODIFIER_LETTERS, "Spacing Modifier Letters" },
-  { 0x0300, 0x036F,
-    U_COMBINING_DIACRITICAL_MARKS, "Combining Diacritical Marks" },
-  { 0x0370, 0x03CF,
-    U_BASIC_GREEK, "Basic Greek" },
-  { 0x03D0, 0x03FF,
-    U_GREEK_SYMBOLS_AND_COPTIC, "Greek Symbols and Coptic" },
-  { 0x0400, 0x04FF,
-    U_CYRILLIC, "Cyrillic" },
-  { 0x0530, 0x058F,
-    U_ARMENIAN, "Armenian" },
-  { 0x0590, 0x05CF,
-    U_HEBREW_EXTENDED, "Hebrew Extended" },
-  { 0x05D0, 0x05FF,
-    U_BASIC_HEBREW, "Basic Hebrew" },
-  { 0x0600, 0x0652,
-    U_BASIC_ARABIC, "Basic Arabic" },
-  { 0x0653, 0x06FF,
-    U_ARABIC_EXTENDED, "Arabic Extended" },
-  { 0x0900, 0x097F,
-    U_DEVANAGARI, "Devanagari" },
-  { 0x0980, 0x09FF,
-    U_BENGALI, "Bengali" },
-  { 0x0A00, 0x0A7F,
-    U_GURMUKHI, "Gurmukhi" },
-  { 0x0A80, 0x0AFF,
-    U_GUJARATI, "Gujarati" },
-  { 0x0B00, 0x0B7F,
-    U_ORIYA, "Oriya" },
-  { 0x0B80, 0x0BFF,
-    U_TAMIL, "Tamil" },
-  { 0x0C00, 0x0C7F,
-    U_TELUGU, "Telugu" },
-  { 0x0C80, 0x0CFF,
-    U_KANNADA, "Kannada" },
-  { 0x0D00, 0x0D7F,
-    U_MALAYALAM, "Malayalam" },
-  { 0x0E00, 0x0E7F,
-    U_THAI, "Thai" },
-  { 0x0E80, 0x0EFF,
-    U_LAO, "Lao" },
-  { 0x10A0, 0x10CF,
-    U_GEORGIAN_EXTENDED, "Georgian Extended" },
-  { 0x10D0, 0x10FF,
-    U_BASIC_GEORGIAN, "Basic Georgian" },
-  { 0x1100, 0x11FF,
-    U_HANGUL_JAMO, "Hangul Jamo" },
-  { 0x1E00, 0x1EFF,
-    U_LATIN_EXTENDED_ADDITIONAL, "Latin Extended Additional" },
-  { 0x1F00, 0x1FFF,
-    U_GREEK_EXTENDED, "Greek Extended" },
-  { 0x2000, 0x206F,
-    U_GENERAL_PUNCTUATION, "General Punctuation" },
-  { 0x2070, 0x209F,
-    U_SUPERSCRIPTS_AND_SUBSCRIPTS, "Superscripts and Subscripts" },
-  { 0x20A0, 0x20CF,
-    U_CURRENCY_SYMBOLS, "Currency Symbols" },
-  { 0x20D0, 0x20FF,
-    U_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS, "Combining Diacritical Marks for Symbols" },
-  { 0x2100, 0x214F,
-    U_LETTERLIKE_SYMBOLS, "Letterlike Symbols" },
-  { 0x2150, 0x218F,
-    U_NUMBER_FORMS, "Number Forms" },
-  { 0x2190, 0x21FF,
-    U_ARROWS, "Arrows" },
-  { 0x2200, 0x22FF,
-    U_MATHEMATICAL_OPERATORS, "Mathematical Operators" },
-  { 0x2300, 0x23FF,
-    U_MISCELLANEOUS_TECHNICAL, "Miscellaneous Technical" },
-  { 0x2400, 0x243F,
-    U_CONTROL_PICTURES, "Control Pictures" },
-  { 0x2440, 0x245F,
-    U_OPTICAL_CHARACTER_RECOGNITION, "Optical Character Recognition" },
-  { 0x2460, 0x24FF,
-    U_ENCLOSED_ALPHANUMERICS, "Enclosed Alphanumerics" },
-  { 0x2500, 0x257F,
-    U_BOX_DRAWING, "Box Drawing" },
-  { 0x2580, 0x259F,
-    U_BLOCK_ELEMENTS, "Block Elements" },
-  { 0x25A0, 0x25FF,
-    U_GEOMETRIC_SHAPES, "Geometric Shapes" },
-  { 0x2600, 0x26FF,
-    U_MISCELLANEOUS_SYMBOLS, "Miscellaneous Symbols" },
-  { 0x2700, 0x27BF,
-    U_DINGBATS, "Dingbats" },
-  { 0x3000, 0x303F,
-    U_CJK_SYMBOLS_AND_PUNCTUATION, "CJK Symbols and Punctuation" },
-  { 0x3040, 0x309F,
-    U_HIRAGANA, "Hiragana" },
-  { 0x30A0, 0x30FF,
-    U_KATAKANA, "Katakana" },
-  { 0x3100, 0x312F,
-    U_BOPOMOFO, "Bopomofo" },
-  { 0x3130, 0x318F,
-    U_HANGUL_COMPATIBILITY_JAMO, "Hangul Compatibility Jamo" },
-  { 0x3190, 0x319F,
-    U_CJK_MISCELLANEOUS, "CJK Miscellaneous" },
-  { 0x3200, 0x32FF,
-    U_ENCLOSED_CJK, "Enclosed CJK" },
-  { 0x3300, 0x33FF,
-    U_CJK_COMPATIBILITY, "CJK Compatibility" },
-  /* The book claims:
-   * U+3400..U+3D2D = Hangul
-   * U+3D2E..U+44B7 = Hangul Supplementary A
-   * U+44B8..U+4DFF = Hangul Supplementary B
-   * but actually in Unicode
-   * U+3400..U+4DB5 = CJK Unified Ideographs Extension A
-   */
-  { 0x3400, 0x4DB5,
-    U_CJK_UNIFIED_IDEOGRAPHS, "CJK Unified Ideographs Extension A" },
-  { 0x4E00, 0x9FFF,
-    U_CJK_UNIFIED_IDEOGRAPHS, "CJK Unified Ideographs" },
-  /* This was missing completely from the book's table. */
-  { 0xAC00, 0xD7A3,
-    U_HANGUL, "Hangul Syllables" },
-  { 0xE000, 0xF8FF,
-    U_PRIVATE_USE_AREA, "Private Use Area" },
-  { 0xF900, 0xFAFF,
-    U_CJK_COMPATIBILITY_IDEOGRAPHS, "CJK Compatibility Ideographs" },
-  { 0xFB00, 0xFB4F,
-    U_ALPHABETIC_PRESENTATION_FORMS, "Alphabetic Presentation Forms" },
-  { 0xFB50, 0xFDFF,
-    U_ARABIC_PRESENTATION_FORMS_A, "Arabic Presentation Forms-A" },
-  { 0xFE20, 0xFE2F,
-    U_COMBINING_HALF_MARKS, "Combining Half Marks" },
-  { 0xFE30, 0xFE4F,
-    U_CJK_COMPATIBILITY_FORMS, "CJK Compatibility Forms" },
-  { 0xFE50, 0xFE6F,
-    U_SMALL_FORM_VARIANTS, "Small Form Variants" },
-  { 0xFE70, 0xFEFE,
-    U_ARABIC_PRESENTATION_FORMS_B, "Arabic Presentation Forms-B" },
-  { 0xFEFF, 0xFEFF,
-    U_SPECIALS, "Specials" },
-  { 0xFF00, 0xFFEF,
-    U_HALFWIDTH_AND_FULLWIDTH_FORMS, "Halfwidth and Fullwidth Forms" },
-  { 0xFFF0, 0xFFFD,
-    U_SPECIALS, "Specials" }
-};
-
-static void
-print_unicode_subranges (FONTSIGNATURE *fsp)
-{
-  int i;
-  gboolean checked[G_N_ELEMENTS (utab)];
-  gboolean need_comma = FALSE;
-
-  memset (checked, 0, sizeof (checked));
-
-  for (i = 0; i < G_N_ELEMENTS (utab); i++)
-    if (!checked[i]
-       && (fsp->fsUsb[utab[i].bit/32] & (1 << (utab[i].bit % 32))))
-      {
-       g_print ("%s %s", (need_comma ? "," : ""), utab[i].name);
-       need_comma = TRUE;
-       checked[i] = TRUE;
-      }
-  if (!need_comma)
-    g_print (" none!");
-  g_print ("\n");
-}
-
-static gboolean
-check_unicode_subranges (UINT           charset,
-                        FONTSIGNATURE *fsp)
-{
-  gint i;
-  gboolean retval = FALSE;
-
-  /* If the fsUsb bit array has at least one of the bits set, trust it */
-  for (i = 0; i < U_LAST_PLUS_ONE; i++)
-    if (i != U_PRIVATE_USE_AREA && (fsp->fsUsb[i/32] & (1 << (i % 32))))
-      return FALSE;
-
-  /* Otherwise, guess what subranges there should be in the font */
-  fsp->fsUsb[0] = fsp->fsUsb[1] = fsp->fsUsb[2] = fsp->fsUsb[3] = 0;
-
-#define set_bit(bitno) (fsp->fsUsb[(bitno)/32] |= (1 << ((bitno) % 32)))
-
-  /* Set Unicode subrange bits based on code pages supported.
-   * This is mostly just guesswork.
-   */
-
-#define check_cp(bit) (fsp->fsCsb[0] & (bit))
-
-  if (check_cp(FS_LATIN1))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_CURRENCY_SYMBOLS);
-      retval = TRUE;
-    }
-  if (check_cp (FS_LATIN2))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_CURRENCY_SYMBOLS);
-      retval = TRUE;
-    }
-  if (check_cp (FS_CYRILLIC))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_CYRILLIC);
-      retval = TRUE;
-    }
-  if (check_cp (FS_GREEK))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_BASIC_GREEK);
-      retval = TRUE;
-    }
-  if (check_cp (FS_TURKISH))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_CURRENCY_SYMBOLS);
-      retval = TRUE;
-    }
-  if (check_cp (FS_HEBREW))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_BASIC_HEBREW);
-      set_bit (U_HEBREW_EXTENDED);
-      retval = TRUE;
-    }
-  if (check_cp (FS_ARABIC))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_BASIC_ARABIC);
-      set_bit (U_ARABIC_EXTENDED);
-      retval = TRUE;
-    }
-  if (check_cp (FS_BALTIC))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_LATIN_EXTENDED_B);
-      retval = TRUE;
-    }
-  if (check_cp (FS_VIETNAMESE))
-    {
-      /* ??? */
-      set_bit (U_BASIC_LATIN);
-      retval = TRUE;
-    }
-  if (check_cp (FS_THAI))
-    {
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_THAI);
-      retval = TRUE;
-    }
-  if (check_cp (FS_JISJAPAN))
-    {
-      /* Based on MS Gothic */
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);
-      set_bit (U_HIRAGANA);
-      set_bit (U_KATAKANA);
-      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);
-      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);
-      retval = TRUE;
-    }
-  if (check_cp (FS_CHINESESIMP))
-    {
-      /* Based on MS Hei */
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_HIRAGANA);
-      set_bit (U_KATAKANA);
-      set_bit (U_BOPOMOFO);
-      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);
-      retval = TRUE;
-    }
-  if (check_cp (FS_WANSUNG)
-      || check_cp (FS_JOHAB))  /* ??? */
-    {
-      /* Based on GulimChe. I wonder if all Korean fonts
-       * really support this large range of Unicode subranges?
-       */
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_CYRILLIC);
-      set_bit (U_HANGUL_JAMO);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_NUMBER_FORMS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_ENCLOSED_ALPHANUMERICS);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);
-      set_bit (U_HIRAGANA);
-      set_bit (U_KATAKANA);
-      set_bit (U_HANGUL_COMPATIBILITY_JAMO);
-      set_bit (U_ENCLOSED_CJK);
-      set_bit (U_CJK_COMPATIBILITY_FORMS);
-      set_bit (U_HANGUL);
-      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);
-      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);
-      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);
-      retval = TRUE;
-    }
-  if (check_cp (FS_CHINESETRAD))
-    {
-      /* Based on MingLiU */
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);
-      set_bit (U_BOPOMOFO);
-      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);
-      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);
-      set_bit (U_SMALL_FORM_VARIANTS);
-      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);
-      retval = TRUE;
-    }
-  if (check_cp (FS_SYMBOL) || charset == MAC_CHARSET)
-    {
-      /* Non-Unicode encoding, I guess. Pretend it covers
-       * the single-byte range of values.
-       */
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      retval = TRUE;
-    }
-
-  if (retval)
-    return TRUE;
-
-  GDK_NOTE (MISC, g_print ("... No code page bits set!\n"));
-
-  /* Sigh. Not even any code page bits were set. Guess based on
-   * charset, then. These somewhat optimistic guesses are based on the
-   * table in Appendix M in the book "Developing ..."  mentioned
-   * above.
-   */
-  switch (charset)
-    {
-    case ANSI_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_COMBINING_DIACRITICAL_MARKS);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);
-      set_bit (U_CURRENCY_SYMBOLS);
-#if 0 /* I find this too hard to believe... */
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_CYRILLIC);
-      set_bit (U_BASIC_HEBREW);
-      set_bit (U_HEBREW_EXTENDED);
-      set_bit (U_BASIC_ARABIC);
-      set_bit (U_ARABIC_EXTENDED);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_NUMBER_FORMS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_ENCLOSED_ALPHANUMERICS);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      set_bit (U_HIRAGANA);
-      set_bit (U_KATAKANA);
-      set_bit (U_BOPOMOFO);
-      set_bit (U_HANGUL_COMPATIBILITY_JAMO);
-      set_bit (U_CJK_MISCELLANEOUS);
-      set_bit (U_CJK_COMPATIBILITY);
-      set_bit (U_HANGUL);
-      set_bit (U_HANGUL_SUPPLEMENTARY_A);
-      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);
-      set_bit (U_ALPHABETIC_PRESENTATION_FORMS);
-      set_bit (U_SMALL_FORM_VARIANTS);
-      set_bit (U_ARABIC_PRESENTATION_FORMS_B);
-      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);
-      set_bit (U_SPECIALS);
-#endif
-      retval = TRUE;
-      break;
-    case SYMBOL_CHARSET:
-      /* Unggh */
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      retval = TRUE;
-      break;
-    case SHIFTJIS_CHARSET:
-    case HANGEUL_CHARSET:
-    case GB2312_CHARSET:
-    case CHINESEBIG5_CHARSET:
-    case JOHAB_CHARSET:
-      /* The table really does claim these "locales" (it doesn't
-       * talk about charsets per se) cover the same Unicode
-       * subranges
-       */
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS);
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_CYRILLIC);
-      set_bit (U_HANGUL_JAMO);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_NUMBER_FORMS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_ENCLOSED_ALPHANUMERICS);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);
-      set_bit (U_HIRAGANA);
-      set_bit (U_KATAKANA);
-      set_bit (U_BOPOMOFO);
-      set_bit (U_HANGUL_COMPATIBILITY_JAMO);
-      set_bit (U_CJK_MISCELLANEOUS);
-      set_bit (U_CJK_COMPATIBILITY);
-      set_bit (U_HANGUL);
-      set_bit (U_HANGUL_SUPPLEMENTARY_A);
-      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);
-      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);
-      set_bit (U_ALPHABETIC_PRESENTATION_FORMS);
-      set_bit (U_SMALL_FORM_VARIANTS);
-      set_bit (U_ARABIC_PRESENTATION_FORMS_B);
-      set_bit (U_SPECIALS);
-      retval = TRUE;
-      break;
-    case HEBREW_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_BASIC_HEBREW);
-      set_bit (U_HEBREW_EXTENDED);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      retval = TRUE; 
-      break;
-    case ARABIC_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_BASIC_ARABIC);
-      set_bit (U_ARABIC_EXTENDED);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);
-      retval = TRUE;
-      break;
-    case GREEK_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      retval = TRUE;
-      break;
-    case TURKISH_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      retval = TRUE;
-      break;
-    case VIETNAMESE_CHARSET:
-    case THAI_CHARSET:
-      /* These are not in the table, so I have no idea */
-      break;
-    case BALTIC_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      retval = TRUE;
-      break;
-    case EASTEUROPE_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_LATIN_EXTENDED_A);
-      set_bit (U_LATIN_EXTENDED_B);
-      set_bit (U_SPACING_MODIFIER_LETTERS);
-      set_bit (U_BASIC_GREEK);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);
-      set_bit (U_CURRENCY_SYMBOLS);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      retval = TRUE;
-      break;
-    case RUSSIAN_CHARSET:
-      set_bit (U_BASIC_LATIN);
-      set_bit (U_LATIN_1_SUPPLEMENT);
-      set_bit (U_CYRILLIC);
-      set_bit (U_GENERAL_PUNCTUATION);
-      set_bit (U_LETTERLIKE_SYMBOLS);
-      set_bit (U_ARROWS);
-      set_bit (U_MATHEMATICAL_OPERATORS);
-      set_bit (U_MISCELLANEOUS_TECHNICAL);
-      set_bit (U_BOX_DRAWING);
-      set_bit (U_BLOCK_ELEMENTS);
-      set_bit (U_GEOMETRIC_SHAPES);
-      set_bit (U_MISCELLANEOUS_SYMBOLS);
-      retval = TRUE;
-      break;
-    }
-
-#undef set_bit
-  return retval;
-}
-
-static GdkWin32SingleFont *
-gdk_font_load_logfont (LOGFONT *lfp)
-{
-  GdkWin32SingleFont *singlefont;
-  HFONT hfont;
-  LOGFONT logfont;
-  CHARSETINFO csi;
-  HGDIOBJ oldfont;
-  int tries;
-  gchar face[100];
-
-  for (tries = 0; ; tries++)
-    {
-      GDK_NOTE (MISC, g_print ("... trying %ld,%ld,%ld,%ld,"
-                              "%ld,%d,%d,%d,"
-                              "%d,%d,%d,"
-                              "%d,%#.02x,\"%s\"\n",
-                              lfp->lfHeight, lfp->lfWidth,
-                              lfp->lfEscapement, lfp->lfOrientation,
-                              lfp->lfWeight, lfp->lfItalic,
-                              lfp->lfUnderline, lfp->lfStrikeOut,
-                              lfp->lfCharSet,
-                              lfp->lfOutPrecision, lfp->lfClipPrecision,
-                              lfp->lfQuality, lfp->lfPitchAndFamily,
-                              lfp->lfFaceName));
-      hfont = CreateFontIndirect (lfp);
-
-      if (hfont != NULL)
-       break;
-      
-      /* If we fail, try some similar fonts often found on Windows. */
-      if (tries == 0)
-       {
-         if (g_ascii_strcasecmp (lfp->lfFaceName, "helvetica") == 0)
-           strcpy (lfp->lfFaceName, "arial");
-         else if (g_ascii_strcasecmp (lfp->lfFaceName, "new century schoolbook") == 0)
-           strcpy (lfp->lfFaceName, "century schoolbook");
-         else if (g_ascii_strcasecmp (lfp->lfFaceName, "courier") == 0)
-           strcpy (lfp->lfFaceName, "courier new");
-         else if (g_ascii_strcasecmp (lfp->lfFaceName, "lucida") == 0)
-           strcpy (lfp->lfFaceName, "lucida sans unicode");
-         else if (g_ascii_strcasecmp (lfp->lfFaceName, "lucidatypewriter") == 0)
-           strcpy (lfp->lfFaceName, "lucida console");
-         else if (g_ascii_strcasecmp (lfp->lfFaceName, "times") == 0)
-           strcpy (lfp->lfFaceName, "times new roman");
-       }
-      else if (tries == 1)
-       {
-         if (g_ascii_strcasecmp (lfp->lfFaceName, "courier") == 0)
-           {
-             strcpy (lfp->lfFaceName, "");
-             lfp->lfPitchAndFamily |= FF_MODERN;
-           }
-         else if (g_ascii_strcasecmp (lfp->lfFaceName, "times new roman") == 0)
-           {
-             strcpy (lfp->lfFaceName, "");
-             lfp->lfPitchAndFamily |= FF_ROMAN;
-           }
-         else if (g_ascii_strcasecmp (lfp->lfFaceName, "helvetica") == 0
-                  || g_ascii_strcasecmp (lfp->lfFaceName, "lucida") == 0)
-           {
-             strcpy (lfp->lfFaceName, "");
-             lfp->lfPitchAndFamily |= FF_SWISS;
-           }
-         else
-           {
-             strcpy (lfp->lfFaceName, "");
-             lfp->lfPitchAndFamily = (lfp->lfPitchAndFamily & 0x0F) | FF_DONTCARE;
-           }
-       }
-      else
-       break;
-      tries++;
-    }
-
-  if (!hfont)
-    return NULL;
-      
-  singlefont = g_new (GdkWin32SingleFont, 1);
-  singlefont->hfont = hfont;
-  GetObject (singlefont->hfont, sizeof (logfont), &logfont);
-  oldfont = SelectObject (_gdk_display_hdc, singlefont->hfont);
-  memset (&singlefont->fs, 0, sizeof (singlefont->fs));
-  singlefont->charset = GetTextCharsetInfo (_gdk_display_hdc, &singlefont->fs, 0);
-  GetTextFace (_gdk_display_hdc, sizeof (face), face);
-  SelectObject (_gdk_display_hdc, oldfont);
-  if (TranslateCharsetInfo ((DWORD *) (gintptr) singlefont->charset, &csi,
-                           TCI_SRCCHARSET)
-      && singlefont->charset != MAC_CHARSET)
-    singlefont->codepage = csi.ciACP;
-  else
-    singlefont->codepage = 0;
-
-  GDK_NOTE (MISC, (g_print ("... = %p %s cs %s cp%d\n",
-                           singlefont->hfont, face,
-                           charset_name (singlefont->charset),
-                           singlefont->codepage),
-                  g_print ("... Unicode subranges:"),
-                  print_unicode_subranges (&singlefont->fs)));
-  if (check_unicode_subranges (singlefont->charset, &singlefont->fs))
-    GDK_NOTE (MISC, (g_print ("... Guesstimated Unicode subranges:"),
-                    print_unicode_subranges (&singlefont->fs)));
-
-  return singlefont;
-}
-
-static GdkWin32SingleFont *
-gdk_font_load_internal (const gchar *font_name)
-{
-  LOGFONT logfont;
-
-  char *fn;
-  int numfields, n1, n2;
-  char foundry[32], family[100], weight[32], slant[32], set_width[32],
-    spacing[32], registry[32], encoding[32];
-  char pixel_size[10], point_size[10], res_x[10], res_y[10], avg_width[10];
-  int c;
-  char *p;
-  int logpixelsy;
-
-  g_return_val_if_fail (font_name != NULL, NULL);
-
-  GDK_NOTE (MISC, g_print ("gdk_font_load_internal: %s\n", font_name));
-
-  numfields = sscanf (font_name,
-                     "-%30[^-]-%100[^-]-%30[^-]-%30[^-]-%30[^-]-%n",
-                     foundry,
-                     family,
-                     weight,
-                     slant,
-                     set_width,
-                     &n1);
-  if (numfields == 0)
-    {
-      /* Probably a plain Windows font name */
-      logfont.lfHeight = 0;
-      logfont.lfWidth = 0;
-      logfont.lfEscapement = 0;
-      logfont.lfOrientation = 0;
-      logfont.lfWeight = FW_DONTCARE;
-      logfont.lfItalic = FALSE;
-      logfont.lfUnderline = FALSE;
-      logfont.lfStrikeOut = FALSE;
-      logfont.lfCharSet = ANSI_CHARSET;
-      logfont.lfOutPrecision = OUT_TT_ONLY_PRECIS;
-      logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
-      logfont.lfQuality = PROOF_QUALITY;
-      logfont.lfPitchAndFamily = DEFAULT_PITCH;
-      fn = g_filename_from_utf8 (font_name, -1, NULL, NULL, NULL);
-      strcpy (logfont.lfFaceName, fn);
-      g_free (fn);
-    }
-  else if (numfields != 5)
-    {
-      g_warning ("gdk_font_load: font name %s illegal", font_name);
-      return NULL;
-    }
-  else
-    {
-      /* It must be a XLFD name */
-
-      /* Check for hex escapes in the font family,
-       * put in there by logfont_to_xlfd. Convert them in-place.
-       */
-      p = family;
-      while (*p)
-       {
-         if (*p == '%' && isxdigit (p[1]) && isxdigit (p[2]))
-           {
-             sscanf (p+1, "%2x", &c);
-             *p = c;
-             strcpy (p+1, p+3);
-           }
-         p++;
-       }
-
-      /* Skip add_style which often is empty in the requested font name */
-      while (font_name[n1] && font_name[n1] != '-')
-       n1++;
-      numfields++;
-
-      numfields += sscanf (font_name + n1,
-                          "-%8[^-]-%8[^-]-%8[^-]-%8[^-]-%30[^-]-%8[^-]-%30[^-]-%30[^-]%n",
-                          pixel_size,
-                          point_size,
-                          res_x,
-                          res_y,
-                          spacing,
-                          avg_width,
-                          registry,
-                          encoding,
-                          &n2);
-
-      if (numfields != 14 || font_name[n1 + n2] != '\0')
-       {
-         g_warning ("gdk_font_load: font name %s illegal", font_name);
-         return NULL;
-       }
-
-      logpixelsy = GetDeviceCaps (_gdk_display_hdc, LOGPIXELSY);
-
-      if (strcmp (pixel_size, "*") == 0)
-       if (strcmp (point_size, "*") == 0)
-         logfont.lfHeight = 0;
-       else
-         logfont.lfHeight = -(int) (((double) atoi (point_size))/720.*logpixelsy);
-      else
-       logfont.lfHeight = -atoi (pixel_size);
-
-      logfont.lfWidth = 0;
-      logfont.lfEscapement = 0;
-      logfont.lfOrientation = 0;
-
-      if (g_ascii_strcasecmp (weight, "thin") == 0)
-       logfont.lfWeight = FW_THIN;
-      else if (g_ascii_strcasecmp (weight, "extralight") == 0)
-       logfont.lfWeight = FW_EXTRALIGHT;
-      else if (g_ascii_strcasecmp (weight, "ultralight") == 0)
-#ifdef FW_ULTRALIGHT
-       logfont.lfWeight = FW_ULTRALIGHT;
-#else
-       logfont.lfWeight = FW_EXTRALIGHT; /* In fact, FW_ULTRALIGHT really is 
-                                          * defined as FW_EXTRALIGHT anyway.
-                                          */
-#endif
-      else if (g_ascii_strcasecmp (weight, "light") == 0)
-       logfont.lfWeight = FW_LIGHT;
-      else if (g_ascii_strcasecmp (weight, "normal") == 0)
-       logfont.lfWeight = FW_NORMAL;
-      else if (g_ascii_strcasecmp (weight, "regular") == 0)
-       logfont.lfWeight = FW_REGULAR;
-      else if (g_ascii_strcasecmp (weight, "medium") == 0)
-       logfont.lfWeight = FW_MEDIUM;
-      else if (g_ascii_strcasecmp (weight, "semibold") == 0)
-       logfont.lfWeight = FW_SEMIBOLD;
-      else if (g_ascii_strcasecmp (weight, "demibold") == 0)
-#ifdef FW_DEMIBOLD
-       logfont.lfWeight = FW_DEMIBOLD;
-#else
-       logfont.lfWeight = FW_SEMIBOLD; /* As above */
-#endif
-      else if (g_ascii_strcasecmp (weight, "bold") == 0)
-       logfont.lfWeight = FW_BOLD;
-      else if (g_ascii_strcasecmp (weight, "extrabold") == 0)
-       logfont.lfWeight = FW_EXTRABOLD;
-      else if (g_ascii_strcasecmp (weight, "ultrabold") == 0)
-#ifdef FW_ULTRABOLD
-       logfont.lfWeight = FW_ULTRABOLD;
-#else
-       logfont.lfWeight = FW_EXTRABOLD; /* As above */
-#endif
-      else if (g_ascii_strcasecmp (weight, "heavy") == 0)
-       logfont.lfWeight = FW_HEAVY;
-      else if (g_ascii_strcasecmp (weight, "black") == 0)
-#ifdef FW_BLACK
-       logfont.lfWeight = FW_BLACK;
-#else
-       logfont.lfWeight = FW_HEAVY;    /* As above */
-#endif
-      else
-       logfont.lfWeight = FW_DONTCARE;
-
-      if (g_ascii_strcasecmp (slant, "italic") == 0
-         || g_ascii_strcasecmp (slant, "oblique") == 0
-         || g_ascii_strcasecmp (slant, "i") == 0
-         || g_ascii_strcasecmp (slant, "o") == 0)
-       logfont.lfItalic = TRUE;
-      else
-       logfont.lfItalic = FALSE;
-      logfont.lfUnderline = FALSE;
-      logfont.lfStrikeOut = FALSE;
-      if (g_ascii_strcasecmp (registry, "iso8859") == 0)
-       if (strcmp (encoding, "1") == 0)
-         logfont.lfCharSet = ANSI_CHARSET;
-       else if (strcmp (encoding, "2") == 0)
-         logfont.lfCharSet = EASTEUROPE_CHARSET;
-       else if (strcmp (encoding, "7") == 0)
-         logfont.lfCharSet = GREEK_CHARSET;
-       else if (strcmp (encoding, "8") == 0)
-         logfont.lfCharSet = HEBREW_CHARSET;
-       else if (strcmp (encoding, "9") == 0)
-         logfont.lfCharSet = TURKISH_CHARSET;
-       else
-         logfont.lfCharSet = ANSI_CHARSET; /* XXX ??? */
-      else if (g_ascii_strcasecmp (registry, "jisx0208.1983") == 0)
-       logfont.lfCharSet = SHIFTJIS_CHARSET;
-      else if (g_ascii_strcasecmp (registry, "ksc5601.1987") == 0)
-       logfont.lfCharSet = HANGEUL_CHARSET;
-      else if (g_ascii_strcasecmp (registry, "gb2312.1980") == 0)
-       logfont.lfCharSet = GB2312_CHARSET;
-      else if (g_ascii_strcasecmp (registry, "big5") == 0)
-       logfont.lfCharSet = CHINESEBIG5_CHARSET;
-      else if (g_ascii_strcasecmp (registry, "windows") == 0
-              || g_ascii_strcasecmp (registry, "microsoft") == 0)
-       if (g_ascii_strcasecmp (encoding, "symbol") == 0)
-         logfont.lfCharSet = SYMBOL_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "shiftjis") == 0)
-         logfont.lfCharSet = SHIFTJIS_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "gb2312") == 0)
-         logfont.lfCharSet = GB2312_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "hangeul") == 0)
-         logfont.lfCharSet = HANGEUL_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "big5") == 0)
-         logfont.lfCharSet = CHINESEBIG5_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "johab") == 0)
-         logfont.lfCharSet = JOHAB_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "hebrew") == 0)
-         logfont.lfCharSet = HEBREW_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "arabic") == 0)
-         logfont.lfCharSet = ARABIC_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "greek") == 0)
-         logfont.lfCharSet = GREEK_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "turkish") == 0)
-         logfont.lfCharSet = TURKISH_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "easteurope") == 0)
-         logfont.lfCharSet = EASTEUROPE_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "russian") == 0)
-         logfont.lfCharSet = RUSSIAN_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "mac") == 0)
-         logfont.lfCharSet = MAC_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "baltic") == 0)
-         logfont.lfCharSet = BALTIC_CHARSET;
-       else if (g_ascii_strcasecmp (encoding, "cp1251") == 0)
-         logfont.lfCharSet = RUSSIAN_CHARSET;
-       else
-         logfont.lfCharSet = ANSI_CHARSET; /* XXX ??? */
-      else
-       logfont.lfCharSet = ANSI_CHARSET; /* XXX ??? */
-      logfont.lfOutPrecision = OUT_TT_PRECIS;
-      logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
-      logfont.lfQuality = PROOF_QUALITY;
-      if (g_ascii_strcasecmp (spacing, "m") == 0)
-       logfont.lfPitchAndFamily = FIXED_PITCH;
-      else if (g_ascii_strcasecmp (spacing, "p") == 0)
-       logfont.lfPitchAndFamily = VARIABLE_PITCH;
-      else 
-       logfont.lfPitchAndFamily = DEFAULT_PITCH;
-      fn = g_filename_from_utf8 (family, -1, NULL, NULL, NULL);
-      strcpy (logfont.lfFaceName, fn);
-      g_free (fn);
-    }
-
-  return gdk_font_load_logfont (&logfont);
-}
-
-static GdkFont *
-gdk_font_from_one_singlefont (GdkWin32SingleFont *singlefont)
-{
-  GdkFont *font;
-  GdkFontPrivateWin32 *private;
-  HGDIOBJ oldfont;
-  TEXTMETRIC textmetric;
-
-  private = g_new (GdkFontPrivateWin32, 1);
-  font = (GdkFont*) private;
-
-  private->base.ref_count = 1;
-  private->names = NULL;
-  private->fonts = g_slist_append (NULL, singlefont);
-
-  /* Pretend all fonts are fontsets... Gtktext and gtkentry work better
-   * that way, they use wide chars, which is necessary for non-ASCII
-   * chars to work. (Yes, even Latin-1, as we use Unicode internally.)
-   */
-  font->type = GDK_FONT_FONTSET;
-  oldfont = SelectObject (_gdk_display_hdc, singlefont->hfont);
-  GetTextMetrics (_gdk_display_hdc, &textmetric);
-  SelectObject (_gdk_display_hdc, oldfont);
-  font->ascent = textmetric.tmAscent;
-  font->descent = textmetric.tmDescent;
-
-  GDK_NOTE (MISC, g_print ("... asc %d desc %d\n",
-                          font->ascent, font->descent));
-
-  return font;
-}
-
-GdkFont*
-gdk_fontset_load (const gchar *fontset_name)
-{
-  GdkFont *font;
-  GdkFontPrivateWin32 *private;
-  GdkWin32SingleFont *singlefont;
-  HGDIOBJ oldfont;
-  TEXTMETRIC textmetric;
-  gchar *fs;
-  gchar *b, *p, *s;
-
-  g_return_val_if_fail (fontset_name != NULL, NULL);
-
-  font = gdk_font_hash_lookup (GDK_FONT_FONTSET, fontset_name);
-  if (font)
-    return font;
-
-  s = fs = g_strdup (fontset_name);
-  while (*s && isspace (*s))
-    s++;
-
-  g_return_val_if_fail (*s, NULL);
-
-  private = g_new (GdkFontPrivateWin32, 1);
-  font = (GdkFont*) private;
-
-  private->base.ref_count = 1;
-  private->names = NULL;
-  private->fonts = NULL;
-
-  font->type = GDK_FONT_FONTSET;
-  font->ascent = 0;
-  font->descent = 0;
-
-  while (TRUE)
-    {
-      if ((p = strchr (s, ',')) != NULL)
-       b = p;
-      else
-       b = s + strlen (s);
-
-      while (isspace (b[-1]))
-       b--;
-      *b = '\0';
-      singlefont = gdk_font_load_internal (s);
-      if (singlefont)
-       {
-         private->fonts = g_slist_append (private->fonts, singlefont);
-         oldfont = SelectObject (_gdk_display_hdc, singlefont->hfont);
-         GetTextMetrics (_gdk_display_hdc, &textmetric);
-         SelectObject (_gdk_display_hdc, oldfont);
-         font->ascent = MAX (font->ascent, textmetric.tmAscent);
-         font->descent = MAX (font->descent, textmetric.tmDescent);
-       }
-      if (p)
-       {
-         s = p + 1;
-         while (*s && isspace (*s))
-           s++;
-       }
-      else
-       break;
-      if (!*s)
-       break;
-    }
-  
-  g_free (fs);
-
-  gdk_font_hash_insert (GDK_FONT_FONTSET, font, fontset_name);
-
-  return font;
-}
-
-GdkFont*
-gdk_fontset_load_for_display (GdkDisplay  *display,
-                             const gchar *fontset_name)
-{
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
-  
-  return gdk_fontset_load (fontset_name);
-}
-
-void
-_gdk_font_destroy (GdkFont *font)
-{
-  GdkFontPrivateWin32 *private = (GdkFontPrivateWin32 *) font;
-  GdkWin32SingleFont *singlefont;
-  GSList *list;
-
-  singlefont = (GdkWin32SingleFont *) private->fonts->data;
-  GDK_NOTE (MISC, g_print ("_gdk_font_destroy %p\n",
-                          singlefont->hfont));
-
-  gdk_font_hash_remove (font->type, font);
-  
-  switch (font->type)
-    {
-    case GDK_FONT_FONT:
-      DeleteObject (singlefont->hfont);
-      break;
-      
-    case GDK_FONT_FONTSET:
-      list = private->fonts;
-      while (list)
-       {
-         singlefont = (GdkWin32SingleFont *) list->data;
-         DeleteObject (singlefont->hfont);
-         
-         list = list->next;
-       }
-      g_slist_free (private->fonts);
-      break;
-    }
-  g_free (font);
-}
-
-gint
-_gdk_font_strlen (GdkFont     *font,
-                 const gchar *str)
-{
-  g_return_val_if_fail (font != NULL, -1);
-  g_return_val_if_fail (str != NULL, -1);
-
-  return strlen (str);
-}
-
-gint
-gdk_font_id (const GdkFont *font)
-{
-  const GdkFontPrivateWin32 *private;
-
-  g_return_val_if_fail (font != NULL, 0);
-
-  private = (const GdkFontPrivateWin32 *) font;
-
-  /* FIXME: What to do on Win64? */
-  if (font->type == GDK_FONT_FONT)
-    return (gint) (gintptr) ((GdkWin32SingleFont *) private->fonts->data)->hfont;
-  else
-    return 0;
-}
-
-gboolean
-gdk_font_equal (const GdkFont *fonta,
-                const GdkFont *fontb)
-{
-  const GdkFontPrivateWin32 *privatea;
-  const GdkFontPrivateWin32 *privateb;
-
-  g_return_val_if_fail (fonta != NULL, FALSE);
-  g_return_val_if_fail (fontb != NULL, FALSE);
-
-  privatea = (const GdkFontPrivateWin32 *) fonta;
-  privateb = (const GdkFontPrivateWin32 *) fontb;
-
-  if (fonta->type == GDK_FONT_FONT && fontb->type == GDK_FONT_FONT)
-    return (((GdkWin32SingleFont *) privatea->fonts->data)->hfont
-           == ((GdkWin32SingleFont *) privateb->fonts->data)->hfont);
-  else if (fonta->type == GDK_FONT_FONTSET && fontb->type == GDK_FONT_FONTSET)
-    {
-      GSList *lista = privatea->fonts;
-      GSList *listb = privateb->fonts;
-
-      while (lista && listb)
-       {
-         if (((GdkWin32SingleFont *) lista->data)->hfont
-             != ((GdkWin32SingleFont *) listb->data)->hfont)
-           return FALSE;
-         lista = lista->next;
-         listb = listb->next;
-       }
-      if (lista || listb)
-       return FALSE;
-      else
-       return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-/* Return the Unicode Subset bitfield number for a Unicode character */
-
-static int
-unicode_classify (wchar_t wc)
-{
-  int min = 0;
-  int max = G_N_ELEMENTS (utab) - 1;
-  int mid;
-
-  while (max >= min)
-    {
-      mid = (min + max) / 2;
-      if (utab[mid].high < wc)
-       min = mid + 1;
-      else if (wc < utab[mid].low)
-       max = mid - 1;
-      else if (utab[mid].low <= wc && wc <= utab[mid].high)
-       return utab[mid].bit;
-      else
-       break;
-    }
-  /* Fallback... returning -1 might cause problems. Returning
-   * U_BASIC_LATIN won't help handling strange characters, but won't
-   * do harm either.
-   */
-  return U_BASIC_LATIN;
-}
-
-void
-_gdk_wchar_text_handle (GdkFont       *font,
-                      const wchar_t *wcstr,
-                      int            wclen,
-                      void         (*handler)(GdkWin32SingleFont *,
-                                              const wchar_t *,
-                                              int,
-                                              void *),
-                      void          *arg)
-{
-  GdkFontPrivateWin32 *private;
-  GdkWin32SingleFont *singlefont;
-  GSList *list;
-  int  block;
-  const wchar_t *start, *end, *wcp;
-
-  wcp = wcstr;
-  end = wcp + wclen;
-  private = (GdkFontPrivateWin32 *) font;
-
-  g_assert (private->base.ref_count > 0);
-
-  GDK_NOTE (MISC, g_print ("_gdk_wchar_text_handle: "));
-
-  while (wcp < end)
-    {
-      /* Split Unicode string into pieces of the same class */
-      start = wcp;
-      block = unicode_classify (*wcp);
-      while (wcp + 1 < end && unicode_classify (wcp[1]) == block)
-       wcp++;
-
-      /* Find a font in the fontset that can handle this class */
-      list = private->fonts;
-      while (list)
-       {
-         singlefont = (GdkWin32SingleFont *) list->data;
-         
-         if (singlefont->fs.fsUsb[block/32] & (1 << (block % 32)))
-           break;
-
-         list = list->next;
-       }
-
-      if (!list)
-       singlefont = NULL;
-
-      GDK_NOTE (MISC, g_print ("%" G_GSIZE_FORMAT ":%" G_GSIZE_FORMAT ":%d:%p ",
-                              start-wcstr, wcp-wcstr, block,
-                              (singlefont ? singlefont->hfont : 0)));
-
-      /* Call the callback function */
-      (*handler) (singlefont, start, wcp+1 - start, arg);
-      wcp++;
-    }
-  GDK_NOTE (MISC, g_print ("\n"));
-}
-
-GdkDisplay* 
-gdk_font_get_display (GdkFont* font)
-{
-  return _gdk_display;
-}
index a4de7885c357441ab277c23df8867573c2bb667c..031ef72c6dc6347dcb826dc2a7157b19f0a335f7 100644 (file)
@@ -120,7 +120,6 @@ GdkScreen *GDK_WINDOW_SCREEN(GObject *win);
 typedef struct _GdkColormapPrivateWin32 GdkColormapPrivateWin32;
 typedef struct _GdkCursorPrivate        GdkCursorPrivate;
 typedef struct _GdkWin32SingleFont      GdkWin32SingleFont;
-typedef struct _GdkFontPrivateWin32     GdkFontPrivateWin32;
 typedef struct _GdkGCWin32             GdkGCWin32;
 typedef struct _GdkGCWin32Class                GdkGCWin32Class;
 
@@ -138,17 +137,6 @@ struct _GdkWin32SingleFont
   FONTSIGNATURE fs;
 };
 
-#ifndef GDK_DISABLE_DEPRECATED
-
-struct _GdkFontPrivateWin32
-{
-  GdkFontPrivate base;
-  GSList *fonts;               /* List of GdkWin32SingleFonts */
-  GSList *names;
-};
-
-#endif /* GDK_DISABLE_DEPRECATED */
-
 struct _GdkVisualClass
 {
   GObjectClass parent_class;
@@ -292,15 +280,6 @@ void    _gdk_selection_property_delete (GdkWindow *);
 
 void    _gdk_dropfiles_store (gchar *data);
 
-void    _gdk_wchar_text_handle    (GdkFont       *font,
-                                  const wchar_t *wcstr,
-                                  int            wclen,
-                                  void         (*handler)(GdkWin32SingleFont *,
-                                                          const wchar_t *,
-                                                          int,
-                                                          void *),
-                                  void          *arg);
-
 void       _gdk_push_modal_window   (GdkWindow *window);
 void       _gdk_remove_modal_window (GdkWindow *window);
 GdkWindow *_gdk_modal_current       (void);
index 5a4fa418f39f1c89bc0cfffb660f98588c82e6dd..1b3a993f0c1e372fc9b71c498111ef6e88d9f6e7 100644 (file)
@@ -38,7 +38,6 @@ gdk_win32_OBJECTS = \
        gdkdisplay-win32.obj \
        gdkdrawable-win32.obj \
        gdkevents-win32.obj \
-       gdkfont-win32.obj \
        gdkgc-win32.obj \
        gdkgeometry-win32.obj \
        gdkglobals-win32.obj \
index 394da9575ae3cdffa2a8ccb82f2106c20e03efe9..31d61a6792fe83ff4a534821f7ed27e0a1d4a2b2 100644 (file)
@@ -37,7 +37,6 @@ libgdk_x11_la_SOURCES =       \
        gdkeventsource.h        \
        gdkeventtranslator.c    \
        gdkeventtranslator.h    \
-       gdkfont-x11.c           \
        gdkgc-x11.c             \
        gdkgeometry-x11.c       \
        gdkglobals-x11.c        \
diff --git a/gdk/x11/gdkfont-x11.c b/gdk/x11/gdkfont-x11.c
deleted file mode 100644 (file)
index 43282e5..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#undef GDK_DISABLE_DEPRECATED
-
-#include "config.h"
-#include <X11/Xlib.h>
-#include <X11/Xos.h>
-#include <locale.h>
-
-#include "gdkx.h"
-#include "gdkfont.h"
-#include "gdkprivate-x11.h"
-#include "gdkinternals.h"
-#include "gdkdisplay-x11.h"
-#include "gdkscreen-x11.h"
-#include "gdkalias.h"
-
-typedef struct _GdkFontPrivateX        GdkFontPrivateX;
-
-struct _GdkFontPrivateX
-{
-  GdkFontPrivate base;
-  /* XFontStruct *xfont; */
-  /* generic pointer point to XFontStruct or XFontSet */
-  gpointer xfont;
-  GdkDisplay *display;
-
-  GSList *names;
-  XID xid;
-};
-
-static GHashTable *
-gdk_font_name_hash_get (GdkDisplay *display)
-{
-  GHashTable *result;
-  static GQuark font_name_quark = 0;
-
-  if (!font_name_quark)
-    font_name_quark = g_quark_from_static_string ("gdk-font-hash");
-
-  result = g_object_get_qdata (G_OBJECT (display), font_name_quark);
-
-  if (!result)
-    {
-      result = g_hash_table_new (g_str_hash, g_str_equal);
-      g_object_set_qdata_full (G_OBJECT (display),
-         font_name_quark, result, (GDestroyNotify) g_hash_table_destroy);
-    }
-
-  return result;
-}
-
-static GHashTable *
-gdk_fontset_name_hash_get (GdkDisplay *display)
-{
-  GHashTable *result;
-  static GQuark fontset_name_quark = 0;
-  
-  if (!fontset_name_quark)
-    fontset_name_quark = g_quark_from_static_string ("gdk-fontset-hash");
-
-  result = g_object_get_qdata (G_OBJECT (display), fontset_name_quark);
-
-  if (!result)
-    {
-      result = g_hash_table_new (g_str_hash, g_str_equal);
-      g_object_set_qdata_full (G_OBJECT (display),
-         fontset_name_quark, result, (GDestroyNotify) g_hash_table_destroy);
-    }
-
-  return result;
-}
-
-/** 
- * gdk_font_get_display:
- * @font: the #GdkFont.
- *
- * Returns the #GdkDisplay for @font.
- *
- * Returns: the corresponding #GdkDisplay.
- *
- * Since: 2.2
- **/
-GdkDisplay* 
-gdk_font_get_display (GdkFont* font)
-{
-  return ((GdkFontPrivateX *)font)->display;
-}
-
-static void
-gdk_font_hash_insert (GdkFontType  type, 
-                     GdkFont     *font, 
-                     const gchar *font_name)
-{
-  GdkFontPrivateX *private = (GdkFontPrivateX *)font;
-  GHashTable *hash = (type == GDK_FONT_FONT) ?
-    gdk_font_name_hash_get (private->display) : gdk_fontset_name_hash_get (private->display);
-
-  private->names = g_slist_prepend (private->names, g_strdup (font_name));
-  g_hash_table_insert (hash, private->names->data, font);
-}
-
-static void
-gdk_font_hash_remove (GdkFontType type, 
-                     GdkFont    *font)
-{
-  GdkFontPrivateX *private = (GdkFontPrivateX *)font;
-  GSList *tmp_list;
-  GHashTable *hash = (type == GDK_FONT_FONT) ?
-    gdk_font_name_hash_get (private->display) : gdk_fontset_name_hash_get (private->display);
-
-  tmp_list = private->names;
-  while (tmp_list)
-    {
-      g_hash_table_remove (hash, tmp_list->data);
-      g_free (tmp_list->data);
-      
-      tmp_list = tmp_list->next;
-    }
-
-  g_slist_free (private->names);
-  private->names = NULL;
-}
-
-static GdkFont *
-gdk_font_hash_lookup (GdkDisplay  *display, 
-                     GdkFontType  type, 
-                     const gchar *font_name)
-{
-  GdkFont *result;
-  GHashTable *hash;
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
-
-  hash = (type == GDK_FONT_FONT) ? gdk_font_name_hash_get (display) : 
-                                  gdk_fontset_name_hash_get (display);
-  if (!hash)
-    return NULL;
-  else
-    {
-      result = g_hash_table_lookup (hash, font_name);
-      if (result)
-       gdk_font_ref (result);
-      
-      return result;
-    }
-}
-
-/**
- * gdk_fontset_load_for_display:
- * @display: a #GdkDisplay
- * @fontset_name: a comma-separated list of XLFDs describing
- *   the component fonts of the fontset to load.
- * @returns: a #GdkFont, or %NULL if the fontset could not be loaded.
- * 
- * Loads a fontset for use on @display.
- *
- * The fontset may be newly loaded or looked up in a cache. 
- * You should make no assumptions about the initial reference count.
- *
- * Since: 2.2
- */
-GdkFont *
-gdk_fontset_load_for_display (GdkDisplay  *display,
-                             const gchar *fontset_name)
-{
-  GdkFont *font;
-  GdkFontPrivateX *private;
-  XFontSet fontset;
-  gint  missing_charset_count;
-  gchar **missing_charset_list;
-  gchar *def_string;
-
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
-  
-  font = gdk_font_hash_lookup (display, GDK_FONT_FONTSET, fontset_name);
-  if (font)
-    return font;
-
-  private = g_new (GdkFontPrivateX, 1);
-  font = (GdkFont*) private;
-
-  private->display = display;
-  fontset = XCreateFontSet (GDK_DISPLAY_XDISPLAY (display), fontset_name,
-                           &missing_charset_list, &missing_charset_count,
-                           &def_string);
-
-  if (missing_charset_count)
-    {
-      gint i;
-      g_printerr ("The font \"%s\" does not support all the required character sets for the current locale \"%s\"\n",
-                 fontset_name, setlocale (LC_ALL, NULL));
-      for (i=0;i<missing_charset_count;i++)
-       g_printerr ("  (Missing character set \"%s\")\n",
-                    missing_charset_list[i]);
-      XFreeStringList (missing_charset_list);
-    }
-
-  private->base.ref_count = 1;
-
-  if (!fontset)
-    {
-      g_free (font);
-      return NULL;
-    }
-  else
-    {
-      gint num_fonts;
-      gint i;
-      XFontStruct **font_structs;
-      gchar **font_names;
-      
-      private->xfont = fontset;
-      font->type = GDK_FONT_FONTSET;
-      num_fonts = XFontsOfFontSet (fontset, &font_structs, &font_names);
-
-      font->ascent = font->descent = 0;
-      
-      for (i = 0; i < num_fonts; i++)
-       {
-         font->ascent = MAX (font->ascent, font_structs[i]->ascent);
-         font->descent = MAX (font->descent, font_structs[i]->descent);
-       }
-      private->names = NULL;
-      gdk_font_hash_insert (GDK_FONT_FONTSET, font, fontset_name);
-      
-      return font;
-    }
-}
-
-/**
- * gdk_fontset_load:
- * @fontset_name: a comma-separated list of XLFDs describing
- *     the component fonts of the fontset to load.
- * 
- * Loads a fontset.
- *
- * The fontset may be newly loaded or looked up in a cache. 
- * You should make no assumptions about the initial reference count.
- * 
- * Return value: a #GdkFont, or %NULL if the fontset could not be loaded.
- **/
-GdkFont*
-gdk_fontset_load (const gchar *fontset_name)
-{
-  return gdk_fontset_load_for_display (gdk_display_get_default (), fontset_name);
-}
-
-void
-_gdk_font_destroy (GdkFont *font)
-{
-  GdkFontPrivateX *private = (GdkFontPrivateX *)font;
-  
-  gdk_font_hash_remove (font->type, font);
-      
-  switch (font->type)
-    {
-    case GDK_FONT_FONT:
-      _gdk_xid_table_remove (private->display, private->xid);
-      XFreeFont (GDK_DISPLAY_XDISPLAY (private->display),
-                 (XFontStruct *) private->xfont);
-      break;
-    case GDK_FONT_FONTSET:
-      XFreeFontSet (GDK_DISPLAY_XDISPLAY (private->display),
-                   (XFontSet) private->xfont);
-      break;
-    default:
-      g_error ("unknown font type.");
-      break;
-    }
-  g_free (font);
-}
-
-gint
-_gdk_font_strlen (GdkFont     *font,
-                 const gchar *str)
-{
-  GdkFontPrivateX *font_private;
-  gint length = 0;
-
-  g_return_val_if_fail (font != NULL, -1);
-  g_return_val_if_fail (str != NULL, -1);
-
-  font_private = (GdkFontPrivateX*) font;
-
-  if (font->type == GDK_FONT_FONT)
-    {
-      XFontStruct *xfont = (XFontStruct *) font_private->xfont;
-      if ((xfont->min_byte1 == 0) && (xfont->max_byte1 == 0))
-       {
-         length = strlen (str);
-       }
-      else
-       {
-         guint16 *string_2b = (guint16 *)str;
-           
-         while (*(string_2b++))
-           length++;
-       }
-    }
-  else if (font->type == GDK_FONT_FONTSET)
-    {
-      length = strlen (str);
-    }
-  else
-    g_error("undefined font type\n");
-
-  return length;
-}
-
-/**
- * gdk_font_id:
- * @font: a #GdkFont.
- * 
- * Returns the X Font ID for the given font. 
- * 
- * Return value: the numeric X Font ID
- **/
-gint
-gdk_font_id (const GdkFont *font)
-{
-  const GdkFontPrivateX *font_private;
-
-  g_return_val_if_fail (font != NULL, 0);
-
-  font_private = (const GdkFontPrivateX*) font;
-
-  if (font->type == GDK_FONT_FONT)
-    {
-      return ((XFontStruct *) font_private->xfont)->fid;
-    }
-  else
-    {
-      return 0;
-    }
-}
-
-/**
- * gdk_font_equal:
- * @fonta: a #GdkFont.
- * @fontb: another #GdkFont.
- * 
- * Compares two fonts for equality. Single fonts compare equal
- * if they have the same X font ID. This operation does
- * not currently work correctly for fontsets.
- * 
- * Return value: %TRUE if the fonts are equal.
- **/
-gboolean
-gdk_font_equal (const GdkFont *fonta,
-                const GdkFont *fontb)
-{
-  const GdkFontPrivateX *privatea;
-  const GdkFontPrivateX *privateb;
-
-  g_return_val_if_fail (fonta != NULL, FALSE);
-  g_return_val_if_fail (fontb != NULL, FALSE);
-
-  privatea = (const GdkFontPrivateX*) fonta;
-  privateb = (const GdkFontPrivateX*) fontb;
-
-  if (fonta->type == GDK_FONT_FONT && fontb->type == GDK_FONT_FONT)
-    {
-      return (((XFontStruct *) privatea->xfont)->fid ==
-             ((XFontStruct *) privateb->xfont)->fid);
-    }
-  else if (fonta->type == GDK_FONT_FONTSET && fontb->type == GDK_FONT_FONTSET)
-    {
-      gchar *namea, *nameb;
-
-      namea = XBaseFontNameListOfFontSet((XFontSet) privatea->xfont);
-      nameb = XBaseFontNameListOfFontSet((XFontSet) privateb->xfont);
-      
-      return (strcmp(namea, nameb) == 0);
-    }
-  else
-    /* fontset != font */
-    return FALSE;
-}
-
-
-#define __GDK_FONT_X11_C__
-#include "gdkaliasdef.c"
index c53ee38355b46a576d2a30a4aa5966883dd3eea4..85c82bb44ca65c276ba0dc6f488a716f43cfb59c 100644 (file)
@@ -85,7 +85,7 @@ _gdk_xid_table_remove (GdkDisplay *display,
  * Returns the GDK object associated with the given X id.
  *
  * Return value: the associated Gdk object, which may be a #GdkPixmap,
- *     a #GdkWindow or a #GdkFont or %NULL if no object is associated
+ *     a #GdkWindow or %NULL if no object is associated
  *     with the X id.
  *
  * Since: 2.2
@@ -116,7 +116,7 @@ gdk_xid_table_lookup_for_display (GdkDisplay  *display,
  * display.
  *
  * Return value: the associated Gdk object, which may be a #GdkPixmap,
- *     a #GdkWindow or a #GdkFont or %NULL if no object is associated
+ *     a #GdkWindow or %NULL if no object is associated
  *     with the X id.
  */
 gpointer