|
Packit |
0ec9dd |
/* Pango
|
|
Packit |
0ec9dd |
* pangocairo-private.h: private symbols for the Cairo backend
|
|
Packit |
0ec9dd |
*
|
|
Packit |
0ec9dd |
* Copyright (C) 2000,2004 Red Hat, Inc.
|
|
Packit |
0ec9dd |
*
|
|
Packit |
0ec9dd |
* This library is free software; you can redistribute it and/or
|
|
Packit |
0ec9dd |
* modify it under the terms of the GNU Library General Public
|
|
Packit |
0ec9dd |
* License as published by the Free Software Foundation; either
|
|
Packit |
0ec9dd |
* version 2 of the License, or (at your option) any later version.
|
|
Packit |
0ec9dd |
*
|
|
Packit |
0ec9dd |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
0ec9dd |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
0ec9dd |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
0ec9dd |
* Library General Public License for more details.
|
|
Packit |
0ec9dd |
*
|
|
Packit |
0ec9dd |
* You should have received a copy of the GNU Library General Public
|
|
Packit |
0ec9dd |
* License along with this library; if not, write to the
|
|
Packit |
0ec9dd |
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Packit |
0ec9dd |
* Boston, MA 02111-1307, USA.
|
|
Packit |
0ec9dd |
*/
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
#ifndef __PANGOCAIRO_PRIVATE_H__
|
|
Packit |
0ec9dd |
#define __PANGOCAIRO_PRIVATE_H__
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
#include <pango/pangocairo.h>
|
|
Packit |
0ec9dd |
#include <pango/pango-renderer.h>
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
G_BEGIN_DECLS
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
#define PANGO_CAIRO_FONT_MAP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PANGO_TYPE_CAIRO_FONT_MAP, PangoCairoFontMapIface))
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
typedef struct _PangoCairoFontMapIface PangoCairoFontMapIface;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
struct _PangoCairoFontMapIface
|
|
Packit |
0ec9dd |
{
|
|
Packit |
0ec9dd |
GTypeInterface g_iface;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
void (*set_resolution) (PangoCairoFontMap *fontmap,
|
|
Packit |
0ec9dd |
double dpi);
|
|
Packit |
0ec9dd |
double (*get_resolution) (PangoCairoFontMap *fontmap);
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
cairo_font_type_t (*get_font_type) (PangoCairoFontMap *fontmap);
|
|
Packit |
0ec9dd |
};
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
#define PANGO_CAIRO_FONT_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PANGO_TYPE_CAIRO_FONT, PangoCairoFontIface))
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
typedef struct _PangoCairoFontIface PangoCairoFontIface;
|
|
Packit |
0ec9dd |
typedef struct _PangoCairoFontPrivate PangoCairoFontPrivate;
|
|
Packit |
0ec9dd |
typedef struct _PangoCairoFontHexBoxInfo PangoCairoFontHexBoxInfo;
|
|
Packit |
0ec9dd |
typedef struct _PangoCairoFontPrivateScaledFontData PangoCairoFontPrivateScaledFontData;
|
|
Packit |
0ec9dd |
typedef struct _PangoCairoFontGlyphExtentsCacheEntry PangoCairoFontGlyphExtentsCacheEntry;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
struct _PangoCairoFontHexBoxInfo
|
|
Packit |
0ec9dd |
{
|
|
Packit |
0ec9dd |
PangoCairoFont *font;
|
|
Packit |
0ec9dd |
int rows;
|
|
Packit |
0ec9dd |
double digit_width;
|
|
Packit |
0ec9dd |
double digit_height;
|
|
Packit |
0ec9dd |
double pad_x;
|
|
Packit |
0ec9dd |
double pad_y;
|
|
Packit |
0ec9dd |
double line_width;
|
|
Packit |
0ec9dd |
double box_descent;
|
|
Packit |
0ec9dd |
double box_height;
|
|
Packit |
0ec9dd |
};
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
struct _PangoCairoFontPrivateScaledFontData
|
|
Packit |
0ec9dd |
{
|
|
Packit |
0ec9dd |
cairo_matrix_t font_matrix;
|
|
Packit |
0ec9dd |
cairo_matrix_t ctm;
|
|
Packit |
0ec9dd |
cairo_font_options_t *options;
|
|
Packit |
0ec9dd |
};
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
struct _PangoCairoFontPrivate
|
|
Packit |
0ec9dd |
{
|
|
Packit |
0ec9dd |
PangoCairoFont *cfont;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
PangoCairoFontPrivateScaledFontData *data;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
cairo_scaled_font_t *scaled_font;
|
|
Packit |
0ec9dd |
PangoCairoFontHexBoxInfo *hbi;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
gboolean is_hinted;
|
|
Packit |
0ec9dd |
PangoGravity gravity;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
PangoRectangle font_extents;
|
|
Packit |
0ec9dd |
PangoCairoFontGlyphExtentsCacheEntry *glyph_extents_cache;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
GSList *metrics_by_lang;
|
|
Packit |
0ec9dd |
};
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
struct _PangoCairoFontIface
|
|
Packit |
0ec9dd |
{
|
|
Packit |
0ec9dd |
GTypeInterface g_iface;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
cairo_font_face_t *(*create_font_face) (PangoCairoFont *cfont);
|
|
Packit |
0ec9dd |
PangoFontMetrics *(*create_base_metrics_for_context) (PangoCairoFont *cfont,
|
|
Packit |
0ec9dd |
PangoContext *context);
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
gssize cf_priv_offset;
|
|
Packit |
0ec9dd |
};
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
gboolean _pango_cairo_font_install (PangoFont *font,
|
|
Packit |
0ec9dd |
cairo_t *cr);
|
|
Packit |
0ec9dd |
PangoFontMetrics * _pango_cairo_font_get_metrics (PangoFont *font,
|
|
Packit |
0ec9dd |
PangoLanguage *language);
|
|
Packit |
0ec9dd |
PangoCairoFontHexBoxInfo *_pango_cairo_font_get_hex_box_info (PangoCairoFont *cfont);
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
void _pango_cairo_font_private_initialize (PangoCairoFontPrivate *cf_priv,
|
|
Packit |
0ec9dd |
PangoCairoFont *font,
|
|
Packit |
0ec9dd |
PangoGravity gravity,
|
|
Packit |
0ec9dd |
const cairo_font_options_t *font_options,
|
|
Packit |
0ec9dd |
const PangoMatrix *pango_ctm,
|
|
Packit |
0ec9dd |
const cairo_matrix_t *font_matrix);
|
|
Packit |
0ec9dd |
void _pango_cairo_font_private_finalize (PangoCairoFontPrivate *cf_priv);
|
|
Packit |
0ec9dd |
cairo_scaled_font_t *_pango_cairo_font_private_get_scaled_font (PangoCairoFontPrivate *cf_priv);
|
|
Packit |
0ec9dd |
gboolean _pango_cairo_font_private_is_metrics_hinted (PangoCairoFontPrivate *cf_priv);
|
|
Packit |
0ec9dd |
void _pango_cairo_font_private_get_glyph_extents (PangoCairoFontPrivate *cf_priv,
|
|
Packit |
0ec9dd |
PangoGlyph glyph,
|
|
Packit |
0ec9dd |
PangoRectangle *ink_rect,
|
|
Packit |
0ec9dd |
PangoRectangle *logical_rect);
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
#define PANGO_TYPE_CAIRO_RENDERER (pango_cairo_renderer_get_type())
|
|
Packit |
0ec9dd |
#define PANGO_CAIRO_RENDERER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_CAIRO_RENDERER, PangoCairoRenderer))
|
|
Packit |
0ec9dd |
#define PANGO_IS_CAIRO_RENDERER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_CAIRO_RENDERER))
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
typedef struct _PangoCairoRenderer PangoCairoRenderer;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
_PANGO_EXTERN
|
|
Packit |
0ec9dd |
GType pango_cairo_renderer_get_type (void) G_GNUC_CONST;
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
const cairo_font_options_t *_pango_cairo_context_get_merged_font_options (PangoContext *context);
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
G_END_DECLS
|
|
Packit |
0ec9dd |
|
|
Packit |
0ec9dd |
#endif /* __PANGOCAIRO_PRIVATE_H__ */
|