home *** CD-ROM | disk | FTP | other *** search
- ************************************************************************
- ** **
- ** MUI - MagicUserInterface **
- ** **
- ** Demo Release **
- ** **
- ************************************************************************
- ** **
- ** written and copyrighted 1993 by **
- ** **
- ** Stefan Stuntz **
- ** **
- ************************************************************************
-
-
-
- >> Übersicht
- ------------
-
- MUI (MagicUserInterface) ist ein System, das dem Programmierer die
- Arbeit beim Erstellen von grafischen Benutzeroberflächen abnimmt. Bitte
- jetzt nicht gleich mit dem Weiterlesen aufhören, MUI hat mit den anderen
- bekannten Programmen wie z.B. ToolMaker oder GadToolsBox nicht das
- Geringste gemeinsam. Diese Utilities sind im Prinzip nichts anderes als
- Gadget-Verschiebe-Programme, bei denen der Benutzer irgendwelche Objekte
- in irgendwelchen Fenstern irgendwie anordnet. Daraus resultieren weder
- schöne, noch einheitliche Benutzeroberflächen.
-
- MUI geht einen ganz anderen Weg. GUIs bestehen hier aus Ansammlungen
- von Objekten, die nach bestimmten Vorschriften in Fenstern platziert
- werden. Die Spezifikation einer Benutzeroberfläche geschieht dabei
- direkt im Source-Code des entsprechenden Programms und könnte zum
- Beispiel (vereinfacht) so aussehen:
-
- WindowObject, VertChilds,
-
- Child, HorizChilds,
- Child, DirectorylistObject,
- Child, DevicelistObject,
- End,
-
- Child, DrawerGadget,
- Child, FileGadget,
-
- Child, HorizChilds,
- Child, OkayButton,
- Child, CancelButton,
- End,
-
- End;
-
- Im Klartext: Das Fenster besteht aus vier untereinander stehenden
- Objekten, das erste Objekt ist seinerseits wieder eine horizontale
- Anordnung zweier Listviewobjekte, dann folgen zwei String Gadgets und
- schließlich, wieder horizontal, die obligatorischen Okay- und
- Cancel-Buttons.
-
- Das ist alles. MUI erzeugt aus dieser Spezifikation eine wunderschöne,
- font-sensitive, AUISG-konforme Benutzeroberfläche mit allem drum und
- dran. Auch die Verwaltung dieser Oberfläche (Größenveränderung, Bewegen
- in Listviews, etc.) wird komplett von MUI übernommen, der Programmierer
- hat damit nichts mehr zu tun.
-
- Im Programm heißt es also nicht: An Position 23,120 befindet sich ein
- Button-Gadget der Größe 50,10 mit dem Text "Okay" in der Schriftart
- "topaz/8", sondern man spezifiziert lediglich die Gruppeneinteilungen
- und Zugehörigkeiten der einzelnen Objekte untereinander. Das
- eigentliche Platzieren der Objekte wird dann während der Laufzeit des
- Programms vom MUI-System übernommen.
-
-
-
- >> Warum MUI?
- -------------
-
- - Wenig Arbeit für den Programmierer:
-
- Selbst ein relativ unkompliziertes Fenster mit wenigen Gadgets wird sehr
- schwierig zu handhaben, wenn man die Oberfläche ansprechend und flexibel
- gestalten will. Soll das Fenster dann auch in der Größe veränderbar
- sein und sich an verschiedene Zeichensätze anpassen, verliert man
- schnell den Überblick. Nachträgliches Einfügen/Verschieben von Gadgets
- wird zur Qual. MUI vermeidet diese Probleme. Eine einmal spezifzierte
- Oberfläche läuft sozusagen von alleine, ohne weiteres Zutun des
- Programmierers.
-
- - Zeichensatz-Sensitivität:
-
- Die meisten Programme (sogar die Preferences von Commodore) arbeiten
- leider immer noch mit einem festgelegten topaz/8 Zeichensatz. Im
- Zeitalter von hochauflösenden Grafikkarten ist das natürlich nicht mehr
- vertretbar, schon bei Highres/Interlace wird topaz/8 zum Witz. MUI
- Objekte passen sich automatisch an alle Zeichensätze - natürlich auch an
- Proportionalschriften - an.
-
- - Größenveränderbarkeit:
-
- Manche Programme sind heute zwar so weit, sich an verschiedene
- Zeichensätze anzupassen, aber ein Sizing-Gadget ist immer noch eine
- Rarität. Bei diesen Programmen wird zu Beginn eine fixe Fenstergröße
- errechnet, die dann nicht mehr veränderbar ist. MUI geht hier den
- umgekehrten Weg: Die momentane Fenstergröße ist immer Ausgangspunkt für
- das Layout der Objekte. Einzelne Objekte können dabei jeweils Minimal-
- und Maximal-Dimensionen haben, diese Werte werden dann zum Berechnen von
- Minimal- und Maximal-Größen des zu Grunde liegenden Fensters verwendet.
- Natürlich hat der Programmierer auch hiermit nichts zu tun, das
- MUI-System errechnet alle wichtigen Parameter automatisch.
-
- - Flexibilität:
-
- Die Gestaltung der Benutzeroberflächen kann mittels eines
- MUI-Preferences-Programms vom End-User je nach Geschmack beeinflußt
- werden. Hier kann man z.B. Zeichensätze konfigurieren, die Dicke der
- verwendeten Rahmen einstellen, das Aussehen der Standard-Images (Pfeile,
- Prop-Gadgets, etc.) verändern und vieles mehr. Wohlgemerkt, diese
- Einstellungen trifft der Benutzer eines Programms, nicht der
- Programmierer. Alle MUI-Applikationen werden sich automatisch an die
- Konfiguration anpassen.
-
- - ARexx:
-
- Jede MUI-Applikation hat automatisch einen ARexx-Port, mit dem alle
- Aktionen getätigt werden können, die auch über GUI-Elemente erreichbar
- sind. Außerdem wird der Applikation ein einfaches Interface (ähnlich
- AppShell) zur Verfügung gestellt, mit dem eigene Rexx-Befehle leicht und
- schnell implementiert werden können.
-
-
-
- >> System-Anforderungen
- -----------------------
-
- MUI läuft unter allen Betriebssystemversionen ab Kickstart 2.0.
-
- Das MUI-System besteht aus einigen BOOPSI-Klassen, das Wort BOOPSI steht
- hier für "Basic Object Oriented Programming System for Intuition" und
- ist ein von Commodore geschaffener Standard zur Verwaltung von
- objektorientierten Elementen. Zum Verständnis von MUI ist eine gewisse
- Kenntnis von BOOPSI und objektorientierter Programmierung Voraussetzung,
- eine entsprechende Dokumentation findet sich zum Beispiel im "RKM
- Libraries."
-
- Die einzelnen MUI-Klassen sind als Shared Libraries im Verzeichnis
- Sys:Classes/MUI/ abgelegt. Das hat zum einen den Vorteil, daß nur die
- Klassen geladen werden, die im Moment wirklich benötigt werden. Zum
- anderen muß der Code einer Klasse nur einmal im Speicher stehen und kann
- von allen Applikationen gleichzeitig genutzt werden.
-
-
-
- >> Demo-Release
- ---------------
-
- MUI steht kurz vor der Fertigstellung. Damit Ihr schon mal auf den
- Geschmack kommt, habe ich diese Demo-Version hier zusammengestellt. Sie
- enthält das MUI-Preferences-Programm und ein Demo-Programm, das einige
- von MUIs Fähigkeiten demonstrieren soll. Außerdem sind natürlich alle
- Klassen beigefügt, die von diesen beiden Applikationen benötigt werden.
-
- Zum Starten bitte einfach das "StartMe"-Icon anklicken. Dadurch werden
- automatisch das Demo-Programm und das Preferences-Programm gestartet.
- Empfehlenswert ist natürlich auch ein Blick in den dokumentierten
- Source-Code "MUI-Demo.c".
-
- Viel Spass beim Anschauen!
-
-
-
- >> Autor
- --------
-
- Fragen, Vorschläge, Ideen? Immer her damit, am besten per e-mail.
-
- Stefan Stuntz
- Eduard-Spranger-Straße 7
- D-W-8000 München 45
- Deutschland
-
- Telefon: +49-(0)89-3131248
-
- Internet
- stuntz@informatik.tu-muenchen.de
-
- Fidonet
- 2:246/46.10@fidonet
-