pango 1.0.3 → 1.1.0
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.
- data/ext/pango/extconf.rb +3 -0
- data/ext/pango/rbpango.c +312 -12
- data/ext/pango/rbpango.h +33 -22
- data/ext/pango/rbpangoanalysis.c +98 -58
- data/ext/pango/rbpangoattribute.c +94 -85
- data/ext/pango/rbpangoattriterator.c +39 -28
- data/ext/pango/rbpangoattrlist.c +42 -32
- data/ext/pango/rbpangocairo.c +38 -172
- data/ext/pango/rbpangocairocontext.c +151 -0
- data/ext/pango/rbpangocolor.c +49 -38
- data/ext/pango/rbpangocontext.c +109 -102
- data/ext/pango/rbpangoconversions.h +111 -0
- data/ext/pango/rbpangocoverage.c +45 -37
- data/ext/pango/rbpangoengine.c +22 -12
- data/ext/pango/rbpangofont.c +52 -43
- data/ext/pango/rbpangofontdescription.c +102 -91
- data/ext/pango/rbpangofontface.c +32 -21
- data/ext/pango/rbpangofontfamily.c +31 -20
- data/ext/pango/rbpangofontmap.c +44 -36
- data/ext/pango/rbpangofontmetrics.c +41 -30
- data/ext/pango/rbpangofontset.c +32 -21
- data/ext/pango/rbpangofontsetsimple.c +34 -24
- data/ext/pango/rbpangoglyphinfo.c +48 -35
- data/ext/pango/rbpangoglyphitem.c +43 -33
- data/ext/pango/rbpangoglyphstring.c +59 -59
- data/ext/pango/rbpangogravity.c +34 -23
- data/ext/pango/rbpangoitem.c +43 -34
- data/ext/pango/rbpangolanguage.c +44 -34
- data/ext/pango/rbpangolayout.c +167 -160
- data/ext/pango/rbpangolayoutiter.c +70 -59
- data/ext/pango/rbpangolayoutline.c +106 -71
- data/ext/pango/rbpangologattr.c +42 -31
- data/ext/pango/rbpangomatrix.c +47 -35
- data/ext/pango/rbpangoprivate.h +53 -0
- data/ext/pango/rbpangorectangle.c +58 -49
- data/ext/pango/rbpangorenderer.c +81 -70
- data/ext/pango/rbpangoscript.c +37 -27
- data/ext/pango/rbpangoscriptiter.c +32 -22
- data/ext/pango/rbpangotabarray.c +48 -37
- metadata +12 -12
- data/ChangeLog +0 -721
- data/ext/pango/rbpangoinits.c +0 -72
- data/ext/pango/rbpangomain.c +0 -202
data/ext/pango/rbpangoinits.c
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
extern void Init_pango_analysis();
|
2
|
-
extern void Init_pango_attribute();
|
3
|
-
extern void Init_pango_attriterator();
|
4
|
-
extern void Init_pango_attrlist();
|
5
|
-
extern void Init_pango_cairo();
|
6
|
-
extern void Init_pango_color();
|
7
|
-
extern void Init_pango_context();
|
8
|
-
extern void Init_pango_coverage();
|
9
|
-
extern void Init_pango_engine();
|
10
|
-
extern void Init_pango_font();
|
11
|
-
extern void Init_pango_font_description();
|
12
|
-
extern void Init_pango_font_face();
|
13
|
-
extern void Init_pango_font_family();
|
14
|
-
extern void Init_pango_font_map();
|
15
|
-
extern void Init_pango_font_metrics();
|
16
|
-
extern void Init_pango_fontset();
|
17
|
-
extern void Init_pango_fontset_simple();
|
18
|
-
extern void Init_pango_glyph_info();
|
19
|
-
extern void Init_pango_glyph_item();
|
20
|
-
extern void Init_pango_glyph_string();
|
21
|
-
extern void Init_pango_gravity();
|
22
|
-
extern void Init_pango_item();
|
23
|
-
extern void Init_pango_language();
|
24
|
-
extern void Init_pango_layout();
|
25
|
-
extern void Init_pango_layout_iter();
|
26
|
-
extern void Init_pango_layout_line();
|
27
|
-
extern void Init_pango_logattr();
|
28
|
-
extern void Init_pango_main();
|
29
|
-
extern void Init_pango_matrix();
|
30
|
-
extern void Init_pango_rectangle();
|
31
|
-
extern void Init_pangorenderer();
|
32
|
-
extern void Init_pango_script();
|
33
|
-
extern void Init_pango_script_iter();
|
34
|
-
extern void Init_pango_array();
|
35
|
-
void
|
36
|
-
Init_pango_inits()
|
37
|
-
{
|
38
|
-
Init_pango_analysis();
|
39
|
-
Init_pango_attribute();
|
40
|
-
Init_pango_attriterator();
|
41
|
-
Init_pango_attrlist();
|
42
|
-
Init_pango_cairo();
|
43
|
-
Init_pango_color();
|
44
|
-
Init_pango_context();
|
45
|
-
Init_pango_coverage();
|
46
|
-
Init_pango_engine();
|
47
|
-
Init_pango_font();
|
48
|
-
Init_pango_font_description();
|
49
|
-
Init_pango_font_face();
|
50
|
-
Init_pango_font_family();
|
51
|
-
Init_pango_font_map();
|
52
|
-
Init_pango_font_metrics();
|
53
|
-
Init_pango_fontset();
|
54
|
-
Init_pango_fontset_simple();
|
55
|
-
Init_pango_glyph_info();
|
56
|
-
Init_pango_glyph_item();
|
57
|
-
Init_pango_glyph_string();
|
58
|
-
Init_pango_gravity();
|
59
|
-
Init_pango_item();
|
60
|
-
Init_pango_language();
|
61
|
-
Init_pango_layout();
|
62
|
-
Init_pango_layout_iter();
|
63
|
-
Init_pango_layout_line();
|
64
|
-
Init_pango_logattr();
|
65
|
-
Init_pango_main();
|
66
|
-
Init_pango_matrix();
|
67
|
-
Init_pango_rectangle();
|
68
|
-
Init_pangorenderer();
|
69
|
-
Init_pango_script();
|
70
|
-
Init_pango_script_iter();
|
71
|
-
Init_pango_array();
|
72
|
-
}
|
data/ext/pango/rbpangomain.c
DELETED
@@ -1,202 +0,0 @@
|
|
1
|
-
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
/************************************************
|
3
|
-
|
4
|
-
rbpangomain.c -
|
5
|
-
|
6
|
-
$Author: sakai $
|
7
|
-
$Date: 2007/07/08 02:53:10 $
|
8
|
-
|
9
|
-
Copyright (C) 2002-2005 Masao Mutoh
|
10
|
-
************************************************/
|
11
|
-
|
12
|
-
#include "rbpango.h"
|
13
|
-
|
14
|
-
/*
|
15
|
-
* Rendering
|
16
|
-
*/
|
17
|
-
|
18
|
-
static VALUE
|
19
|
-
rpango_reorder_items(VALUE self, VALUE logical_items)
|
20
|
-
{
|
21
|
-
int i;
|
22
|
-
GList *glist = NULL;
|
23
|
-
GList* ret;
|
24
|
-
|
25
|
-
Check_Type(logical_items, T_ARRAY);
|
26
|
-
|
27
|
-
for (i = 0; i < RARRAY_LEN(logical_items); i++){
|
28
|
-
glist = g_list_append(glist, RVAL2BOXED(RARRAY_PTR(logical_items)[i], PANGO_TYPE_ITEM));
|
29
|
-
}
|
30
|
-
|
31
|
-
ret = pango_reorder_items(glist);
|
32
|
-
g_list_free(glist);
|
33
|
-
|
34
|
-
return GLIST2ARY2(ret, PANGO_TYPE_ITEM);
|
35
|
-
}
|
36
|
-
|
37
|
-
#if PANGO_CHECK_VERSION(1,4,0)
|
38
|
-
static VALUE
|
39
|
-
rpango_unichar_direction(VALUE self, VALUE ch)
|
40
|
-
{
|
41
|
-
return GENUM2RVAL(pango_unichar_direction(NUM2UINT(ch)), PANGO_TYPE_DIRECTION);
|
42
|
-
}
|
43
|
-
|
44
|
-
static VALUE
|
45
|
-
rpango_find_base_dir(VALUE self, VALUE text)
|
46
|
-
{
|
47
|
-
StringValue(text);
|
48
|
-
return GENUM2RVAL(pango_find_base_dir(RSTRING_PTR(text), RSTRING_LEN(text)),
|
49
|
-
PANGO_TYPE_DIRECTION);
|
50
|
-
}
|
51
|
-
#endif
|
52
|
-
|
53
|
-
static VALUE
|
54
|
-
rpango_break(VALUE self, VALUE text, VALUE analysis)
|
55
|
-
{
|
56
|
-
gint i, len;
|
57
|
-
glong attrs_len;
|
58
|
-
PangoLogAttr *attrs;
|
59
|
-
const gchar *gtext;
|
60
|
-
VALUE ret;
|
61
|
-
|
62
|
-
gtext = StringValuePtr(text);
|
63
|
-
len = RSTRING_LEN(text);
|
64
|
-
attrs_len = g_utf8_strlen(gtext, (gssize)len) + 1l;
|
65
|
-
attrs = g_new0(PangoLogAttr, attrs_len);
|
66
|
-
|
67
|
-
pango_break(gtext, len,
|
68
|
-
NIL_P(analysis) ? NULL : RVAL2BOXED(analysis, PANGO_TYPE_ANALYSIS),
|
69
|
-
attrs, attrs_len);
|
70
|
-
|
71
|
-
ret = rb_ary_new();
|
72
|
-
for (i = 0; i < attrs_len; i++){
|
73
|
-
rb_ary_push(ret, BOXED2RVAL(&attrs[i], PANGO_TYPE_LOG_ATTR));
|
74
|
-
}
|
75
|
-
g_free(attrs);
|
76
|
-
return ret;
|
77
|
-
}
|
78
|
-
|
79
|
-
static VALUE
|
80
|
-
rpango_get_log_attrs(VALUE self, VALUE text, VALUE level, VALUE language)
|
81
|
-
{
|
82
|
-
gint i, len;
|
83
|
-
glong attrs_len;
|
84
|
-
PangoLogAttr *attrs;
|
85
|
-
const gchar *gtext;
|
86
|
-
VALUE ret;
|
87
|
-
|
88
|
-
gtext = StringValuePtr(text);
|
89
|
-
len = RSTRING_LEN(text);
|
90
|
-
attrs_len = g_utf8_strlen(gtext, (gssize)len) + 1l;
|
91
|
-
attrs = g_new0(PangoLogAttr, attrs_len);
|
92
|
-
|
93
|
-
pango_get_log_attrs(gtext, len, NUM2INT(level),
|
94
|
-
RVAL2BOXED(language, PANGO_TYPE_LANGUAGE),
|
95
|
-
attrs, attrs_len);
|
96
|
-
|
97
|
-
ret = rb_ary_new();
|
98
|
-
for (i = 0; i < attrs_len; i++){
|
99
|
-
rb_ary_push(ret, BOXED2RVAL(&attrs[i], PANGO_TYPE_LOG_ATTR));
|
100
|
-
}
|
101
|
-
g_free(attrs);
|
102
|
-
return ret;
|
103
|
-
}
|
104
|
-
|
105
|
-
static VALUE
|
106
|
-
rpango_find_paragraph_boundary(VALUE self, VALUE text)
|
107
|
-
{
|
108
|
-
gint paragraph_delimiter_index, next_paragraph_start;
|
109
|
-
|
110
|
-
StringValue(text);
|
111
|
-
pango_find_paragraph_boundary(RSTRING_PTR(text), RSTRING_LEN(text),
|
112
|
-
¶graph_delimiter_index,
|
113
|
-
&next_paragraph_start);
|
114
|
-
return rb_ary_new3(2, INT2NUM(paragraph_delimiter_index),
|
115
|
-
INT2NUM(next_paragraph_start));
|
116
|
-
}
|
117
|
-
|
118
|
-
/*
|
119
|
-
Don't need to implement this. Use pango_break instead.
|
120
|
-
void pango_default_break (const gchar *text,
|
121
|
-
int length,
|
122
|
-
PangoAnalysis *analysis,
|
123
|
-
PangoLogAttr *attrs,
|
124
|
-
int attrs_len);
|
125
|
-
*/
|
126
|
-
|
127
|
-
static VALUE
|
128
|
-
rpango_shape(VALUE self, VALUE text, VALUE analysis)
|
129
|
-
{
|
130
|
-
VALUE ret;
|
131
|
-
PangoGlyphString* glyphs = pango_glyph_string_new();
|
132
|
-
StringValue(text);
|
133
|
-
pango_shape(RSTRING_PTR(text), RSTRING_LEN(text), RVAL2BOXED(analysis, PANGO_TYPE_ANALYSIS), glyphs);
|
134
|
-
ret = BOXED2RVAL(glyphs, PANGO_TYPE_GLYPH_STRING);
|
135
|
-
pango_glyph_string_free (glyphs);
|
136
|
-
return ret;
|
137
|
-
}
|
138
|
-
|
139
|
-
/* This method is from rbpangoattribute.c */
|
140
|
-
static VALUE
|
141
|
-
rpango_parse_markup(int argc, VALUE *argv, VALUE self)
|
142
|
-
{
|
143
|
-
VALUE markup_text, accel_marker;
|
144
|
-
PangoAttrList *pattr_list;
|
145
|
-
gchar* gtext;
|
146
|
-
gunichar accel_char;
|
147
|
-
GError *error = NULL;
|
148
|
-
gboolean ret;
|
149
|
-
char c;
|
150
|
-
VALUE text = Qnil;
|
151
|
-
VALUE attr_list = Qnil;
|
152
|
-
|
153
|
-
rb_scan_args(argc, argv, "11", &markup_text, &accel_marker);
|
154
|
-
|
155
|
-
if (NIL_P(markup_text)) rb_raise(rb_eRuntimeError, "1st argument can't accept nil");
|
156
|
-
|
157
|
-
StringValue(markup_text);
|
158
|
-
ret = pango_parse_markup(RSTRING_PTR(markup_text),
|
159
|
-
RSTRING_LEN(markup_text),
|
160
|
-
NIL_P(accel_marker) ? 0 : NUM2CHR(accel_marker),
|
161
|
-
&pattr_list, >ext, &accel_char, &error);
|
162
|
-
|
163
|
-
if (!ret) RAISE_GERROR(error);
|
164
|
-
|
165
|
-
if (pattr_list){
|
166
|
-
attr_list = BOXED2RVAL(pattr_list, PANGO_TYPE_ATTR_LIST);
|
167
|
-
pango_attr_list_unref(pattr_list);
|
168
|
-
}
|
169
|
-
|
170
|
-
c = (char)accel_char;
|
171
|
-
if (text){
|
172
|
-
text = CSTR2RVAL(gtext);
|
173
|
-
g_free(gtext);
|
174
|
-
}
|
175
|
-
return rb_ary_new3(3, attr_list, text,
|
176
|
-
accel_char ? rb_str_new(&c, 1) : Qnil);
|
177
|
-
}
|
178
|
-
|
179
|
-
static VALUE
|
180
|
-
rpango_pixels(VALUE self, VALUE pixels)
|
181
|
-
{
|
182
|
-
return rb_float_new(PANGO_PIXELS(NUM2DBL(pixels)));
|
183
|
-
}
|
184
|
-
|
185
|
-
void
|
186
|
-
Init_pango_main()
|
187
|
-
{
|
188
|
-
rb_define_module_function(mPango, "reorder_items", rpango_reorder_items, 1);
|
189
|
-
|
190
|
-
#if PANGO_CHECK_VERSION(1,4,0)
|
191
|
-
rb_define_module_function(mPango, "unichar_direction", rpango_unichar_direction, 1);
|
192
|
-
rb_define_module_function(mPango, "find_base_dir", rpango_find_base_dir, 1);
|
193
|
-
#endif
|
194
|
-
rb_define_module_function(mPango, "break", rpango_break, 2);
|
195
|
-
rb_define_module_function(mPango, "get_log_attrs", rpango_get_log_attrs, 3);
|
196
|
-
rb_define_module_function(mPango, "find_paragraph_boundary", rpango_find_paragraph_boundary, 1);
|
197
|
-
rb_define_module_function(mPango, "shape", rpango_shape, 2);
|
198
|
-
rb_define_module_function(mPango, "parse_markup", rpango_parse_markup, -1);
|
199
|
-
rb_define_module_function(mPango, "pixels", rpango_pixels, 1);
|
200
|
-
|
201
|
-
rb_define_const(mPango, "SCALE", INT2FIX(PANGO_SCALE));
|
202
|
-
}
|