Hallo Community,

ich wollte mal wieder Programmieren und dachte mir ich nehm meine alten Delphi-Beispiele aus der Schule und versuche mich mal in der GUI-Programmierung mit C.

Hab mir dazu Gtk+ ausgesucht - hat mir gefühlsmäßig besser gefallen...

Hab mir jetzt erst einmal mit Glade ne GUI gebaut und nach Tutorial das ganze zum laufen gebracht:
Bildschirmfoto-Schere-Stein-Papier.png
Bekomme es auch schon hin, das Button-clicked-Signal zu nutzen und dort abzufragen, welcher RadioButton gedrückt wird:
Code:
void on_button1_clicked ( GtkButton	*button1,
                          GSList   	*radio_list
                        ) {
	GtkWidget *radio;
	int i;
	
	for(i = 0; i < g_slist_length(radio_list); ++i) {
		radio = g_slist_nth_data(radio_list, i);
		/* radio != NULL check misses */
		g_printf("%d. Durchlauf, ", i); /* Control of break */
		if(gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio) )) {
			g_printf("Button %d gedrueckt\n", 3-i);
			break;
		}
	}
	g_print("Kontrolle\n");
}
Jetzt zu meinem Problem:
Wenn ich das so ausführe wird mir korrekt angezeigt, welcher RadioButton aktiv ist, allerdings wird die Kontrolausgabe nach der for-Schleife, sowohl vorher als auch hinterher ausgegeben:
chris@Terra-Lap:Schere_Stein_Papier$ gcc -o game_SSP game_SSP.c $(pkg-configflags --libs gtk+-2.0 gmodule-2.0)
chris@Terra-Lap:Schere_Stein_Papier$ ./game_SSP
Kontrolle
0. Durchlauf, 1. Durchlauf, 2. Durchlauf, Button 1 gedrueckt
Kontrolle
Kontrolle
0. Durchlauf, 1. Durchlauf, Button 2 gedrueckt
Kontrolle
Kontrolle
0. Durchlauf, Button 3 gedrueckt
Kontrolle
Wodurch tritt dieser Effekt auf? Ist das Normal?

Dann noch ne Frage zur Benutzung von Gtk+:
Wenn ich jetzt in dem Button-clicked callback
  • KI-Auswahl
  • Info-Ausgabe
  • Punkteveränderung
setzen will, muss ich dann die betroffenen Objekte mit übergeben, oder kann ich einfach darauf zugreifen?

THX 4 Help
PS: Quellcode im Anhang