Gtk-Widget - Sensitive im ganzen Container

z.B. wxWidgets, GTK+, Qt, OpenGL, DirectX
Antworten
Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Gtk-Widget - Sensitive im ganzen Container

Beitrag von +Fuss+ » Di Dez 29, 2009 9:30 pm

Hallo,
im Moment bin ich dabei ein kleines Spiel in gtk+ zu schreiben.
Das Spielfeld besteht eigentlich nur aus einem fixed in dem es mehrere Buttons gibt.

Die Buttons sind Toggle-Buttons und in jedem Button ist ein entsprechendes Bild, da die Spielfeldbegrenzung analog dazu aufgebaut wird, besteht diese auch aus Toogle-Buttons mit Bildern. Die Buttons der Begrenzung sollen nicht anklickbar sein, Je nach Level sollen auch andere Toggles im Spielfeld nicht anklickbar sein.

Deswegen setze ich die Buttons mit

Code: Alles auswählen

gtk_widget_set_sensitive(toggle, FALSE);
auf deaktiviert. Allerdings werden dadurch auch alle untergeordneten Widgets deaktiviert (in diesem Fall die Bilder). Die Bilder werden grau.

Durch

Code: Alles auswählen

gtk_widget_set_sensitive(toggle, FALSE);
gtk_widget_set_sensitive(image, TRUE);
habe ich versucht, dies zu ändern, aber leider funktioniert das nicht.
Hat jemand eine Idee ob/wie es machbar ist, diese Bilder normal anzuzeigen, also den Button auf sensitive - FALSE, aber die Inhalte normal auf sensitive - True zu schalten?

Bin für jeden Tipp dankbar...

MfG Fuss

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8475
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Gtk-Widget - Sensitive im ganzen Container

Beitrag von Xin » Di Dez 29, 2009 10:50 pm

Sicher, dass toggle nicht ein Container ist, in dem die anderen Buttons drin liegen?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: Gtk-Widget - Sensitive im ganzen Container

Beitrag von +Fuss+ » Di Dez 29, 2009 11:13 pm

Ich verstehe gerade nicht so ganz wo drauf du hinaus willst.

Auf jeden Fall ist das so aufgebaut:
window -> fixed -> toggle_buttons -> images

Die sensitive-Einstellung des fixed, in dem die einzelnen toggle_buttons liegen, wird nicht geändert.
Jeder toggle_button, der deaktiviert sein soll, wird direkt nach dem erstellen einzeln auf sensitiv - FALSE umgestellt. Zu jedem einzelnen toggle_button gehört ja auch sein Container (in diesem Fall ein GTK_BIN) in dem dann das Bild liegt. Wenn ich einen toggle_button deaktiviere, deaktiviere ich alle seine Signale und der Button und sein Inhalt (das Bild) werden grau. Ich möchte allerdings nicht, das das Bild grau wird, aber da das Bild ja in dem Container des Buttons liegt, ist das nicht so einfach, wie ich es mir vorgestellt habe, deswegen habe ich ja nach einer Lösung gefragt.

MfG Fuss

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: Gtk-Widget - Sensitive im ganzen Container

Beitrag von +Fuss+ » Mi Dez 30, 2009 3:23 pm

Problem hat sich zwar nicht erledigt, aber ich habe es umgangen...
Einfach den Buttons ein Signal zugewiesen, in dem diese zurückgesetzt werden. Hat zwar auch seine Nachteile, funktioniert aber vorerst.

MfG Fuss, der mittlerweile weiß, warum man in gtk keine Spiele schreibt.

Antworten