pango 3.1.1 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -1,120 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002,2003 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 cColor
25
- #define _SELF(self) (RVAL2PANGOCOLOR(self))
26
-
27
- static VALUE
28
- rg_initialize(VALUE self, VALUE red, VALUE green, VALUE blue)
29
- {
30
- PangoColor color;
31
-
32
- color.red = NUM2UINT(red);
33
- color.green = NUM2UINT(green);
34
- color.blue = NUM2UINT(blue);
35
-
36
- G_INITIALIZE(self, g_boxed_copy(PANGO_TYPE_COLOR, &color));
37
- return Qnil;
38
- }
39
-
40
- static VALUE
41
- rg_parse(VALUE self, VALUE spec)
42
- {
43
- return CBOOL2RVAL(pango_color_parse(_SELF(self), RVAL2CSTR(spec)));
44
- }
45
-
46
- static VALUE
47
- rg_red(VALUE self)
48
- {
49
- return UINT2NUM(_SELF(self)->red);
50
- }
51
-
52
- static VALUE
53
- rg_set_red(VALUE self, VALUE red)
54
- {
55
- _SELF(self)->red = NUM2UINT(red);
56
- return self;
57
- }
58
-
59
- static VALUE
60
- rg_green(VALUE self)
61
- {
62
- return UINT2NUM(_SELF(self)->green);
63
- }
64
-
65
- static VALUE
66
- rg_set_green(VALUE self, VALUE green)
67
- {
68
- _SELF(self)->green = NUM2UINT(green);
69
- return self;
70
- }
71
-
72
- static VALUE
73
- rg_blue(VALUE self)
74
- {
75
- return UINT2NUM(_SELF(self)->blue);
76
- }
77
-
78
- static VALUE
79
- rg_set_blue(VALUE self, VALUE blue)
80
- {
81
- _SELF(self)->blue = NUM2UINT(blue);
82
- return self;
83
- }
84
-
85
- static VALUE
86
- rg_to_a(VALUE self)
87
- {
88
- PangoColor *c = _SELF(self);
89
- return rb_ary_new3(3,
90
- UINT2NUM(c->red),
91
- UINT2NUM(c->green),
92
- UINT2NUM(c->blue));
93
- }
94
-
95
- static VALUE
96
- rg_operator_color_equal(VALUE self, VALUE other)
97
- {
98
- PangoColor* c1 = _SELF(self);
99
- PangoColor* c2 = _SELF(other);
100
-
101
- return CBOOL2RVAL((c1->red == c2->red) && (c1->green == c2->green) &&
102
- (c1->blue == c2->blue));
103
- }
104
-
105
- void
106
- Init_pango_color(VALUE mPango)
107
- {
108
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_COLOR, "Color", mPango);
109
-
110
- RG_DEF_METHOD(initialize, 3);
111
- RG_DEF_METHOD(parse, 1);
112
- RG_DEF_METHOD(red, 0);
113
- RG_DEF_METHOD(set_red, 1);
114
- RG_DEF_METHOD(green, 0);
115
- RG_DEF_METHOD(set_green, 1);
116
- RG_DEF_METHOD(blue, 0);
117
- RG_DEF_METHOD(set_blue, 1);
118
- RG_DEF_METHOD(to_a, 0);
119
- RG_DEF_METHOD_OPERATOR("==", color_equal, 1);
120
- }
@@ -1,344 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011-2016 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
- static ID id_call;
25
-
26
- #define RG_TARGET_NAMESPACE cContext
27
- #define _SELF(self) (RVAL2PANGOCONTEXT(self))
28
-
29
- static VALUE
30
- rg_itemize(int argc, VALUE *argv, VALUE self)
31
- {
32
- VALUE arg1, arg2, arg3, arg4, arg5, arg6;
33
- GList* list;
34
-
35
- rb_scan_args(argc, argv, "42", &arg1, &arg2, &arg3, &arg4, &arg5, &arg6);
36
-
37
- if (TYPE(arg1) == T_STRING) {
38
- list = pango_itemize(_SELF(self),
39
- RVAL2CSTR(arg1), /* text */
40
- NUM2INT(arg2), /* start_index */
41
- NUM2INT(arg3), /* length */
42
- RVAL2PANGOATTRLIST(arg4), /* attrs */
43
- NIL_P(arg5) ? NULL : RVAL2PANGOATTRITERATOR(arg5)); /* cached_iter */
44
- } else {
45
- #ifdef HAVE_PANGO_ITEMIZE_WITH_BASE_DIR
46
- list = pango_itemize_with_base_dir(_SELF(self),
47
- RVAL2PANGODIRECTION(arg1), /* base_dir */
48
- RVAL2CSTR(arg2), /* text */
49
- NUM2INT(arg3), /* start_index */
50
- NUM2INT(arg4), /* length */
51
- RVAL2PANGOATTRLIST(arg5), /* attrs */
52
- NIL_P(arg6) ? NULL : RVAL2PANGOATTRITERATOR(arg6)); /* cached_iter */
53
- #else
54
- rb_warn("Pango::Context#itemize(base_dir, text, start_index, length, attrs, cached_iter) isn't supported on this environment.");
55
- list = pango_itemize(_SELF(self),
56
- RVAL2CSTR(arg1), /* text */
57
- NUM2INT(arg2), /* start_index */
58
- NUM2INT(arg3), /* length */
59
- RVAL2PANGOATTRLIST(arg4), /* attrs */
60
- NIL_P(arg5) ? NULL : RVAL2PANGOATTRITERATOR(arg5)); /* cached_iter */
61
- #endif
62
- }
63
- return GLIST2ARY2F(list, PANGO_TYPE_ITEM);
64
- }
65
-
66
- /* Move to Pango module (rbpangomain.c)
67
- GList* pango_reorder_items (GList *logical_items);
68
- */
69
-
70
- #ifdef PANGO_ENABLE_BACKEND
71
- static VALUE
72
- rg_initialize(VALUE self)
73
- {
74
- G_INITIALIZE(self, pango_context_new());
75
- return Qnil;
76
- }
77
-
78
- static VALUE
79
- rg_set_font_map(VALUE self, VALUE font_map)
80
- {
81
- pango_context_set_font_map(_SELF(self), RVAL2PANGOFONTMAP(font_map));
82
- return self;
83
- }
84
-
85
- static VALUE
86
- rg_font_map(VALUE self)
87
- {
88
- return GOBJ2RVAL(pango_context_get_font_map(_SELF(self)));
89
- }
90
- #endif /* PANGO_ENABLE_BACKEND */
91
-
92
- static VALUE
93
- rg_font_description(VALUE self)
94
- {
95
- PangoFontDescription* ret = pango_context_get_font_description(_SELF(self));
96
- return PANGOFONTDESCRIPTION2RVAL(ret);
97
- }
98
-
99
- static VALUE
100
- rg_set_font_description(VALUE self, VALUE desc)
101
- {
102
- pango_context_set_font_description(_SELF(self), RVAL2PANGOFONTDESCRIPTION(desc));
103
- return self;
104
- }
105
-
106
- static VALUE
107
- rg_language(VALUE self)
108
- {
109
- PangoLanguage* ret = pango_context_get_language(_SELF(self));
110
- return PANGOLANGUAGE2RVAL(ret);
111
- }
112
-
113
- static VALUE
114
- rg_set_language(VALUE self, VALUE lang)
115
- {
116
- pango_context_set_language(_SELF(self),
117
- RVAL2PANGOLANGUAGE(lang));
118
- return self;
119
- }
120
-
121
- static VALUE
122
- rg_base_dir(VALUE self)
123
- {
124
- return PANGODIRECTION2RVAL(pango_context_get_base_dir(_SELF(self)));
125
- }
126
-
127
- static VALUE
128
- rg_set_base_dir(VALUE self, VALUE direction)
129
- {
130
- pango_context_set_base_dir(_SELF(self), RVAL2PANGODIRECTION(direction));
131
- return self;
132
- }
133
-
134
- #if PANGO_VERSION_CHECK(1,16,0)
135
- static VALUE
136
- rg_base_gravity(VALUE self)
137
- {
138
- return PANGOGRAVITY2RVAL(pango_context_get_base_gravity(_SELF(self)));
139
- }
140
-
141
- static VALUE
142
- rg_set_base_gravity(VALUE self, VALUE gravity)
143
- {
144
- pango_context_set_base_gravity(_SELF(self), RVAL2PANGOGRAVITY(gravity));
145
- return self;
146
- }
147
-
148
- static VALUE
149
- rg_gravity_hint(VALUE self)
150
- {
151
- return PANGOGRAVITYHINT2RVAL(pango_context_get_gravity_hint(_SELF(self)));
152
- }
153
-
154
- static VALUE
155
- rg_set_gravity_hint(VALUE self, VALUE gravity_hint)
156
- {
157
- pango_context_set_gravity_hint(_SELF(self), RVAL2PANGOGRAVITYHINT(gravity_hint));
158
- return self;
159
- }
160
- #endif
161
-
162
- static VALUE
163
- rg_matrix(VALUE self)
164
- {
165
- const PangoMatrix* matrix = pango_context_get_matrix(_SELF(self));
166
- return PANGOMATRIX2RVAL((PangoMatrix*)matrix);
167
- }
168
-
169
- static VALUE
170
- rg_set_matrix(VALUE self, VALUE matrix)
171
- {
172
- pango_context_set_matrix(_SELF(self),
173
- RVAL2PANGOMATRIX(matrix));
174
- return self;
175
- }
176
-
177
- static VALUE
178
- rg_load_font(VALUE self, VALUE desc)
179
- {
180
- return GOBJ2RVAL(pango_context_load_font(_SELF(self), RVAL2PANGOFONTDESCRIPTION(desc)));
181
- }
182
-
183
- static VALUE
184
- rg_load_fontset(VALUE self, VALUE desc, VALUE lang)
185
- {
186
- return GOBJ2RVAL(pango_context_load_fontset(_SELF(self),
187
- RVAL2PANGOFONTDESCRIPTION(desc), RVAL2PANGOLANGUAGE(lang)));
188
- }
189
-
190
- static VALUE
191
- rg_get_metrics(int argc, VALUE *argv, VALUE self)
192
- {
193
- VALUE desc, lang;
194
-
195
- rb_scan_args(argc, argv, "11", &desc, &lang);
196
-
197
- return PANGOFONTMETRICS2RVAL(pango_context_get_metrics(_SELF(self),
198
- RVAL2PANGOFONTDESCRIPTION(desc),
199
- NIL_P(lang) ? NULL : RVAL2PANGOLANGUAGE(lang)));
200
- }
201
-
202
- static VALUE
203
- rg_families(VALUE self)
204
- {
205
- int n_families;
206
- PangoFontFamily** families;
207
- int i;
208
- VALUE result;
209
-
210
- pango_context_list_families(_SELF(self),
211
- &families,
212
- &n_families);
213
-
214
- result = rb_ary_new2(n_families);
215
- for (i = 0; i < n_families; i++)
216
- rb_ary_store(result, i, GOBJ2RVAL(families[i]));
217
-
218
- g_free(families);
219
-
220
- return result;
221
- }
222
-
223
- #ifdef HAVE_RB_CAIRO_H
224
- static VALUE
225
- rg_set_font_options(VALUE self, VALUE options)
226
- {
227
- if (NIL_P(options))
228
- pango_cairo_context_set_font_options(_SELF(self), NULL);
229
- else
230
- pango_cairo_context_set_font_options(_SELF(self),
231
- RVAL2CRFONTOPTIONS(options));
232
- return self;
233
- }
234
-
235
- static VALUE
236
- rg_font_options(VALUE self)
237
- {
238
- const cairo_font_options_t *options;
239
- options = pango_cairo_context_get_font_options(_SELF(self));
240
- if (options)
241
- return CRFONTOPTIONS2RVAL(cairo_font_options_copy(options));
242
- else
243
- return Qnil;
244
- }
245
-
246
- static VALUE
247
- rg_set_resolution(VALUE self, VALUE dpi)
248
- {
249
- pango_cairo_context_set_resolution(_SELF(self), NUM2DBL(dpi));
250
- return self;
251
- }
252
-
253
- static VALUE
254
- rg_resolution(VALUE self)
255
- {
256
- return rb_float_new(pango_cairo_context_get_resolution(_SELF(self)));
257
- }
258
-
259
- static void
260
- shape_renderer_callback(cairo_t *cr,
261
- PangoAttrShape *attr,
262
- gboolean do_path,
263
- gpointer data)
264
- {
265
- VALUE rb_cr;
266
- VALUE rb_attr;
267
- VALUE rb_do_path;
268
- VALUE rb_callback;
269
-
270
- rb_cr = CRCONTEXT2RVAL(cr);
271
- rb_attr = ATTR2RVAL((PangoAttribute *)attr);
272
- rb_do_path = CBOOL2RVAL(do_path);
273
- rb_callback = (VALUE)data;
274
- rb_funcall(rb_callback, id_call, 3, rb_cr, rb_attr, rb_do_path);
275
- }
276
-
277
- static VALUE
278
- rg_set_shape_renderer(VALUE self)
279
- {
280
- VALUE func = rb_block_proc();
281
- rb_iv_set(self, "@shape_renderer", func);
282
- pango_cairo_context_set_shape_renderer(_SELF(self),
283
- shape_renderer_callback,
284
- (gpointer)func,
285
- NULL);
286
- return self;
287
- }
288
- #endif
289
-
290
- static VALUE
291
- rg_list_families(VALUE self)
292
- {
293
- rb_warn("Deprecated. Use Pango::Context#families instead.");
294
- return rg_families(self);
295
- }
296
-
297
- void
298
- Init_pango_context(VALUE mPango)
299
- {
300
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_CONTEXT, "Context", mPango);
301
-
302
- id_call = rb_intern("call");
303
-
304
- RG_DEF_METHOD(itemize, -1);
305
-
306
- #ifdef PANGO_ENABLE_BACKEND
307
- RG_DEF_METHOD(initialize, 0);
308
- RG_DEF_METHOD(set_font_map, 1);
309
- RG_DEF_METHOD(font_map, 0);
310
- #endif /* PANGO_ENABLE_BACKEND */
311
- RG_DEF_METHOD(font_description, 0);
312
- RG_DEF_METHOD(set_font_description, 1);
313
- RG_DEF_METHOD(language, 0);
314
- RG_DEF_METHOD(set_language, 1);
315
- RG_DEF_METHOD(base_dir, 0);
316
- RG_DEF_METHOD(set_base_dir, 1);
317
- #if PANGO_VERSION_CHECK(1,16,0)
318
- RG_DEF_METHOD(base_gravity, 0);
319
- RG_DEF_METHOD(set_base_gravity, 1);
320
- RG_DEF_METHOD(gravity_hint, 0);
321
- RG_DEF_METHOD(set_gravity_hint, 1);
322
- #endif
323
- RG_DEF_METHOD(matrix, 0);
324
- RG_DEF_METHOD(set_matrix, 1);
325
- RG_DEF_METHOD(load_font, 1);
326
- RG_DEF_METHOD(load_fontset, 2);
327
- RG_DEF_METHOD(get_metrics, -1);
328
- RG_DEF_METHOD(families, 0);
329
-
330
- #ifdef HAVE_RB_CAIRO_H
331
- RG_DEF_METHOD(set_font_options, 1);
332
- RG_DEF_METHOD(font_options, 0);
333
- RG_DEF_METHOD(set_resolution, 1);
334
- RG_DEF_METHOD(resolution, 0);
335
- RG_DEF_METHOD(set_shape_renderer, 0);
336
- #endif
337
-
338
- /* This will remove 2 or 3 releases later since 0.14.0. */
339
- RG_DEF_METHOD(list_families, 0);
340
-
341
- /* PangoDirection */
342
- G_DEF_CLASS(PANGO_TYPE_DIRECTION, "Direction", RG_TARGET_NAMESPACE);
343
- G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, PANGO_TYPE_DIRECTION, "PANGO_");
344
- }