我们可以用Pango布局获得换行吗?接下来是代码的一部分。
我阅读了Pango手册。 pango_layout_get_lines_readonly
似乎返回PangoLayoutLine
而不是换行。我不知道Pango布局中的runs
是什么意思。试一试。没有运气。
还有其他方法可以获取换行吗?
while (data->lines[i] != NULL)
{
pango_layout_set_text (layout, data->lines[i], -1);
pango_layout_get_pixel_size (layout, &text_width, &text_height);
if (text_width > width)
{
pango_layout_set_width (layout, width * PANGO_SCALE);
pango_layout_set_wrap(layout, PANGO_WRAP_WORD);
all = pango_layout_get_lines_readonly(layout); /* here sounds PangoLayoutLine. Not sure. */
for (curr = all; curr; curr = curr->next)
{
PangoLayoutLine *line = curr->data;
GSList *r;
for(r = line->runs; r; r = r->next)
printf("%s\n", (char *)(r->data)); /* the output is not human readable */
}
}
else
{
pango_layout_set_width (layout, -1);
}
}