Hi, Sebastian! static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event) { static GtkStyle *style = NULL;
int x = widget->allocation.x; int y = widget->allocation.y; int width = widget->allocation.width; int height = widget->allocation.height; if (!style) // key phrase: style = gtk_rc_get_style_by_paths(gtk_settings_get_default(), NULL, "GtkButton", GTK_TYPE_BUTTON); gtk_style_attach(style, widget->window); gtk_paint_box(style, widget->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, &event->area, widget, "button", x, y, width, height); gtk_style_detach(style); return FALSE; } Style engine may or may not heavily depend on widget's class or even properties, so don't expect exact emulation for all classes on all engines. I think it is why things are not documented. See $SRC/gtk/gtkbutton.c on how to paint button's focus, default, etc exactly as GtkButton does. -- Artur 19.12.09, 14:09, "Sebastian Pająk" <spcon...@gmail.com>: > Hi > I'm trying to create a shape for my custom widget using GtkStyle > (gtk_paint func. family). For a start I want a shape like a button has > (shadow + relief). This is my code for expose event: > static int > clv_expose(GtkWidget *widget, GdkEventExpose *event) // clv is a > subclass of GtkConainer > { > int x = widget->allocation.x; > int y = widget->allocation.y; > int width = widget->allocation.width; > int height = widget->allocation.height; > gtk_paint_box(widget->style, widget->window, > GTK_STATE_NORMAL, > GTK_SHADOW_IN, &event->area, > widget, "button", > x+4, y+4, width-8, height-8); > std::printf("EXPOSE"); > return FALSE; > } > clv_expose is connected and is called. Unfortunately it doesn't work. > Only empty, flat window is showing, no shadow like in a button. Do you > know what can be wrong? Is GtkConainer good for sublassing in this > situation? > I cannot find any info on gtk/gdk drawing using google (only cairo). > Gtk API reference is very poor abou it. Some hints, simple exmples or > howtos will be helpful for a GTK+ beginner like me :). > Thanks in advance > Sebastian > _______________________________________________ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list