File indexing completed on 2025-12-18 10:28:16
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef __PANGO_RENDERER_H_
0022 #define __PANGO_RENDERER_H_
0023
0024 #include <pango/pango-layout.h>
0025
0026 G_BEGIN_DECLS
0027
0028 #define PANGO_TYPE_RENDERER (pango_renderer_get_type())
0029 #define PANGO_RENDERER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_RENDERER, PangoRenderer))
0030 #define PANGO_IS_RENDERER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_RENDERER))
0031 #define PANGO_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_RENDERER, PangoRendererClass))
0032 #define PANGO_IS_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_RENDERER))
0033 #define PANGO_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_RENDERER, PangoRendererClass))
0034
0035 typedef struct _PangoRenderer PangoRenderer;
0036 typedef struct _PangoRendererClass PangoRendererClass;
0037 typedef struct _PangoRendererPrivate PangoRendererPrivate;
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053 typedef enum
0054 {
0055 PANGO_RENDER_PART_FOREGROUND,
0056 PANGO_RENDER_PART_BACKGROUND,
0057 PANGO_RENDER_PART_UNDERLINE,
0058 PANGO_RENDER_PART_STRIKETHROUGH,
0059 PANGO_RENDER_PART_OVERLINE
0060 } PangoRenderPart;
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077 struct _PangoRenderer
0078 {
0079
0080 GObject parent_instance;
0081
0082 PangoUnderline underline;
0083 gboolean strikethrough;
0084 int active_count;
0085
0086
0087 PangoMatrix *matrix;
0088
0089
0090 PangoRendererPrivate *priv;
0091 };
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131 struct _PangoRendererClass
0132 {
0133
0134 GObjectClass parent_class;
0135
0136
0137
0138
0139 void (*draw_glyphs) (PangoRenderer *renderer,
0140 PangoFont *font,
0141 PangoGlyphString *glyphs,
0142 int x,
0143 int y);
0144 void (*draw_rectangle) (PangoRenderer *renderer,
0145 PangoRenderPart part,
0146 int x,
0147 int y,
0148 int width,
0149 int height);
0150 void (*draw_error_underline) (PangoRenderer *renderer,
0151 int x,
0152 int y,
0153 int width,
0154 int height);
0155 void (*draw_shape) (PangoRenderer *renderer,
0156 PangoAttrShape *attr,
0157 int x,
0158 int y);
0159
0160 void (*draw_trapezoid) (PangoRenderer *renderer,
0161 PangoRenderPart part,
0162 double y1_,
0163 double x11,
0164 double x21,
0165 double y2,
0166 double x12,
0167 double x22);
0168 void (*draw_glyph) (PangoRenderer *renderer,
0169 PangoFont *font,
0170 PangoGlyph glyph,
0171 double x,
0172 double y);
0173
0174 void (*part_changed) (PangoRenderer *renderer,
0175 PangoRenderPart part);
0176
0177 void (*begin) (PangoRenderer *renderer);
0178 void (*end) (PangoRenderer *renderer);
0179
0180 void (*prepare_run) (PangoRenderer *renderer,
0181 PangoLayoutRun *run);
0182
0183 void (*draw_glyph_item) (PangoRenderer *renderer,
0184 const char *text,
0185 PangoGlyphItem *glyph_item,
0186 int x,
0187 int y);
0188
0189
0190
0191
0192 void (*_pango_reserved2) (void);
0193 void (*_pango_reserved3) (void);
0194 void (*_pango_reserved4) (void);
0195 };
0196
0197 PANGO_AVAILABLE_IN_1_8
0198 GType pango_renderer_get_type (void) G_GNUC_CONST;
0199
0200 PANGO_AVAILABLE_IN_1_8
0201 void pango_renderer_draw_layout (PangoRenderer *renderer,
0202 PangoLayout *layout,
0203 int x,
0204 int y);
0205 PANGO_AVAILABLE_IN_1_8
0206 void pango_renderer_draw_layout_line (PangoRenderer *renderer,
0207 PangoLayoutLine *line,
0208 int x,
0209 int y);
0210 PANGO_AVAILABLE_IN_1_8
0211 void pango_renderer_draw_glyphs (PangoRenderer *renderer,
0212 PangoFont *font,
0213 PangoGlyphString *glyphs,
0214 int x,
0215 int y);
0216 PANGO_AVAILABLE_IN_1_22
0217 void pango_renderer_draw_glyph_item (PangoRenderer *renderer,
0218 const char *text,
0219 PangoGlyphItem *glyph_item,
0220 int x,
0221 int y);
0222 PANGO_AVAILABLE_IN_1_8
0223 void pango_renderer_draw_rectangle (PangoRenderer *renderer,
0224 PangoRenderPart part,
0225 int x,
0226 int y,
0227 int width,
0228 int height);
0229 PANGO_AVAILABLE_IN_1_8
0230 void pango_renderer_draw_error_underline (PangoRenderer *renderer,
0231 int x,
0232 int y,
0233 int width,
0234 int height);
0235 PANGO_AVAILABLE_IN_1_8
0236 void pango_renderer_draw_trapezoid (PangoRenderer *renderer,
0237 PangoRenderPart part,
0238 double y1_,
0239 double x11,
0240 double x21,
0241 double y2,
0242 double x12,
0243 double x22);
0244 PANGO_AVAILABLE_IN_1_8
0245 void pango_renderer_draw_glyph (PangoRenderer *renderer,
0246 PangoFont *font,
0247 PangoGlyph glyph,
0248 double x,
0249 double y);
0250
0251 PANGO_AVAILABLE_IN_1_8
0252 void pango_renderer_activate (PangoRenderer *renderer);
0253 PANGO_AVAILABLE_IN_1_8
0254 void pango_renderer_deactivate (PangoRenderer *renderer);
0255
0256 PANGO_AVAILABLE_IN_1_8
0257 void pango_renderer_part_changed (PangoRenderer *renderer,
0258 PangoRenderPart part);
0259
0260 PANGO_AVAILABLE_IN_1_8
0261 void pango_renderer_set_color (PangoRenderer *renderer,
0262 PangoRenderPart part,
0263 const PangoColor *color);
0264 PANGO_AVAILABLE_IN_1_8
0265 PangoColor *pango_renderer_get_color (PangoRenderer *renderer,
0266 PangoRenderPart part);
0267
0268 PANGO_AVAILABLE_IN_1_38
0269 void pango_renderer_set_alpha (PangoRenderer *renderer,
0270 PangoRenderPart part,
0271 guint16 alpha);
0272 PANGO_AVAILABLE_IN_1_38
0273 guint16 pango_renderer_get_alpha (PangoRenderer *renderer,
0274 PangoRenderPart part);
0275
0276 PANGO_AVAILABLE_IN_1_8
0277 void pango_renderer_set_matrix (PangoRenderer *renderer,
0278 const PangoMatrix *matrix);
0279 PANGO_AVAILABLE_IN_1_8
0280 const PangoMatrix *pango_renderer_get_matrix (PangoRenderer *renderer);
0281
0282 PANGO_AVAILABLE_IN_1_20
0283 PangoLayout *pango_renderer_get_layout (PangoRenderer *renderer);
0284 PANGO_AVAILABLE_IN_1_20
0285 PangoLayoutLine *pango_renderer_get_layout_line (PangoRenderer *renderer);
0286
0287 G_END_DECLS
0288
0289 #endif
0290