Gtk MessageDialog
-
Hallo,
folgendes Problem.
ich habe einen Thread laufen, wo sich (Socket Kommunikation) der Client zum Server verbinden soll über connect.
Wenn Server nicht zur Verfügung steht, soll er eine MessageDialogBox mit einem Fehler anzeigen.
Nachdem man auf Ok oder Kreuz geklickt hat, soll das Programm beendet werden.Mein Programm wartet jetzt aber nicht auf das ok, sondern schließt einfach das Programm.
Code-Ausschnitte:
// Thread: conRecv = connect(m_recv, (SOCKADDR*)&m_srv, sizeof(m_srv)); if (conRecv == -1) { // hier wird Messsage box gestartet (Ausschnitt siehe unten) writeBuf("alGuardianLogErrorInf", "connection for receiving from Arbiter failed"); // hier wird Programm dann geschlossen LogExit *exit = new LogExit; str = exit->quit(); gtk_widget_hide_all(gui.window); delete (exit); } } // ---------------------------------------------------- // writebuf: gui.dialog = gtk_message_dialog_new (GTK_WINDOW(gui.window), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Guardian Log Viewer Error:\n%s", operat1.c_str()); //paras = severity + "\n" + operat3; //gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(gui.dialog), paras.c_str()); // start running Message box in Threads gdk_threads_enter(); // adds a function to be called whenever there are no higher priority events pending. g_idle_add_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)&run, gui.dialog, NULL); gdk_threads_leave(); // ---------------------------------------------------- //run: gboolean run (void* arg) { gint response; // start Dialog window with error message response = gtk_dialog_run(GTK_DIALOG(arg)); gtk_widget_destroy(GTK_WIDGET(arg)); return false; }
Ich hoff ihr könnt euch einigermaßen was darunter vorstellen udn könnt mir evtl auch noch helfen..
wär super