Сам решил. Даже не знаю как. Вроде всегда до этого так делал. Вот на всякий случай выкладываю рабочий код.
| Код | #include <gnome.h>
void destroy() { gtk_main_quit(); }
void func_handle(GtkWidget *widget, gpointer data) { g_message("%s",(gchar*)data); }
GtkWidget * createB() { gchar *yep = "from function!"; GtkWidget *button = gtk_button_new_with_label("second"); g_signal_connect(G_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(func_handle),yep); gtk_widget_show(button); return button; }
int main(int argc, char **argv) {
GtkWidget *app; gnome_init("test","0.0",argc,argv); app = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(app),"destroy",GTK_SIGNAL_FUNC(destroy),NULL); gchar *yep = "from main!";
GtkWidget *box = gtk_vbox_new(TRUE,0); GtkWidget *button1 = gtk_button_new_with_label("first"); g_signal_connect(G_OBJECT(button1),"clicked",GTK_SIGNAL_FUNC(func_handle),yep); gtk_widget_show(button1); GtkWidget *button2 = createB(); gtk_box_pack_start(GTK_BOX(box), button1,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(box), button2,FALSE,FALSE,0); gtk_widget_show(box); gtk_container_add(GTK_CONTAINER(app),box);
gtk_widget_show(app); gtk_main(); return 0; }
| |