Re: GUADEC Results



>>>>> "Havoc" == Havoc Pennington <hp redhat com> writes:

>> I'm not too familiar with the PangoLayout stuff; I'll take a look
>> at it later tonight. Is rich-text support a fairly easy thing to do
>> with it?

Havoc> Fairly easy, it's somewhat low-level but not that bad. See
Havoc> PangoAttrList (GtkLabel source code is useful, as is
Havoc> pango-markup.c, to see how it works). PangoLayout is just a
Havoc> paragraph of text with attributes, layed out for rendering.

Havoc> A word processor such as AbiWord would probably not use
Havoc> PangoLayout, since it would need to do more stuff. At that
Havoc> point you drop down to lower-level Pango facilities. But
Havoc> PangoLayout is good for most simple things.

Actually, having discussed it a (little) bit at GUADEC, I think, long
term, we'll want to use Pango. There's simply too few developers on
AbiWord do allow us to recreate all the good stuff in Pango from
scratch - not to mention that it would be silly to do so.

I've had an ultra quick look at the layout code, and I think what we
want is pluggable Pango layout modules, just like there's already
language modules.  I think the layout engine working with shapes was
even on the Pango wish list - that's what we need. And we'll probably
also put some effort into optimizing algorithms and code since doing
full-page text layout is going to be way more expensive than "just"
a little text used in widgets.

We haven't looked at the details, but Pango does a lot of the stuff
that the AbiWord backend already does (there's a surprise!). Our
largest hindrance is likely to be Pango portability - we'll need Pango
on all our supported platforms (Win, QNX, Mac, Unix) before we can
switch. That will be part of the job of converting AbiWord to use
Pango - but hopefully there'll be non-AbiWord hackers willing to help
on that.

This is all well into the future, but I'm sure we'll get it sorted out
eventually. I'm personally 95% sure Pango is the way forward for
AbiWord...

Jesper




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]