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]