[sugar] New version of piemenu.py, and some cairo questions
Don Hopkins
dhopkins
Tue Feb 27 16:47:33 EST 2007
Thanks, that's just what I needed!
I've converted piemenu.py to use pango and markup text, so you can have
multi-line labels and headers with html markup in them.
Using pango instead of the low level text api simplified the code, and
now it does more and looks nicer!
Now you configure the fonts with simple pango font description strings
like "Helvetica bold 24", instead of having a bunch of obnoxious
instance variables for font family, weight, slant, size.
I updated the demo to use some gratuitous markup in the top level menu.
http://www.donhopkins.com/home/piemenu.py
-Don
Marco Pesenti Gritti wrote:
> On Tue, 2007-02-27 at 10:45 +0200, Antoine van Gelder wrote:
>
>> Don Hopkins wrote:
>>
>>> I could use some tips about measuring the bounding box of fonts and text
>>> in cairo, please.
>>>
>> I gave up entirely on straight cairo text rendering and switched to
>> pango - which ended up looking something like this:
>>
>> self.pango_context = self.create_pango_context()
>> self.layout = pango.Layout(self.pango_context)
>> fontDescription = pango.FontDescription("Monospace 8")
>> self.layout.set_font_description(fontDescription)
>> self.layout.set_text(text)
>> (self.pixel_width, self.pixel_height) = self.layout.get_pixel_size()
>> cairo_context.show_layout(self.layout)
>>
>
> Yeah, I think the preferred way to do text rendering is to use pango.
> For a more complex example see the hippo canvas text item:
>
> http://svn.mugshot.org/dumbhippo/trunk/client/common/canvas/hippo/hippo-canvas-text.c
>
> Marco
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.laptop.org/pipermail/sugar/attachments/20070227/e47d823e/attachment.html
More information about the Sugar-devel
mailing list