GTK - Widget an Callback in Data-Argument uebergeben
-
Hallo,
das ganze schaut in etwa so aus:
static gboolean callback ( GtkWidget *widget , GdkEvent *event , GtkWidget *window ) { /*here i wanna save my entry fields*/ gtk_widget_destroy ( GTK_WINDOW ( window );} GtkWidget *setup_window () { /*making gui*/ window = gtk_window_new ( GTK_WINDOW_TOPLEVEL ); button_ok = gtk_button_new_with_label ( "OK" ); g_signal_connect_swapped ( G_OBJECT ( button_ok ) , "clicked" , G_CALLBACK ( callback ) , GTK_WINDOW ( window ) ); /*container aso.*/ }
Also das Problem hier ist ich weiss nicht wie den Zeiger window (4. Argument von g_signal_connect_swapped) an die funktion callback zu uebergeben.
Bekomme immer einen Speicherzugriffsfehler.
Solve me please!
-
Ist zwar früh am Morgen, aber funktioniert das so?
static gboolean callback ( GtkWidget *widget , GdkEvent *event , gpointer data ) { GtkWidget *window; window = (GtkWidget *)data; /*here i wanna save my entry fields*/ gtk_widget_destroy ( GTK_WINDOW ( window );} GtkWidget *setup_window () { /*making gui*/ window = gtk_window_new ( GTK_WINDOW_TOPLEVEL ); button_ok = gtk_button_new_with_label ( "OK" ); g_signal_connect_swapped ( G_OBJECT ( button_ok ) , "clicked" , G_CALLBACK ( callback ) , window ); /*container aso.*/ }
-
Oder versuchs doch einfach mal nur mit:
g_signal_connect(G_OBJECT ( button_ok ) , "clicked" , G_CALLBACK ( callback ) , window )