pango 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +27 -5
  3. data/ext/pango/depend +2 -2
  4. data/ext/pango/extconf.rb +32 -28
  5. data/ext/pango/pango.def +0 -16
  6. data/ext/pango/rb-pango-attr-list.c +64 -0
  7. data/ext/pango/rb-pango-attribute.c +147 -0
  8. data/ext/pango/rb-pango-context.c +79 -0
  9. data/ext/pango/{rbpangoconversions.h → rb-pango-conversions.h} +4 -6
  10. data/ext/pango/rb-pango-private.h +27 -0
  11. data/ext/pango/rb-pango.c +32 -0
  12. data/ext/pango/rb-pango.h +29 -0
  13. data/extconf.rb +25 -9
  14. data/lib/pango.rb +24 -68
  15. data/lib/pango/cairo-loader.rb +63 -0
  16. data/lib/pango/color.rb +31 -0
  17. data/lib/pango/deprecated.rb +37 -0
  18. data/lib/pango/font-description.rb +29 -0
  19. data/lib/pango/language.rb +29 -0
  20. data/lib/pango/layout.rb +41 -0
  21. data/lib/pango/loader.rb +87 -0
  22. data/lib/pango/markup.rb +31 -0
  23. data/lib/pango/matrix.rb +64 -0
  24. data/lib/pango/rectangle.rb +28 -0
  25. data/lib/pango/version.rb +30 -0
  26. data/test/pango-test-utils.rb +7 -7
  27. data/test/run-test.rb +34 -8
  28. data/test/test-attr-list.rb +28 -0
  29. data/test/test-color.rb +1 -3
  30. data/test/test-context.rb +4 -4
  31. data/test/test-enum.rb +37 -0
  32. data/test/test-font-description.rb +31 -0
  33. data/test/test-language.rb +2 -1
  34. data/test/test-layout.rb +12 -0
  35. data/test/test-markup.rb +30 -0
  36. data/test/test-matrix.rb +131 -5
  37. data/test/test-rectangle.rb +16 -3
  38. metadata +42 -56
  39. data/README +0 -32
  40. data/ext/pango/rbpango.c +0 -356
  41. data/ext/pango/rbpango.h +0 -95
  42. data/ext/pango/rbpangoanalysis.c +0 -218
  43. data/ext/pango/rbpangoattribute.c +0 -506
  44. data/ext/pango/rbpangoattriterator.c +0 -141
  45. data/ext/pango/rbpangoattrlist.c +0 -101
  46. data/ext/pango/rbpangocairo.c +0 -122
  47. data/ext/pango/rbpangocairocontext.c +0 -131
  48. data/ext/pango/rbpangocolor.c +0 -120
  49. data/ext/pango/rbpangocontext.c +0 -344
  50. data/ext/pango/rbpangocoverage.c +0 -106
  51. data/ext/pango/rbpangoengine.c +0 -73
  52. data/ext/pango/rbpangofont.c +0 -110
  53. data/ext/pango/rbpangofontdescription.c +0 -282
  54. data/ext/pango/rbpangofontface.c +0 -73
  55. data/ext/pango/rbpangofontfamily.c +0 -79
  56. data/ext/pango/rbpangofontmap.c +0 -102
  57. data/ext/pango/rbpangofontmetrics.c +0 -85
  58. data/ext/pango/rbpangofontset.c +0 -69
  59. data/ext/pango/rbpangofontsetsimple.c +0 -60
  60. data/ext/pango/rbpangoglyphinfo.c +0 -123
  61. data/ext/pango/rbpangoglyphitem.c +0 -125
  62. data/ext/pango/rbpangoglyphstring.c +0 -151
  63. data/ext/pango/rbpangogravity.c +0 -54
  64. data/ext/pango/rbpangoitem.c +0 -95
  65. data/ext/pango/rbpangolanguage.c +0 -94
  66. data/ext/pango/rbpangolayout.c +0 -583
  67. data/ext/pango/rbpangolayoutiter.c +0 -189
  68. data/ext/pango/rbpangolayoutline.c +0 -243
  69. data/ext/pango/rbpangologattr.c +0 -109
  70. data/ext/pango/rbpangomatrix.c +0 -143
  71. data/ext/pango/rbpangoprivate.h +0 -49
  72. data/ext/pango/rbpangorectangle.c +0 -170
  73. data/ext/pango/rbpangorenderer.c +0 -193
  74. data/ext/pango/rbpangoscript.c +0 -84
  75. data/ext/pango/rbpangoscriptiter.c +0 -92
  76. data/ext/pango/rbpangotabarray.c +0 -128
  77. data/sample/attribute.rb +0 -82
  78. data/sample/break.rb +0 -28
  79. data/sample/gdk_layout.rb +0 -27
  80. data/sample/glyphstring.rb +0 -61
  81. data/sample/item.rb +0 -37
  82. data/sample/label.rb +0 -23
  83. data/sample/layout.rb +0 -102
  84. data/sample/pango_cairo.rb +0 -66
  85. data/sample/parse.rb +0 -33
  86. data/sample/sample.txt +0 -10
  87. data/sample/script.rb +0 -23
data/README DELETED
@@ -1,32 +0,0 @@
1
- Ruby/Pango
2
- ==========
3
- Ruby/Pango is a Ruby binding of pango-1.14.x.
4
-
5
- Requirements
6
- ------------
7
- Ruby: http://www.ruby-lang.org/
8
- GLib: http://www.gtk.org/
9
- Pango: http://www.pango.org/
10
- cairo/rcairo: http://cairographics.org/ (optional)
11
- Ruby/GLib2: http://ruby-gnome2.sourceforge.net/
12
-
13
- Install
14
- -------
15
- 0. install ruby-1.9.x or later, GLib, Pango-1.14.x or later, Ruby/GLib2, Ruby/GTK2
16
- (and cairo/rcairo).
17
- 1. ruby extconf.rb
18
- 2. make
19
- 3. su
20
- 4. make install
21
-
22
- Copying
23
- -------
24
- Copyright (c) 2002-2005 Ruby-GNOME2 Project Team
25
-
26
- This program is free software.
27
- You can distribute/modify this program under the terms of
28
- the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
29
-
30
- Project Website
31
- ---------------
32
- http://ruby-gnome2.sourceforge.jp/
data/ext/pango/rbpango.c DELETED
@@ -1,356 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011-2015 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002-2005 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbpangoprivate.h"
23
-
24
- #define RG_TARGET_NAMESPACE mPango
25
-
26
- VALUE RG_TARGET_NAMESPACE;
27
-
28
- extern void Init_pango(void);
29
-
30
- /*
31
- * Rendering
32
- */
33
-
34
- static VALUE
35
- rg_s_version(G_GNUC_UNUSED VALUE self)
36
- {
37
- return INT2NUM(pango_version());
38
- }
39
-
40
- static VALUE
41
- rg_s_version_string(G_GNUC_UNUSED VALUE self)
42
- {
43
- return CSTR2RVAL(pango_version_string());
44
- }
45
-
46
- static VALUE
47
- rg_s_check_version(G_GNUC_UNUSED VALUE self,
48
- VALUE major, VALUE minor, VALUE micro)
49
- {
50
- const gchar *error_message;
51
- error_message = pango_version_check(NUM2INT(major),
52
- NUM2INT(minor),
53
- NUM2INT(micro));
54
- return CSTR2RVAL(error_message);
55
- }
56
-
57
- static VALUE
58
- rg_s_check_version_p(G_GNUC_UNUSED VALUE self,
59
- VALUE major, VALUE minor, VALUE micro)
60
- {
61
- const gchar *error_message;
62
- error_message = pango_version_check(NUM2INT(major),
63
- NUM2INT(minor),
64
- NUM2INT(micro));
65
- return CBOOL2RVAL(!error_message);
66
- }
67
-
68
- struct rpango_reorder_items_args {
69
- PangoItem *item;
70
- VALUE ary;
71
- long n;
72
- GList *result;
73
- };
74
-
75
- static VALUE
76
- rpango_reorder_items_body(VALUE value)
77
- {
78
- struct rpango_reorder_items_args *args = (struct rpango_reorder_items_args *)value;
79
- long i;
80
- GList *result;
81
-
82
- for (i = 0; i < args->n; i++)
83
- args->result = g_list_append(args->result,
84
- RVAL2PANGOITEM(RARRAY_PTR(args->ary)[i]));
85
-
86
- result = pango_reorder_items(args->result);
87
- g_list_free(args->result);
88
-
89
- return GLIST2ARY2(result, PANGO_TYPE_ITEM);
90
- }
91
-
92
- static VALUE
93
- rpango_reorder_items_ensure(VALUE value)
94
- {
95
- g_list_free(((struct rpango_reorder_items_args *)value)->result);
96
-
97
- return Qnil;
98
- }
99
-
100
- static VALUE
101
- rg_s_reorder_items(G_GNUC_UNUSED VALUE self, VALUE attrs)
102
- {
103
- struct rpango_reorder_items_args args;
104
- args.ary = rb_ary_to_ary(attrs);
105
- args.n = RARRAY_LEN(args.ary);
106
- args.result = NULL;
107
-
108
- return rb_ensure(rpango_reorder_items_body, (VALUE)&args,
109
- rpango_reorder_items_ensure, (VALUE)&args);
110
- }
111
-
112
- static VALUE
113
- rg_s_unichar_direction(G_GNUC_UNUSED VALUE self, VALUE ch)
114
- {
115
- return PANGODIRECTION2RVAL(pango_unichar_direction(NUM2UINT(ch)));
116
- }
117
-
118
- static VALUE
119
- rg_s_find_base_dir(G_GNUC_UNUSED VALUE self, VALUE text)
120
- {
121
- StringValue(text);
122
- return PANGODIRECTION2RVAL(pango_find_base_dir(RSTRING_PTR(text), RSTRING_LEN(text)));
123
- }
124
-
125
- struct rbg_pangologattrs2rval_free_args {
126
- PangoLogAttr *attrs;
127
- long n;
128
- };
129
-
130
- static VALUE
131
- rbg_pangologattrs2rval_free_body(VALUE value)
132
- {
133
- struct rbg_pangologattrs2rval_free_args *args = (struct rbg_pangologattrs2rval_free_args *)value;
134
- long i;
135
- VALUE ary = rb_ary_new();
136
-
137
- for (i = 0; i < args->n; i++)
138
- rb_ary_push(ary, PANGOLOGATTR2RVAL(&args->attrs[i]));
139
-
140
- return ary;
141
- }
142
-
143
- static VALUE
144
- rbg_pangologattrs2rval_free_ensure(VALUE value)
145
- {
146
- g_free(((struct rbg_pangologattrs2rval_free_args *)value)->attrs);
147
-
148
- return Qnil;
149
- }
150
-
151
- static VALUE
152
- rbg_pangologattrs2rval_free(PangoLogAttr *attrs, long n)
153
- {
154
- struct rbg_pangologattrs2rval_free_args args = { attrs, n };
155
-
156
- return rb_ensure(rbg_pangologattrs2rval_free_body, (VALUE)&args,
157
- rbg_pangologattrs2rval_free_ensure, (VALUE)&args);
158
- }
159
-
160
- #define PANGOLOGATTRS2RVAL_FREE(attrs, n) rbg_pangologattrs2rval_free(attrs, n)
161
-
162
- static VALUE
163
- rg_s_break(G_GNUC_UNUSED VALUE self, VALUE rbtext, VALUE rbanalysis)
164
- {
165
- const gchar *text = RVAL2CSTR(rbtext);
166
- long length = RSTRING_LEN(rbtext);
167
- PangoAnalysis *analysis = RVAL2PANGOANALYSIS(rbanalysis);
168
- long n = g_utf8_strlen(text, length) + 1;
169
- PangoLogAttr *attrs = g_new(PangoLogAttr, n);
170
-
171
- pango_break(text, length, analysis, attrs, n);
172
-
173
- return PANGOLOGATTRS2RVAL_FREE(attrs, n);
174
- }
175
-
176
- static VALUE
177
- rg_s_get_log_attrs(G_GNUC_UNUSED VALUE self, VALUE rbtext, VALUE rblevel, VALUE rblanguage)
178
- {
179
- const gchar *text = RVAL2CSTR(rbtext);
180
- long length = RSTRING_LEN(rbtext);
181
- int level = NUM2INT(rblevel);
182
- PangoLanguage *language = RVAL2PANGOLANGUAGE(rblanguage);
183
- long n = g_utf8_strlen(text, length) + 1;
184
- PangoLogAttr *attrs = g_new(PangoLogAttr, n);
185
-
186
- pango_get_log_attrs(text, length, level, language, attrs, n);
187
-
188
- return PANGOLOGATTRS2RVAL_FREE(attrs, n);
189
- }
190
-
191
- static VALUE
192
- rg_s_find_paragraph_boundary(G_GNUC_UNUSED VALUE self, VALUE text)
193
- {
194
- gint paragraph_delimiter_index, next_paragraph_start;
195
-
196
- StringValue(text);
197
- pango_find_paragraph_boundary(RSTRING_PTR(text), RSTRING_LEN(text),
198
- &paragraph_delimiter_index,
199
- &next_paragraph_start);
200
- return rb_ary_new3(2, INT2NUM(paragraph_delimiter_index),
201
- INT2NUM(next_paragraph_start));
202
- }
203
-
204
- /*
205
- Don't need to implement this. Use pango_break instead.
206
- void pango_default_break (const gchar *text,
207
- int length,
208
- PangoAnalysis *analysis,
209
- PangoLogAttr *attrs,
210
- int attrs_len);
211
- */
212
-
213
- static VALUE
214
- rpango_shape_result(VALUE value)
215
- {
216
- return PANGOGLYPHSTRING2RVAL((PangoGlyphString *)value);
217
- }
218
-
219
- static VALUE
220
- rpango_shape_ensure(VALUE value)
221
- {
222
- pango_glyph_string_free((PangoGlyphString *)value);
223
-
224
- return Qnil;
225
- }
226
-
227
- static VALUE
228
- rg_s_shape(G_GNUC_UNUSED VALUE self, VALUE rbtext, VALUE rbanalysis)
229
- {
230
- const gchar *text = RVAL2CSTR(rbtext);
231
- long length = RSTRING_LEN(rbtext);
232
- PangoAnalysis *analysis = RVAL2PANGOANALYSIS(rbanalysis);
233
- PangoGlyphString *glyphs = pango_glyph_string_new();
234
-
235
- pango_shape(text, length, analysis, glyphs);
236
-
237
- return rb_ensure(rpango_shape_result, (VALUE)glyphs,
238
- rpango_shape_ensure, (VALUE)glyphs);
239
- }
240
-
241
- /* This method is from rbpangoattribute.c */
242
- static VALUE
243
- rg_s_parse_markup(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
244
- {
245
- VALUE markup_text, accel_marker;
246
- PangoAttrList *pattr_list;
247
- gchar* gtext;
248
- gunichar accel_char;
249
- GError *error = NULL;
250
- gboolean ret;
251
- char c;
252
- VALUE text = Qnil;
253
- VALUE attr_list = Qnil;
254
-
255
- rb_scan_args(argc, argv, "11", &markup_text, &accel_marker);
256
-
257
- if (NIL_P(markup_text)) rb_raise(rb_eRuntimeError, "1st argument can't accept nil");
258
-
259
- StringValue(markup_text);
260
- ret = pango_parse_markup(RSTRING_PTR(markup_text),
261
- RSTRING_LEN(markup_text),
262
- NIL_P(accel_marker) ? 0 : NUM2CHR(accel_marker),
263
- &pattr_list, &gtext, &accel_char, &error);
264
-
265
- if (!ret) RAISE_GERROR(error);
266
-
267
- if (pattr_list){
268
- attr_list = PANGOATTRLIST2RVAL(pattr_list);
269
- pango_attr_list_unref(pattr_list);
270
- }
271
-
272
- c = (char)accel_char;
273
- if (text){
274
- text = CSTR2RVAL(gtext);
275
- g_free(gtext);
276
- }
277
- return rb_ary_new3(3, attr_list, text,
278
- accel_char ? rb_str_new(&c, 1) : Qnil);
279
- }
280
-
281
- static VALUE
282
- rg_s_pixels(G_GNUC_UNUSED VALUE self, VALUE pixels)
283
- {
284
- return rb_float_new(PANGO_PIXELS(NUM2DBL(pixels)));
285
- }
286
-
287
- static VALUE
288
- rg_s_cairo_available_p(G_GNUC_UNUSED VALUE self)
289
- {
290
- return Qtrue;
291
- }
292
-
293
- void
294
- Init_pango(void)
295
- {
296
- RG_TARGET_NAMESPACE = rb_define_module("Pango");
297
-
298
- rb_define_const(RG_TARGET_NAMESPACE, "BUILD_VERSION",
299
- rb_ary_new3(3,
300
- INT2FIX(PANGO_VERSION_MAJOR),
301
- INT2FIX(PANGO_VERSION_MINOR),
302
- INT2FIX(PANGO_VERSION_MICRO)));
303
-
304
- RG_DEF_SMETHOD(version, 0);
305
- RG_DEF_SMETHOD(version_string, 0);
306
- RG_DEF_SMETHOD(check_version, 3);
307
- RG_DEF_SMETHOD_P(check_version, 3);
308
- RG_DEF_SMETHOD(reorder_items, 1);
309
- RG_DEF_SMETHOD(unichar_direction, 1);
310
- RG_DEF_SMETHOD(find_base_dir, 1);
311
- RG_DEF_SMETHOD(break, 2);
312
- RG_DEF_SMETHOD(get_log_attrs, 3);
313
- RG_DEF_SMETHOD(find_paragraph_boundary, 1);
314
- RG_DEF_SMETHOD(shape, 2);
315
- RG_DEF_SMETHOD(parse_markup, -1);
316
- RG_DEF_SMETHOD(pixels, 1);
317
-
318
- rb_define_const(RG_TARGET_NAMESPACE, "SCALE", INT2FIX(PANGO_SCALE));
319
-
320
- RG_DEF_SMETHOD_P(cairo_available, 0);
321
-
322
- Init_pango_analysis(RG_TARGET_NAMESPACE);
323
- Init_pango_attribute(RG_TARGET_NAMESPACE);
324
- Init_pango_attriterator(RG_TARGET_NAMESPACE);
325
- Init_pango_attrlist(RG_TARGET_NAMESPACE);
326
- Init_pango_cairo(RG_TARGET_NAMESPACE);
327
- Init_pango_cairo_context(RG_TARGET_NAMESPACE);
328
- Init_pango_color(RG_TARGET_NAMESPACE);
329
- Init_pango_context(RG_TARGET_NAMESPACE);
330
- Init_pango_coverage(RG_TARGET_NAMESPACE);
331
- Init_pango_engine(RG_TARGET_NAMESPACE);
332
- Init_pango_font(RG_TARGET_NAMESPACE);
333
- Init_pango_font_description(RG_TARGET_NAMESPACE);
334
- Init_pango_font_face(RG_TARGET_NAMESPACE);
335
- Init_pango_font_family(RG_TARGET_NAMESPACE);
336
- Init_pango_font_map(RG_TARGET_NAMESPACE);
337
- Init_pango_font_metrics(RG_TARGET_NAMESPACE);
338
- Init_pango_fontset(RG_TARGET_NAMESPACE);
339
- Init_pango_fontset_simple(RG_TARGET_NAMESPACE);
340
- Init_pango_glyph_info(RG_TARGET_NAMESPACE);
341
- Init_pango_glyph_item(RG_TARGET_NAMESPACE);
342
- Init_pango_glyph_string(RG_TARGET_NAMESPACE);
343
- Init_pango_gravity(RG_TARGET_NAMESPACE);
344
- Init_pango_item(RG_TARGET_NAMESPACE);
345
- Init_pango_language(RG_TARGET_NAMESPACE);
346
- Init_pango_layout(RG_TARGET_NAMESPACE);
347
- Init_pango_layout_iter(RG_TARGET_NAMESPACE);
348
- Init_pango_layout_line(RG_TARGET_NAMESPACE);
349
- Init_pango_logattr(RG_TARGET_NAMESPACE);
350
- Init_pango_matrix(RG_TARGET_NAMESPACE);
351
- Init_pango_rectangle(RG_TARGET_NAMESPACE);
352
- Init_pangorenderer(RG_TARGET_NAMESPACE);
353
- Init_pango_script(RG_TARGET_NAMESPACE);
354
- Init_pango_script_iter(RG_TARGET_NAMESPACE);
355
- Init_pango_array(RG_TARGET_NAMESPACE);
356
- }
data/ext/pango/rbpango.h DELETED
@@ -1,95 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002-2005 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "ruby.h"
23
- #define PANGO_ENABLE_ENGINE
24
- #define PANGO_ENABLE_BACKEND
25
- #include <pango/pango.h>
26
-
27
- #ifdef HAVE_FREETYPE2
28
- #include <pango/pangofc-font.h>
29
- #endif
30
-
31
- #include "rbgobject.h"
32
- #include "rbpangoconversions.h"
33
- #include <pango/pangocairo.h>
34
-
35
- #ifdef HAVE_RB_CAIRO_H
36
- #include <rb_cairo.h>
37
- #endif
38
-
39
- #if defined(G_PLATFORM_WIN32) && !defined(RUBY_PANGO_STATIC_COMPILATION)
40
- # ifdef RUBY_PANGO_COMPILATION
41
- # define RUBY_PANGO_VAR __declspec(dllexport)
42
- # else
43
- # define RUBY_PANGO_VAR extern __declspec(dllimport)
44
- # endif
45
- #else
46
- # define RUBY_PANGO_VAR extern
47
- #endif
48
-
49
- extern void Init_pango_inits();
50
- RUBY_PANGO_VAR VALUE mPango;
51
-
52
- #ifndef PANGO_TYPE_ITEM
53
- #define PANGO_TYPE_ITEM (pango_item_get_type())
54
- #endif
55
- #define PANGO_TYPE_ANALYSIS (pango_analysis_get_type())
56
- #define PANGO_TYPE_LOG_ATTR (pango_log_attr_get_type())
57
- #ifndef PANGO_TYPE_LAYOUT_ITER
58
- #define PANGO_TYPE_LAYOUT_ITER (pango_layout_iter_get_type())
59
- #endif
60
- #ifndef PANGO_TYPE_LAYOUT_LINE
61
- #define PANGO_TYPE_LAYOUT_LINE (pango_layout_line_get_type())
62
- #endif
63
- #define PANGO_TYPE_RECTANGLE (pango_rectangle_get_type())
64
- #define PANGO_TYPE_ATTR_ITERATOR (pango_attr_iter_get_type())
65
- #define PANGO_TYPE_COVERAGE (pango_coverage_get_type())
66
- #define PANGO_TYPE_GLYPH_INFO (pango_glyph_info_get_type())
67
- #ifndef PANGO_TYPE_GLYPH_ITEM
68
- # define PANGO_TYPE_GLYPH_ITEM (pango_glyph_item_get_type())
69
- #endif
70
- #define PANGO_TYPE_SCRIPT_ITER (pango_script_iter_get_type())
71
-
72
- #define ATTR2RVAL(attr) (pango_make_attribute(attr))
73
- #define RVAL2ATTR(attr) (pango_get_attribute(attr))
74
- #define ATTRTYPE2CLASS(attr_type) (pango_get_attribute_klass(attr_type))
75
- #define RBPANGO_ADD_ATTRIBUTE(type, klass) (pango_add_attribute(type, klass))
76
-
77
- extern VALUE pango_make_attribute(PangoAttribute* attr);
78
- extern PangoAttribute* pango_get_attribute(VALUE attr);
79
-
80
- extern GType pango_item_get_type(void);
81
- extern GType pango_analysis_get_type(void);
82
- extern GType pango_log_attr_get_type(void);
83
- extern GType pango_layout_iter_get_type(void);
84
- extern GType pango_layout_line_get_type(void);
85
- extern GType pango_rectangle_get_type(void);
86
- extern GType pango_attr_iter_get_type(void);
87
- extern GType pango_coverage_get_type(void);
88
- extern GType pango_glyph_info_get_type(void);
89
- #ifndef HAVE_PANGO_GLYPH_ITEM_GET_TYPE
90
- extern GType pango_glyph_item_get_type(void);
91
- #endif
92
- extern GType pango_script_iter_get_type(void);
93
-
94
- extern VALUE pango_get_attribute_klass(VALUE attr_type);
95
- extern void pango_add_attribute(int attr_type, VALUE klass);