home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CDPD Public Domain Collection for CDTV 3
/
CDPDIII.bin
/
pd
/
programming
/
utils
/
mui-demo
/
liesmich
next >
Wrap
Text File
|
1993-04-26
|
8KB
|
186 lines
************************************************************************
** **
** 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