[linux-l] Grammar Design
Peter Ross
Peter.Ross at alumni.tu-berlin.de
Di Jul 12 04:56:42 CEST 2005
On Mon, 11 Jul 2005, Oliver Bandel wrote:
> On Tue, Jul 12, 2005 at 12:50:38AM +1000, Peter Ross wrote:
>>
>> http://www.faqs.org/faqs/motif-faq/part8/section-7.html
>
> Schade, dass die dynamischen Sachen nicht auch so verarbeitet werden.
> Ich denke ueber sowas schon lange, lange immer wieder mal nach.
> Eine GUI-Language. Aber eben auch fuer die dynamischen Sachen.
Du kannst in den UIL-Files ganze Baeume von GUI-Elementen
spezifizieren, deren Wurzel im C-Code mit einem Befehl geladen wird.
D.h. Du kannst z.B. mit einem Lade-Befehl die gesamte GUI neu laden (z.B.
bei Kontext-Wechseln)
Im UIL-File gibst Du die Callbacks an, die dann im C-Code implementiert
werden. dort koennte u.a. ein Befehl stehen, der die UIL neulaedt,
einzelne Elemente aendert (z.B. Menupunkte als nichtanklickbar
kennzeichnet), und natuerlich sollte jedes Programm auch mal was
"Richtiges" tun (rechnen oder so) Aber immerhin gibt die UIL und die
Implementierung der GUI-Dynamik im Callback-Context einen guten
Prototypen.
Die GUI-Wechsel in die Callbacks bereits in der UIL zu stecken, waere
sicher nett.
Koennte ein Parser "davor" machen, der Elemente wie
Callback {
"Menupunkt_1".Sichtbarkeit="Falsch"
}
in entsprechende C-Callback-Stubs umwandelt, etwa
Callback {
XmAendereWert(UILGetWidget("Menupunkt_1", Sichtbarkeit, "Falsch");
}
(Ich schreibe das jetzt alles im PseudoCode, ich habe das seit 10 Jahren
nicht mehr programmiert).
Elemente der Klasse XmString koennen von links nach rechts oder oben nach
unten geschrieben werden (und XmMenus so ausgerichtet werden) - und es ist
ganz einfach, mal die Sprache zu wechseln - lade eine andere Hierachie von
Menus und Strings - das war's dann)
Es gab Anfang der 90er den ISA Dialog Manager (aus Stuttgart, wenn ich
mich nicht irre), der ein Design-Tool bot, um eine UIL-aehnliche Sprache
zu erzeugen, die dann in die damals gaengigen Toolkits (Motif,
OpenWindows, AlphaWindows (curses-basiert) und MS Windows eingebettet
werden konnte.
In gewisser Form gibt es das mit den Ressource-Dateien unter Windows auch
seit spaetestens Windows-3.1.
Ich fand das auch interessant und wesentlich besser als die Rumhackerei
direkt im Code, wie das bis heute passiert, und ich verstehe einfach
nicht, warum in der IT so wenig auf Bewaehrtes zurueckgegriffen und dieses
verbessert wird.. Anstatt muss alles immer wieder neuerfunden werden. Dann
gibt's mal wxWindows, Qt, Gnome, KDE, Swing.. Und jeder GUI-Kram muss
wieder neueingehackt werden. Wieviele Entwickler in wievielen
Programmier/GUI-Sprachen wohl das File-Open-Save Menu getippt haben..
Gruss
Peter
Mehr Informationen über die Mailingliste linux-l