How to modify the style of a gtkmm application?
- From: BALLABIO GERARDO <GERARDO BALLABIO ESTERNI GRUPPO MPS IT>
- To: "gtkmm-list gnome org" <gtkmm-list gnome org>
- Subject: How to modify the style of a gtkmm application?
- Date: Fri, 17 Jun 2011 09:10:05 +0200
Hi all,
I want to modify the default style (enlarge the font) of a gtkmm application (gtkmm 2, not 3). I was expecting that if I modified the style of the toplevel window, the modification would be propagated down to its children. But that doesn't seem to happen.
See the attached example: calling modify_font on a label does indeed produce the desired effect. Calling it on the main window, however, does nothing -- only the first label's font is enlarged.
Can you please tell me how to change the style of all an application's widgets at once?
Thank you
Gerardo
#include <gtkmm.h>
class MainWindow : public Gtk::Window
{
private:
Gtk::HBox hbox;
Gtk::Label label1, label2;
public:
MainWindow();
};
MainWindow::MainWindow()
{
add(hbox);
hbox.pack_start(label1, Gtk::PACK_SHRINK);
label1.set_label(" Label 1 ");
hbox.pack_start(label2, Gtk::PACK_SHRINK);
label2.set_label(" Label 2 ");
show_all_children();
// try changing font size
Pango::FontDescription fd = get_pango_context()->get_font_description();
fd.set_size(fd.get_size() * 2);
label1.modify_font(fd); // change label style directly: ok
modify_font(fd); // change parent window style: doesn't propagate to children
}
int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
MainWindow window;
Gtk::Main::run(window);
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]