I have a GnomeUIInfo structure: static GnomeUIInfo toolbar [] = { GNOMEUIINFO_ITEM_STOCK (N_("Admin"), N_("Admin tip"), admini_toolbar_button, "./admin.xpm"), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_ITEM_STOCK (N_("Inst"), N_("Inst tip"), inst_toolbar_button, "./inst.xpm"), GNOMEUIINFO_END }; Well, I need pass a argument to "admin_toolbar_button" and "inst_toolbar_button", but I don't know. In GnomeHello example we can see: static GnomeUIInfo toolbar [] = { GNOMEUIINFO_ITEM_STOCK (N_("New"), N_("Create a new hello"), nothing_cb, GNOME_STOCK_PIXMAP_NEW), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_ITEM_STOCK (N_("Prev"), N_("Previous hello"), nothing_cb, GNOME_STOCK_PIXMAP_BACK), GNOMEUIINFO_ITEM_STOCK (N_("Next"), N_("Next hello"), nothing_cb, GNOME_STOCK_PIXMAP_FORWARD), GNOMEUIINFO_END }; ...... static void nothing_cb(GtkWidget* widget, gpointer data) { GtkWidget* dialog; GtkWidget* app; app = (GtkWidget*) data; dialog = gnome_ok_dialog_parented( _("This does nothing; it is only a demonstration."), GTK_WINDOW(app)); } Well, "widget" and "data" arguments where are they from?. The caller in GnomeUIInfo don't have any arguments. I think that I don't understand very well this concept. Thanks. -- To unsubscribe: mail -s unsubscribe [EMAIL PROTECTED] < /dev/null