1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/* Pango
* pango-font.h: Font handling
*
* Copyright (C) 2000 Red Hat Software
*
* 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 __PANGO_FONTMAP_PRIVATE_H__
#define __PANGO_FONTMAP_PRIVATE_H__
#include <pango/pango-font-private.h>
#include <pango/pango-fontset.h>
#include <pango/pango-fontmap.h>
G_BEGIN_DECLS
/**
* PANGO_FONT_MAP_CLASS:
* @klass: a #GObject.
*
* Casts a #GObject to a #PangoFontMapClass.
*/
/**
* PANGO_IS_FONT_MAP_CLASS:
* @klass: a #GObject.
*
* Returns: %TRUE if @klass is a subtype of #PangoFontMapClass.
*/
/**
* PANGO_FONT_MAP_GET_CLASS:
* @obj: a #PangoFontMap.
*
* Returns: class of @obj
*/
#define PANGO_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
#define PANGO_IS_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_MAP))
#define PANGO_FONT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
typedef struct _PangoFontMapClass PangoFontMapClass;
/**
* PangoFontMap:
*
* The #PangoFontMap represents the set of fonts available for a
* particular rendering system. This is a virtual object with
* implementations being specific to particular rendering systems. To
* create an implementation of a #PangoFontMap, the rendering-system
* specific code should allocate a larger structure that contains a nested
* #PangoFontMap, fill in the <structfield>klass</structfield> member of the nested #PangoFontMap with a
* pointer to a appropriate #PangoFontMapClass, then call
* pango_font_map_init() on the structure.
*
* The #PangoFontMap structure contains one member which the implementation
* fills in.
*/
struct _PangoFontMap
{
GObject parent_instance;
};
/**
* PangoFontMapClass:
* @parent_class: parent #GObjectClass.
* @load_font: a function to load a font with a given description. See
* pango_font_map_load_font().
* @list_families: A function to list available font families. See
* pango_font_map_list_families().
* @load_fontset: a function to load a fontset with a given given description
* suitable for a particular language. See pango_font_map_load_fontset().
* @shape_engine_type: the type of rendering-system-dependent engines that
* can handle fonts of this fonts loaded with this fontmap.
* @get_serial: a function to get the serial number of the fontmap.
* See pango_font_map_get_serial().
* @changed: See pango_font_map_changed()
*
* The #PangoFontMapClass structure holds the virtual functions for
* a particular #PangoFontMap implementation.
*/
struct _PangoFontMapClass
{
GObjectClass parent_class;
/*< public >*/
PangoFont * (*load_font) (PangoFontMap *fontmap,
PangoContext *context,
const PangoFontDescription *desc);
void (*list_families) (PangoFontMap *fontmap,
PangoFontFamily ***families,
int *n_families);
PangoFontset *(*load_fontset) (PangoFontMap *fontmap,
PangoContext *context,
const PangoFontDescription *desc,
PangoLanguage *language);
const char *shape_engine_type;
guint (*get_serial) (PangoFontMap *fontmap);
void (*changed) (PangoFontMap *fontmap);
/*< private >*/
/* Padding for future expansion */
void (*_pango_reserved1) (void);
void (*_pango_reserved2) (void);
};
PANGO_DEPRECATED_IN_1_38
const char *pango_font_map_get_shape_engine_type (PangoFontMap *fontmap);
G_END_DECLS
#endif /* __PANGO_FONTMAP_PRIVATE_H__ */
|