On Tuesday 21 October 2003 22:26, Thorsten Haude wrote:
Soweit die Situation. Mein Problem ist folgendes: Für eine Erweiterung der FSB (Anzeigen von versteckten Dateien) muß ich zwei Listen quer durch getfiles.c schleppen. Wie soll ich das machen: 1. Mit modulglobalen Variablen in getfiles.c. 2. In einem Attribut der FSB, wodurch ich den Typ der Listen unnötigerweise auch in file.c bekanntmachen müßte.
Eine Übergabe der Listen durch Funktionsparameter kommt nicht in Frage, da einige der Beteiligten Funktionen Prototypfunktionen sind, deren Typ ich nicht ändern kann.
Vor globalen Variablen schrecke ich zurück, das habe ich bislang auch nicht gebraucht. Ich hoffe halt, daß es noch eine Lösung gibt, die ich bisher übersehen habe.
Es ist schon eine Weile her, daß ich zuletzt Motif programmiert habe...
Du wirst nicht darum herumkommen, diese Listen an das Widget zu hängen; sie
beziehen sich ja wohl auf eine Instanz der XmFileSelectionBox, nicht auf die
Widget-Klasse global.
Wenn Du das nicht tust, ist auch schon egal, ob die Dinger richtig global
sind, oder ob Du statische Variablen (oder per malloc() erzeugte) per
Funktion an die andere Seite übergibst, um sie dort in einer anderen
statischen Variablen abzulegen. Aufpassen mußt Du dann auf jeden Fall, daß Du
die Listen auch wieder richtig abräumst.
Ich weiß, daß das speziell mit Xt/Motif nicht einfach ist, aber hast Du schon
mal daran gedacht, das XmSelectionBox-Widget abzuleiten und um die gewünschte
Funktionalität zu erweitern?
Übrigens: All das sind die Gründe, warum ich schon lange auf C++/Qt
umgestiegen bin. ;-)
CU
--
Stefan Hundhammer