In the situation I'm talking about, there is no GtkWidget object so your technique won't work. This is the code I'm going off of actually. Thus my question is how can I get a pango context from a GtkCellRendererText? wes On Tue, Sep 15, 2009 at 11:16 PM, Ken Resander <kresander@xxxxxxxxx> wrote: > > I also had a similar problem. Here is how I ended up doing it... > > > extern GttWidget * curdlg; // of current dialog > > void gettextwdht ( char * family , int ptsize , int weight , bool normalstyle , > char * stringtomeasure , > int * wdret , int * htret ) > { > PangoFontDescription * fd = pango_font_description_new ( ); > > pango_font_description_set_family (fd, family ); > pango_font_description_set_style (fd, normalstyle ? PANGO_STYLE_NORMAL : > PANGO_STYLE_ITALIC ); > pango_font_description_set_variant (fd, PANGO_VARIANT_NORMAL); > pango_font_description_set_weight (fd, (PangoWeight)weight ); > pango_font_description_set_stretch (fd, PANGO_STRETCH_NORMAL); > pango_font_description_set_size (fd, ptsize * PANGO_SCALE); > > PangoContext * context = gtk_widget_get_pango_context ( curdlg ) ; > > PangoLayout * layout = pango_layout_new ( context ); > pango_layout_set_text ( layout, stringtomeasure, -1 ); > pango_layout_set_font_description ( layout, fd ); > pango_layout_get_pixel_size (layout, wdret , htret ); > g_object_unref ( layout ); > } > > You can 'borrow' any widget for this (I think). It worked with a dialog widget for me. > > I really wanted a PangoContext that is not associated with a widget, so the calculations can be carried out totally 'offline'. I could not see how to do that. > If anyone knows, I would be interested in finding out. > > P.S. The code shown above combines getting a font and measuring it. The actual code I am using splits these into two steps for efficiency. > > ---- > Hi, > I'm banging my head trying to figure out how to measure the text width > of a string to be displayed in a GtkCelRendererText. From the code > I've found, I need a PangoContext and GtkCelRendererText has plenty of > Pango properties but none that return a PangoContext. In addition, > GtkCelRendererText is not a GtkWidget, so I can't use > gtk_widget_get_pango_context(). I'm at a loss as to how to do this. > Any ideas? > > > ________________________________ > Get your new Email address! > Grab the Email name you've always wanted before someone else does! > _______________________________________________ > gtk-list mailing list > gtk-list@xxxxxxxxx > http://mail.gnome.org/mailman/listinfo/gtk-list > _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list