MBoerner
06-02-2014, 08:15
Hallo!
ich habe ein non modales Dialog mit 2 Buttons: OK und abbrechen.
Der Benutzer muss das Dialog nicht darauf klicken, aber wenn er es schließt, möchte ich wissen mit welchem Button er das geschlossen hat.
Ich mache es so:
dialog = gtk_message_dialog_new(parent, GTK_DIALOG_DESTROY_WITH_PARENT, messageType, GTK_BUTTONS_OK_CANCEL, "%s", meldung);
g_signal_connect_swapped(nm_local.info_dialog, "response", G_CALLBACK (cb_on_close_non_modal), dialog);
static gboolean cb_on_close_non_modal(GtkWidget *widget, gpointer data)
{
// hier unterscheiden, was für ein Button gedrückt wurde
switch (response)
{
case GTK_BUTTON_OK: do this
break;
case GTK_BUTTON_CANCEL: do that
break;
}
return FALSE;
}
In der Funktion cb_on_close_non_modal möchte ich gern unterscheiden, ob der Benutzer "OK" oder "Cancel" gedrückt hat.
Ich kann die Funktion response = gtk_dialog_run (GTK_DIALOG (dialog));
NICHT benutzen, weil ich ein non modales Dialog möchte.
Kann mir jemand sagen, woher ich die Antwort des Benutzers bekommen kann?
Danke im Voraus für Eure Hilfe
ich habe ein non modales Dialog mit 2 Buttons: OK und abbrechen.
Der Benutzer muss das Dialog nicht darauf klicken, aber wenn er es schließt, möchte ich wissen mit welchem Button er das geschlossen hat.
Ich mache es so:
dialog = gtk_message_dialog_new(parent, GTK_DIALOG_DESTROY_WITH_PARENT, messageType, GTK_BUTTONS_OK_CANCEL, "%s", meldung);
g_signal_connect_swapped(nm_local.info_dialog, "response", G_CALLBACK (cb_on_close_non_modal), dialog);
static gboolean cb_on_close_non_modal(GtkWidget *widget, gpointer data)
{
// hier unterscheiden, was für ein Button gedrückt wurde
switch (response)
{
case GTK_BUTTON_OK: do this
break;
case GTK_BUTTON_CANCEL: do that
break;
}
return FALSE;
}
In der Funktion cb_on_close_non_modal möchte ich gern unterscheiden, ob der Benutzer "OK" oder "Cancel" gedrückt hat.
Ich kann die Funktion response = gtk_dialog_run (GTK_DIALOG (dialog));
NICHT benutzen, weil ich ein non modales Dialog möchte.
Kann mir jemand sagen, woher ich die Antwort des Benutzers bekommen kann?
Danke im Voraus für Eure Hilfe