Gtk:Pango-换行

时间:2018-06-25 10:05:29

标签: gtk word-wrap pango

我们可以用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);
  }
}

0 个答案:

没有答案