Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[C++] Gtk-2.0 Dialogs

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik ben in C++ met hulp van SDL lib een eenvoudig spelletje aan het maken. Nu wilde ik met GTK dialogs maken als er een nieuw spel start. De code ziet er zo uit:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * Voor het versturen van een simpel bericht.
 */
void SendMessage(char *title, char *message)
{
    // Gtk Dialog
    GtkWidget *dialog, *label;
    dialog = gtk_dialog_new_with_buttons(title, NULL, GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
    label = gtk_label_new(message);
    g_signal_connect(dialog, "response", G_CALLBACK(response), NULL);
    g_signal_connect(dialog, "delete_event", G_CALLBACK(delete_event), NULL);

    /* Voeg label toe en laat het zien! */
    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
    gtk_widget_show_all(dialog);

    gint result = gtk_dialog_run(GTK_DIALOG(dialog));
    gtk_widget_destroy(dialog);
}


Alleen na het sluiten verdwijnt het venster niet, het reageert niet meer. Hoe los ik dit op? Ik heb geen hoofdvenster en als ik gtk_main aanroep verdwijnt het venster wel maar ik wil gtk_main helemaal niet aanroepen. Ergens in de gtk-loop wordt dus de troep-resten afgehandeld. Moet ik gewoon een nieuw venster aanmaken in plaats van een dialog of kan het wel zo maar vergeet ik wat?

Alvast bedankt,

Peter

[ Voor 0% gewijzigd door een moderator op 18-08-2008 01:31 . Reden: ff highlighting aangezet voor een wat fleurigere posting :P ]


Verwijderd

Ik heb niet genoeg ervaring met Gtk om je te helpen, maar waarom gebruik je de C-bindings van Gtk in een C++-applicatie? Met Gtkmm heb je alle voordelen van object-oriented programming erbij.

Oh, en hier is een simpele C-lib die SDL in Gtk wrapt: http://sourceforge.net/projects/gtksdl/ De laatste release is wel van 2001, maar misschien dat je wat aan de code hebt.

[ Voor 31% gewijzigd door Verwijderd op 17-08-2008 17:12 ]


Verwijderd

Topicstarter
Omdat ik meer ervaring heb met GTK+ en niet met de C++ binding. Misschien wel iets netter om te gebruiken maar het maakt mij niet echt veel uit. Ga denk gewoon een nieuw venster aanmaken want dat blijkt wel te werken.