Re: tuning widgets base size



that`s not GTK, that`s Gtkmm,right?
dynamic_cast in C?!

On Mon, Mar 2, 2009 at 12:19 PM, Garth's KidStuff
<garthskidstuff gmail com> 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);
   }

--
Garth Upshaw
Garth's KidStuff
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list




-- 
Um Computador sem Windows é como um Navio sem dançarinas de Can-Can



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]