From c830201fcd8fb1d63c20fcefc70d36c24e54187d Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Tue, 22 Nov 2005 09:12:05 +0000 Subject: Add checks for ATSUI. 2005-11-21 Anders Carlsson * configure.in: Add checks for ATSUI. * examples/Makefile.am: Only build pango-cairoview if freetype is detected. * modules/basic/Makefile.am: Add basic ATSUI module. * pango/Makefile.am: Add ATSUI files for cairo backend. * pango/pangocairo-fontmap.c: (pango_cairo_font_map_new): Support creating ATSUI font maps here. * pango/pangoatsui-fontmap.c: * pango/pangoatsui-private.h: * pango/pangoatsui.c: * pango/pangoatsui.h: * pango/pangocairo-atsui.h: * pango/pangocairo-atsuifont.c: * pango/pangocairo-atsuifont.h: * pango/pangocairo-atsuifontmap.c: Add. --- pango/pangoatsui-private.h | 105 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 pango/pangoatsui-private.h (limited to 'pango/pangoatsui-private.h') diff --git a/pango/pangoatsui-private.h b/pango/pangoatsui-private.h new file mode 100644 index 00000000..f0603c24 --- /dev/null +++ b/pango/pangoatsui-private.h @@ -0,0 +1,105 @@ +/* Pango + * pangoatsui-private.h: + * + * Copyright (C) 2003 Red Hat Software + * Copyright (C) 2005 Imendio AB + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library 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. + */ + +#ifndef __PANGOATSUI_PRIVATE_H__ +#define __PANGOATSUI_PRIVATE_H__ + +#include +#include + +G_BEGIN_DECLS + +#define PANGO_TYPE_ATSUI_FONT_MAP (pango_atsui_font_map_get_type ()) +#define PANGO_ATSUI_FONT_MAP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_ATSUI_FONT_MAP, PangoATSUIFontMap)) +#define PANGO_ATSUI_IS_FONT_MAP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_ATSUI_FONT_MAP)) +#define PANGO_ATSUI_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_ATSUI_FONT_MAP, PangoATSUIFontMapClass)) +#define PANGO_IS_ATSUI_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_ATSUI_FONT_MAP)) +#define PANGO_ATSUI_FONT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_ATSUI_FONT_MAP, PangoATSUIFontMapClass)) + +#define PANGO_TYPE_ATSUI_FONT (pango_atsui_font_get_type ()) +#define PANGO_ATSUI_FONT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_ATSUI_FONT, PangoATSUIFont)) +#define PANGO_ATSUI_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_ATSUI_FONT, PangoATSUIFontClass)) +#define PANGO_ATSUI_IS_FONT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_ATSUI_FONT)) +#define PANGO_ATSUI_IS_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_ATSUI_FONT)) +#define PANGO_ATSUI_FONT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_ATSUI_FONT, PangoATSUIFontClass)) + +#define PANGO_RENDER_TYPE_ATSUI "PangoRenderATSUI" + +typedef struct _PangoATSUIFontMap PangoATSUIFontMap; +typedef struct _PangoATSUIFontMapClass PangoATSUIFontMapClass; +typedef struct _PangoATSUIFont PangoATSUIFont; +typedef struct _PangoATSUIFontClass PangoATSUIFontClass; + +struct _PangoATSUIFontMap +{ + PangoFontMap parent_instance; + + GHashTable *font_hash; + + GHashTable *families; +}; + +struct _PangoATSUIFontMapClass +{ + PangoFontMapClass parent_class; + + gconstpointer (*context_key_get) (PangoATSUIFontMap *atsuifontmap, + PangoContext *context); + gpointer (*context_key_copy) (PangoATSUIFontMap *atsuifontmap, + gconstpointer key); + void (*context_key_free) (PangoATSUIFontMap *atsuifontmap, + gpointer key); + guint32 (*context_key_hash) (PangoATSUIFontMap *atsuifontmap, + gconstpointer key); + gboolean (*context_key_equal) (PangoATSUIFontMap *atsuifontmap, + gconstpointer key_a, + gconstpointer key_b); + + PangoATSUIFont * (* create_font) (PangoATSUIFontMap *fontmap, + PangoContext *context, + const char *postscript_name, + const PangoFontDescription *desc); +}; + +struct _PangoATSUIFont +{ + PangoFont parent_instance; + + char *postscript_name; + PangoFontDescription *desc; + PangoMatrix matrix; + gpointer context_key; + + PangoFontMap *fontmap; +}; + +struct _PangoATSUIFontClass +{ + PangoFontClass parent_class; +}; + +GType pango_atsui_font_map_get_type (void); +GType pango_atsui_font_get_type (void); + +G_END_DECLS + +#endif /* __PANGOATSUI_H__ */ -- cgit v1.2.1