diff options
author | Richard Hult <richard@imendio.com> | 2007-06-24 19:55:47 +0000 |
---|---|---|
committer | Richard Hult <rhult@src.gnome.org> | 2007-06-24 19:55:47 +0000 |
commit | e1c8f581032024799bf424d26d4a70852017cd56 (patch) | |
tree | 49e1509a173b73721d8668b5d7900dabd8117713 /pango/pangoatsui.c | |
parent | cd52bcd5dbb61f5cbada046ff917457e9f34b204 (diff) | |
download | pango-e1c8f581032024799bf424d26d4a70852017cd56.tar.gz |
Bug 449543 - Ship pangoatsui.h
2007-06-24 Richard Hult <richard@imendio.com>
Bug 449543 - Ship pangoatsui.h
* pango/pangoatsui-fontmap.c:
* pango/pangoatsui-private.h:
* pango/pangoatsui.c:
* pango/pangoatsui.h:
* pango/pangocairo-atsuifont.c:
* pango/pangocairo-atsuifont.h: Move get_atsu_font_id from the
cairo atsui font class to the atsui base class. Make the members
of the atsui font private and adapt all users of them.
* pango/Makefile.am: Ship pangoatsui.h.
* modules/basic/basic-atsui.c: (basic_engine_shape): Adapt to the
above changes.
svn path=/trunk/; revision=2366
Diffstat (limited to 'pango/pangoatsui.c')
-rw-r--r-- | pango/pangoatsui.c | 117 |
1 files changed, 107 insertions, 10 deletions
diff --git a/pango/pangoatsui.c b/pango/pangoatsui.c index dcb410df..ecea7868 100644 --- a/pango/pangoatsui.c +++ b/pango/pangoatsui.c @@ -21,18 +21,31 @@ #include <config.h> +#include "pangoatsui.h" #include "pangoatsui-private.h" G_DEFINE_TYPE (PangoATSUIFont, pango_atsui_font, PANGO_TYPE_FONT); +struct _PangoATSUIFontPrivate +{ + PangoATSUIFace *face; + PangoFontDescription *desc; + gpointer context_key; + + ATSUFontID font_id; + + PangoFontMap *fontmap; +}; + static void pango_atsui_font_finalize (GObject *object) { - PangoATSUIFont *font = (PangoATSUIFont *)object; + PangoATSUIFont *afont = (PangoATSUIFont *)object; + PangoATSUIFontPrivate *priv = afont->priv; - pango_font_description_free (font->desc); + pango_font_description_free (priv->desc); - g_object_unref (font->fontmap); + g_object_unref (priv->fontmap); G_OBJECT_CLASS (pango_atsui_font_parent_class)->finalize (object); } @@ -40,17 +53,21 @@ pango_atsui_font_finalize (GObject *object) static PangoFontDescription * pango_atsui_font_describe (PangoFont *font) { - PangoATSUIFont *atsuifont = PANGO_ATSUI_FONT (font); + PangoATSUIFont *afont = (PangoATSUIFont *)font; + PangoATSUIFontPrivate *priv = afont->priv; - return pango_font_description_copy (atsuifont->desc); + return pango_font_description_copy (priv->desc); } static PangoCoverage * pango_atsui_font_get_coverage (PangoFont *font, PangoLanguage *language) { - return pango_coverage_ref (_pango_atsui_face_get_coverage (PANGO_ATSUI_FONT (font)->face, - language)); + PangoATSUIFont *afont = (PangoATSUIFont *)font; + PangoATSUIFontPrivate *priv = afont->priv; + + return pango_coverage_ref (_pango_atsui_face_get_coverage (priv->face, + language)); } static PangoEngineShape * @@ -65,14 +82,17 @@ pango_atsui_font_find_shaper (PangoFont *font, static PangoFontMap * pango_atsui_font_get_font_map (PangoFont *font) { - PangoATSUIFont *atsuifont = (PangoATSUIFont *)font; + PangoATSUIFont *afont = (PangoATSUIFont *)font; - return atsuifont->fontmap; + return afont->priv->fontmap; } static void -pango_atsui_font_init (PangoATSUIFont *font) +pango_atsui_font_init (PangoATSUIFont *afont) { + afont->priv = G_TYPE_INSTANCE_GET_PRIVATE (afont, + PANGO_TYPE_ATSUI_FONT, + PangoATSUIFontPrivate); } static void @@ -87,8 +107,85 @@ pango_atsui_font_class_init (PangoATSUIFontClass *class) font_class->get_coverage = pango_atsui_font_get_coverage; font_class->find_shaper = pango_atsui_font_find_shaper; font_class->get_font_map = pango_atsui_font_get_font_map; + + g_type_class_add_private (object_class, sizeof (PangoATSUIFontPrivate)); +} + +void +_pango_atsui_font_set_font_description (PangoATSUIFont *font, + const PangoFontDescription *desc) +{ + PangoATSUIFontPrivate *priv = font->priv; + + priv->desc = pango_font_description_copy (desc); +} + +PangoFontDescription * +_pango_atsui_font_get_font_description (PangoATSUIFont *font) +{ + PangoATSUIFontPrivate *priv = font->priv; + + return priv->desc; +} + +void +_pango_atsui_font_set_font_map (PangoATSUIFont *font, + PangoATSUIFontMap *fontmap) +{ + PangoATSUIFontPrivate *priv = font->priv; + + g_assert (priv->fontmap == NULL); + + priv->fontmap = g_object_ref (fontmap); +} + +void +_pango_atsui_font_set_face (PangoATSUIFont *afont, + PangoATSUIFace *face) +{ + PangoATSUIFontPrivate *priv = afont->priv; + + priv->face = face; +} + +PangoATSUIFace * +_pango_atsui_font_get_face (PangoATSUIFont *afont) +{ + PangoATSUIFontPrivate *priv = afont->priv; + + return priv->face; } +gpointer +_pango_atsui_font_get_context_key (PangoATSUIFont *afont) +{ + PangoATSUIFontPrivate *priv = afont->priv; + return priv->context_key; +} +void +_pango_atsui_font_set_context_key (PangoATSUIFont *afont, + gpointer context_key) +{ + PangoATSUIFontPrivate *priv = afont->priv; + priv->context_key = context_key; +} + +void +_pango_atsui_font_set_atsu_font_id (PangoATSUIFont *font, + ATSUFontID font_id) +{ + PangoATSUIFontPrivate *priv = font->priv; + + priv->font_id = font_id; +} + +ATSUFontID +pango_atsui_font_get_atsu_font_id (PangoATSUIFont *font) +{ + PangoATSUIFontPrivate *priv = font->priv; + + return priv->font_id; +} |