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
@@ -1,84 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 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 cScript
25
- #define _SELF(r) (RVAL2PANGOSCRIPT(r))
26
-
27
- static VALUE
28
- rg_s_for_unichar(G_GNUC_UNUSED VALUE self, VALUE ch)
29
- {
30
- return PANGOSCRIPT2RVAL(pango_script_for_unichar(NUM2UINT(ch)));
31
- }
32
-
33
- static VALUE
34
- rg_sample_language(VALUE self)
35
- {
36
- PangoLanguage* lang = pango_script_get_sample_language(_SELF(self));
37
- return PANGOLANGUAGE2RVAL(lang);
38
- }
39
-
40
- #if PANGO_VERSION_CHECK(1,16,0)
41
- static VALUE
42
- rg_get_gravity(int argc, VALUE *argv, VALUE self)
43
- {
44
- VALUE wide, gravity, gravity_hint;
45
- int n;
46
- PangoGravity g;
47
-
48
- n = rb_scan_args(argc, argv, "21", &gravity, &gravity_hint, &wide);
49
-
50
- if (n == 2) {
51
- g = pango_gravity_get_for_script(_SELF(self),
52
- RVAL2PANGOGRAVITY(gravity),
53
- RVAL2PANGOGRAVITYHINT(gravity_hint));
54
- } else {
55
- # if PANGO_VERSION_CHECK(1,26,0)
56
- g = pango_gravity_get_for_script_and_width(_SELF(self),
57
- RVAL2CBOOL(wide),
58
- RVAL2PANGOGRAVITY(gravity),
59
- RVAL2PANGOGRAVITYHINT(gravity_hint));
60
- # else
61
- rb_raise(rb_eArgError,
62
- "the 3rd 'wide' argument requires Pango >= 1.26");
63
- # endif
64
- }
65
- return PANGOGRAVITY2RVAL(g);
66
- }
67
- #endif
68
-
69
- /* Move to Pango::Language
70
- gboolean pango_language_includes_script (PangoLanguage *language,
71
- PangoScript script);
72
- */
73
-
74
- void
75
- Init_pango_script(VALUE mPango)
76
- {
77
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_SCRIPT, "Script", mPango);
78
-
79
- RG_DEF_SMETHOD(for_unichar, 1);
80
- RG_DEF_METHOD(sample_language, 0);
81
- #if PANGO_VERSION_CHECK(1,16,0)
82
- RG_DEF_METHOD(get_gravity, -1);
83
- #endif
84
- }
@@ -1,92 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 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
- /**********************************/
25
- static PangoScriptIter*
26
- rbpango_script_iter_copy(PangoScriptIter *ref)
27
- {
28
- /*
29
- PangoScriptIter* new_ref = pango_script_iter_new("", 0);
30
- g_return_val_if_fail (ref != NULL, NULL);
31
- new_ref = g_new(PangoScriptIter, 1);
32
- *new_ref = *ref;
33
- return new_ref;
34
- */
35
- return ref;
36
- }
37
-
38
- GType
39
- pango_script_iter_get_type(void)
40
- {
41
- static GType our_type = 0;
42
-
43
- if (our_type == 0)
44
- our_type = g_boxed_type_register_static ("PangoScriptIter",
45
- (GBoxedCopyFunc)rbpango_script_iter_copy,
46
- (GBoxedFreeFunc)pango_script_iter_free);
47
- return our_type;
48
- }
49
- /**********************************/
50
-
51
- #define RG_TARGET_NAMESPACE cScriptIter
52
- #define _SELF(r) (RVAL2PANGOSCRIPTITER(r))
53
-
54
- static VALUE
55
- rg_initialize(VALUE self, VALUE text)
56
- {
57
- PangoScriptIter* iter;
58
-
59
- StringValue(text);
60
- iter = pango_script_iter_new(RSTRING_PTR(text), RSTRING_LEN(text));
61
- G_INITIALIZE(self, iter);
62
- return Qnil;
63
- }
64
-
65
- static VALUE
66
- rg_range(VALUE self)
67
- {
68
- G_CONST_RETURN char* start;
69
- G_CONST_RETURN char* end;
70
- PangoScript script;
71
-
72
- pango_script_iter_get_range(_SELF(self), &start, &end, &script);
73
-
74
- return rb_ary_new3(3, CSTR2RVAL(start), CSTR2RVAL(end),
75
- PANGOSCRIPT2RVAL(script));
76
- }
77
-
78
- static VALUE
79
- rg_next_bang(VALUE self)
80
- {
81
- return CBOOL2RVAL(pango_script_iter_next(_SELF(self)));
82
- }
83
-
84
- void
85
- Init_pango_script_iter(VALUE mPango)
86
- {
87
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_SCRIPT_ITER, "ScriptIter", mPango);
88
-
89
- RG_DEF_METHOD(initialize, 1);
90
- RG_DEF_METHOD(range, 0);
91
- RG_DEF_METHOD_BANG(next, 0);
92
- }
@@ -1,128 +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 cTabArray
25
- #define _SELF(self) (RVAL2PANGOTABARRAY(self))
26
-
27
- static VALUE
28
- rg_initialize(int argc, VALUE *argv, VALUE self)
29
- {
30
- VALUE size, positions_in_pixels, attr_ary;
31
- PangoTabArray *array;
32
- int i;
33
-
34
- rb_scan_args(argc, argv, "2*", &size, &positions_in_pixels, &attr_ary);
35
-
36
- array = pango_tab_array_new(NUM2INT(size),
37
- RVAL2CBOOL(positions_in_pixels));
38
- G_INITIALIZE(self, array);
39
-
40
- if (! NIL_P(attr_ary)){
41
- for (i = 0; i < RARRAY_LEN(attr_ary); i++) {
42
- pango_tab_array_set_tab(array, i,
43
- RVAL2PANGOTABALIGN(RARRAY_PTR(RARRAY_PTR(attr_ary)[i])[0]),
44
- FIX2INT(RARRAY_PTR(RARRAY_PTR(attr_ary)[i])[1]));
45
- }
46
- }
47
-
48
- return Qnil;
49
- }
50
- /* This is implemented in rtab_initialize.
51
- PangoTabArray* pango_tab_array_new_with_positions
52
- (gint size,
53
- gboolean positions_in_pixels,
54
- PangoTabAlign first_alignment,
55
- gint first_position,
56
- ...);
57
- */
58
- static VALUE
59
- rg_size(VALUE self)
60
- {
61
- return INT2NUM(pango_tab_array_get_size(_SELF(self)));
62
- }
63
-
64
- static VALUE
65
- rg_resize(VALUE self, VALUE size)
66
- {
67
- pango_tab_array_resize(_SELF(self), NUM2INT(size));
68
- return self;
69
- }
70
-
71
- static VALUE
72
- rg_set_tab(VALUE self, VALUE tab_index, VALUE align, VALUE location)
73
- {
74
- pango_tab_array_set_tab(_SELF(self), NUM2INT(tab_index), RVAL2PANGOTABALIGN(align),
75
- NUM2INT(location));
76
- return self;
77
- }
78
-
79
- static VALUE
80
- rg_get_tab(VALUE self, VALUE tab_index)
81
- {
82
- PangoTabAlign align;
83
- gint location;
84
- pango_tab_array_get_tab(_SELF(self), NUM2INT(tab_index),
85
- &align, &location);
86
- return rb_ary_new3(2, PANGOTABALIGN2RVAL(align), INT2NUM(location));
87
- }
88
-
89
- static VALUE
90
- rg_tabs(VALUE self)
91
- {
92
- PangoTabAlign* aligns;
93
- gint* locations;
94
- VALUE ary = rb_ary_new();
95
- PangoTabArray* tab_array = _SELF(self);
96
- gint i;
97
-
98
- pango_tab_array_get_tabs(tab_array, &aligns, &locations);
99
-
100
- for (i = 0; i < pango_tab_array_get_size(tab_array); i++){
101
- rb_ary_push(ary, rb_ary_new3(2, PANGOTABALIGN2RVAL(aligns[i]),
102
- INT2NUM(locations[i])));
103
- }
104
- return ary;
105
- }
106
-
107
- static VALUE
108
- rg_positions_in_pixels_p(VALUE self)
109
- {
110
- return CBOOL2RVAL(pango_tab_array_get_positions_in_pixels(_SELF(self)));
111
- }
112
-
113
- void
114
- Init_pango_array(VALUE mPango)
115
- {
116
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_TAB_ARRAY, "TabArray", mPango);
117
- RG_DEF_METHOD(initialize, -1);
118
- RG_DEF_METHOD(size, 0);
119
- RG_DEF_METHOD(resize, 1);
120
- RG_DEF_METHOD(set_tab, 3);
121
- RG_DEF_METHOD(get_tab, 1);
122
- RG_DEF_METHOD(tabs, 0);
123
- RG_DEF_METHOD_P(positions_in_pixels, 0);
124
-
125
- /* PangoTabAlign */
126
- G_DEF_CLASS(PANGO_TYPE_TAB_ALIGN, "TabAlign", RG_TARGET_NAMESPACE);
127
- G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, PANGO_TYPE_TAB_ALIGN, "PANGO_");
128
- }
data/sample/attribute.rb DELETED
@@ -1,82 +0,0 @@
1
- =begin
2
- attribute.rb - Ruby/Pango sample script.
3
-
4
- Copyright (c) 2002,2003 Ruby-GNOME2 Project Team
5
- This program is licenced under the same licence as Ruby-GNOME2.
6
-
7
- $Id: attribute.rb,v 1.6 2006/06/17 13:37:01 mutoh Exp $
8
- =end
9
-
10
- require 'pango'
11
-
12
- p a = Pango::AttrSize.new(1)
13
- puts "value = #{a.value}"
14
- puts "start_index = #{a.start_index}"
15
- puts "end_index = #{a.end_index}"
16
-
17
- p a = Pango::AttrStyle.new(Pango::FontDescription::STYLE_NORMAL)
18
- puts "value = #{a.value}"
19
-
20
- p a = Pango::AttrVariant.new(Pango::FontDescription::VARIANT_SMALL_CAPS)
21
- puts "value = #{a.value}"
22
-
23
- p a = Pango::AttrStretch.new(Pango::FontDescription::STRETCH_EXPANDED)
24
- puts "value = #{a.value}"
25
-
26
- p a = Pango::AttrWeight.new(Pango::FontDescription::WEIGHT_BOLD)
27
- puts "value = #{a.value}"
28
-
29
- p a = Pango::AttrRise.new(10)
30
- puts "value = #{a.value}"
31
-
32
- p a = Pango::AttrLanguage.new(Pango::Language.new("ja"))
33
- p a.value
34
- p a.value.to_str
35
-
36
- p a = Pango::AttrFamily.new("family")
37
- p a.value
38
-
39
- p b = Pango::FontDescription.new
40
- p b.to_str
41
- p a = Pango::AttrFontDescription.new(b)
42
- p a.value
43
- p a.value.to_str
44
-
45
- p a = Pango::AttrForeground.new(10, 20, 30)
46
- p a.value
47
- p a.value.to_a
48
-
49
- p a = Pango::AttrBackground.new(20, 30, 40)
50
- p a.value
51
- p a.value.to_a
52
-
53
- p a = Pango::AttrStrikethrough.new(true)
54
- p a.value
55
-
56
- p Pango::AttrUnderline::SINGLE
57
- p a = Pango::AttrUnderline.new(Pango::AttrUnderline::SINGLE)
58
- p a.value
59
-
60
- p ink = Pango::Rectangle.new(1, 2, 3, 4)
61
- p log = Pango::Rectangle.new(5, 6, 7, 8)
62
- p a = Pango::AttrShape.new(ink, log)
63
- p a.value[0].to_a
64
- p a.value[1].to_a
65
-
66
- p a = Pango::AttrScale.new(2.3)
67
- p a.value
68
-
69
- begin
70
- require 'gtk2'
71
- rescue
72
- p "Ruby/GTK2 is not existed."
73
- exit 0
74
- end
75
- p a = Gdk::PangoAttrEmbossed.new(true)
76
- p a.value
77
-
78
- mask = Gdk::Pixmap.new(Gtk::Window.new.realize.window, 100, 100, 1)
79
- p a = Gdk::PangoAttrStipple.new(mask)
80
- p a.value
81
-
82
-
data/sample/break.rb DELETED
@@ -1,28 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- =begin
4
- break.rb - Ruby/Pango sample script.
5
-
6
- Copyright (c) 2005 Ruby-GNOME2 Project
7
- This program is licenced under the same licence as Ruby-GNOME2.
8
-
9
- $Id: break.rb,v 1.1 2005/09/17 17:09:12 mutoh Exp $
10
- =end
11
-
12
- require 'pango'
13
-
14
- attr = Pango.break("Hello Worldです\n2nd line", Pango::Analysis.new)
15
-
16
- p attr.length
17
- attr.each do |v|
18
- print "line_break:#{v.line_break?}"
19
- print ", mandatory_break:#{v.mandatory_break?}"
20
- print ", char_break:#{v.char_break?}"
21
- print ", white:#{v.white?}"
22
- print ", cursor_position:#{v.cursor_position?}"
23
- print ", word_start:#{v.word_start?}"
24
- print ", word_end:#{v.word_end?}"
25
- print ", sentence_boundary:#{v.sentence_boundary?}"
26
- print ", sentence_start:#{v.sentence_start?}"
27
- print ", sentence_end:#{v.sentence_end?}\n"
28
- end
data/sample/gdk_layout.rb DELETED
@@ -1,27 +0,0 @@
1
- =begin
2
- gdk_layout.rb - Ruby/Pango sample script.
3
-
4
- Copyright (c) 2003-2006 Ruby-GNOME2 Project
5
- This program is licenced under the same licence as Ruby-GNOME2.
6
-
7
- $Id: gdk_layout.rb,v 1.7 2006/06/17 13:36:11 mutoh Exp $
8
- =end
9
-
10
- require 'gtk2'
11
-
12
- window = Gtk::Window.new("Ruby/Pango sample")
13
- window.signal_connect("destroy"){Gtk.main_quit}
14
- window.realize
15
-
16
- gdkwin = window.window
17
- gc = Gdk::GC.new(gdkwin)
18
-
19
- layout = window.create_pango_layout
20
- layout.set_markup(File.read("sample.txt"), "$")
21
- window.signal_connect("expose_event") do
22
- gdkwin.draw_layout(gc, 10, 10, layout)
23
- end
24
-
25
- window.set_default_size(500,400).show_all
26
-
27
- Gtk.main