Hmm... I just found theme on my box, that caused problem too (Raleigh). Do you see any warnings/errors in console while running?
(a.out:51454): Gtk-CRITICAL **: gtk_paint_box: assertion `GTK_IS_STYLE (style)' failed If yes, following may help... (works now with all themes i have + proper style refcounting). ============================================================== #include <gtk/gtk.h> static GtkWidget *window = NULL; static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event) { GtkStyle *style; int was_created; int x = widget->allocation.x; int y = widget->allocation.y; int width = widget->allocation.width; int height = widget->allocation.height; was_created = TRUE && (style = gtk_rc_get_style_by_paths(gtk_widget_get_settings(widget), NULL, "GtkButton", GTK_TYPE_BUTTON)); printf("was_created %d\n", was_created); if (was_created) style = gtk_style_attach(gtk_style_ref(style), widget->window); else style = widget->style; gtk_paint_box(style, widget->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, &event->area, widget, "button", x, y, width, height); if (was_created) { gtk_style_detach(style); gtk_style_unref(style); } return FALSE; } static GtkWidget * create_widget(void) { GtkWidget *vbox = gtk_vbox_new(FALSE, 4); GtkWidget *btn0 = gtk_vbox_new(FALSE, 0); GtkWidget *btn1 = gtk_button_new(); GtkWidget *btn2 = gtk_button_new(); GTK_WIDGET_SET_FLAGS(btn0, GTK_APP_PAINTABLE); g_signal_connect(btn0, "expose-event", (GCallback) expose_event, NULL); gtk_box_pack_start(GTK_BOX(vbox), btn0, 1, 1, 0); gtk_box_pack_start(GTK_BOX(vbox), btn1, 1, 1, 0); gtk_box_pack_start(GTK_BOX(vbox), btn2, 1, 1, 0); gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); gtk_widget_show_all(vbox); return vbox; } int main(int argc, char *argv[]) { gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(window), 400, 300); auto void on_destroy(void); auto void on_destroy(void) { gtk_main_quit(); } g_signal_connect(window, "destroy", (GCallback) on_destroy, NULL); gtk_container_add(GTK_CONTAINER(window), create_widget()); gtk_widget_show(window); gtk_main(); return 0; } ============================================================== ps. just googled: Raleigh is "no-engine" theme, maybe "MS-Windows" is same for win32?? -- Artur 20.12.09, 23:00, "Sebastian Pająk" <spcon...@gmail.com>: > Thanks. The code compiles, but the painted box doesn't appear also. > But the fault is somewhere else. I found gtk_paint_box doesn't work > with MS-Windows theme only. With any other theme no problem exists > (yes, I use gtk+ on win xp). It's weird because GtkButton also calls > this function and there is no problem drawing it even with MS-Windows > theme. I have no idea why it is so. Need to study gtk+ source more... > Sebastian _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list