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