Re: Copying widget layout into a cairo layout
- From: Behdad Esfahbod <behdad behdad org>
- To: Zoltan Boszormenyi <zboszor freemail hu>
- Cc: GTK LIST <gtk-list gnome org>
- Subject: Re: Copying widget layout into a cairo layout
- Date: Thu, 11 Jun 2009 09:59:08 -0400
Humm, what happens if you get the PangoContext from the label, create layout,
and render to your own cairo_t? Should work.
behdad
On 06/11/2009 09:56 AM, Zoltan Boszormenyi wrote:
Hi,
thanks very much, the font now is the same, but it's still a bit larger,
see the attached picture. Is there some other option I can apply?
Thanks in advance,
Zoltán
Behdad Esfahbod írta:
Try copying setting the font description of the label on your
PangoContext. widget->style->font_desc.
On 06/11/2009 08:33 AM, Zoltan Boszormenyi wrote:
Zoltan Boszormenyi írta:
Hi,
I need to create a scrolling label widget.
I already succeeded marrying gtklabel and gtkimage,
I use a Cairo surface and created PangoLayout out of it,
I render the label text into the Cairo+Pango layout,
I use the expose method used by GtkImage to display
the pixbuf in the widget, and added a timer so the
pixbuf is scrolled in a double buffered way.
Now, the problem is that the text rendered into the pixbuf
is much larger than the usual widget texts, like on stock
GtkButton and GtkLabel. I attached the screenshot from
my example application.
How can I copy the PangoContext that a plain widget use?
E.g. the following code doesn't seem to work:
=================================
label->surface = cairo_image_surface_create_for_data(cairo_data,
CAIRO_FORMAT_ARGB32, width, height,
rowstride);
label->cairo = cairo_create (label->surface);
label->layout = pango_cairo_create_layout(label->cairo);
/* This is the layout used by GtkLabel, etc. */
layout = gtk_widget_create_pango_layout (GTK_WIDGET (label),
"This long string gives a good enough
length for any line to have.");
pango_cairo_context_set_font_options(
pango_layout_get_context(label->layout),
pango_cairo_context_get_font_options(pango_layout_get_context(layout)));
pango_cairo_update_context(label->cairo,
pango_layout_get_context(layout));
pango_layout_context_changed(label->layout);
g_object_unref (layout);
=================================
What is the proper way to get the same font, fontsize, etc. on a Cairo
layout?
Thanks in advance,
Zoltán Böszörményi
The following code also doesn't work, I get the same large font
for my GtkScrollLabel that my previously attached screenshot showed:
label->cairo = cairo_create (label->surface);
pango_cairo_update_context(label->cairo, gtk_widget_get_pango_context
(GTK_WIDGET(label)));
label->layout = pango_cairo_create_layout(label->cairo);
Is there and easy way to render the text in the same size as
GtkLabel's default?
Thanks in advance,
Zoltán Böszörményi
_______________________________________________
gtk-list mailing list
gtk-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]