On Monday 02 March 2009, Garth's KidStuff wrote:
> > But this doesn't work. What is the right solution of my problem? Finaly I
> want make widgets smaller than default widgets, like
> > toolbox widgets in The GIMP.
> 
> 
> void LXDialog::ShrinkWidgetFont(
>     Gtk::Widget* pCtrl, // [in] Control to shrink the text of
>     real scale) // [in] scale factor (should be < 1.0 to shrink control)
> {
>     // Different kinds of controls need different sub-objects' font resized
>     Gtk::Frame* pFrame = dynamic_cast<Gtk::Frame*>(pCtrl);
>     if (NULL != pFrame) // e.g. Frames have label widgets they use to
> display their text
>         pCtrl = pFrame->get_label_widget();
>     else
>     { // ...and radio buttons and check buttons are simply containers with a
> single label child
>         Gtk::Bin* pBin = dynamic_cast<Gtk::Bin*>(pCtrl);
>         if (NULL != pBin)
>             pCtrl = pBin->get_child();
>     }
> 
>     Gtk::Label* pLabel = dynamic_cast<Gtk::Label*>(pCtrl);
>     if (NULL != pLabel)
>     { // Other controls might not have a label whose font we need to set
>         Glib::RefPtr<Pango::Context> pPangoContext =
> pLabel->get_pango_context();
>         Pango::FontDescription fontD =
> pPangoContext->get_font_description();
>         fontD.set_size((int)(scale * fontD.get_size()));
>         pLabel->modify_font(fontD);
>     }
> 

Thanks, I've already found similar solution for gtk - gtk_widget_modify_font();

BTW, manual gives about get_font_description():

"A pointer to the context's default font description. This value must not be 
modified or freed"

According to this words object fontD shouldn't be mofified. Am I right?
 


_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to