[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: tuning widgets base size
- From: Alexander <b3nder yandex ru>
- To: gtk-app-devel-list gnome org
- Subject: Re: tuning widgets base size
- Date: Mon, 2 Mar 2009 19:26:05 +0300
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?
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]