Donde asigno el callback:
Código C++:
Ver original
GtkWidget *botonAplicacion; botonAplicacion = gtk_button_new_with_label("X-Term"); g_signal_connect (botonAplicacion, "clicked", G_CALLBACK(MiClase::AbrirAplicacion), "xterm");
Y el callback en cuestión:
Código C++:
Ver original
void MiClase::AbrirAplicacion(char* app_command){ }
Básicamente quiero abrir un xterm al presionar el botón, por lo que el método AbrirAplicacion recibe como párametro un string con el nombre del programa a abrir. Alguno me puede echar un cable?, solo necesito pasar un string al callback. He probado castearlo a gpointer como pone la definición de g_signal_connect pero el compilador me da un error al convertirlo a char*.
Agradecería mucho una ayuda ya que he encontrado documentación pero no la logro comprender.
Ya lo he solucionado, para que funcione se debe castear a gpointer en el callback:
Código C++:
Ver original
g_signal_connect_swapped (botonAplicacion, "clicked", G_CALLBACK(MiClase::AbrirAplicacion), (gpointer)"xterm");
Y la conversión se debe hacer de gpointer a gchar en la función:
Código C++:
Ver original
void Miclase::AbrirAplicacion(gpointer* app_command){ }