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

  1. ************************************************************************
  2. **                                                                    **
  3. **                        MUI - MagicUserInterface                    **
  4. **                                                                    **
  5. **                              Demo Release                          **
  6. **                                                                    **
  7. ************************************************************************
  8. **                                                                    **
  9. **                     written and copyrighted 1993 by                **
  10. **                                                                    **
  11. **                              Stefan Stuntz                         **
  12. **                                                                    **
  13. ************************************************************************
  14.  
  15.  
  16.  
  17. >> Übersicht
  18. ------------
  19.  
  20. MUI  (MagicUserInterface)  ist  ein  System,  das  dem Programmierer die
  21. Arbeit beim Erstellen von grafischen Benutzeroberflächen abnimmt.  Bitte
  22. jetzt nicht gleich mit dem Weiterlesen aufhören, MUI hat mit den anderen
  23. bekannten  Programmen  wie  z.B.   ToolMaker  oder GadToolsBox nicht das
  24. Geringste gemeinsam.  Diese Utilities sind im Prinzip nichts anderes als
  25. Gadget-Verschiebe-Programme, bei denen der Benutzer irgendwelche Objekte
  26. in  irgendwelchen Fenstern irgendwie anordnet.  Daraus resultieren weder
  27. schöne, noch einheitliche Benutzeroberflächen.
  28.  
  29. MUI  geht  einen  ganz anderen Weg.  GUIs bestehen hier aus Ansammlungen
  30. von  Objekten,  die  nach  bestimmten Vorschriften in Fenstern platziert
  31. werden.   Die  Spezifikation  einer  Benutzeroberfläche  geschieht dabei
  32. direkt  im  Source-Code  des  entsprechenden  Programms  und  könnte zum
  33. Beispiel (vereinfacht) so aussehen:
  34.  
  35.     WindowObject, VertChilds,
  36.  
  37.         Child, HorizChilds,
  38.             Child, DirectorylistObject,
  39.             Child, DevicelistObject,
  40.             End,
  41.  
  42.         Child, DrawerGadget,
  43.         Child, FileGadget,
  44.  
  45.         Child, HorizChilds,
  46.             Child, OkayButton,
  47.             Child, CancelButton,
  48.             End,
  49.  
  50.         End;
  51.  
  52. Im  Klartext:   Das  Fenster  besteht  aus  vier untereinander stehenden
  53. Objekten,  das  erste  Objekt  ist  seinerseits  wieder eine horizontale
  54. Anordnung  zweier  Listviewobjekte,  dann folgen zwei String Gadgets und
  55. schließlich,   wieder   horizontal,   die   obligatorischen   Okay-  und
  56. Cancel-Buttons.
  57.  
  58. Das  ist alles.  MUI erzeugt aus dieser Spezifikation eine wunderschöne,
  59. font-sensitive,  AUISG-konforme  Benutzeroberfläche  mit  allem drum und
  60. dran.  Auch die Verwaltung dieser Oberfläche (Größenveränderung, Bewegen
  61. in  Listviews, etc.) wird komplett von MUI übernommen, der Programmierer
  62. hat damit nichts mehr zu tun.
  63.  
  64. Im  Programm  heißt es also nicht:  An Position 23,120 befindet sich ein
  65. Button-Gadget  der  Größe  50,10  mit  dem Text "Okay" in der Schriftart
  66. "topaz/8",  sondern  man  spezifiziert lediglich die Gruppeneinteilungen
  67. und   Zugehörigkeiten   der   einzelnen   Objekte   untereinander.   Das
  68. eigentliche  Platzieren  der  Objekte wird dann während der Laufzeit des
  69. Programms vom MUI-System übernommen.
  70.  
  71.  
  72.  
  73. >> Warum MUI?
  74. -------------
  75.  
  76. - Wenig Arbeit für den Programmierer:
  77.  
  78. Selbst ein relativ unkompliziertes Fenster mit wenigen Gadgets wird sehr
  79. schwierig zu handhaben, wenn man die Oberfläche ansprechend und flexibel
  80. gestalten  will.   Soll  das  Fenster dann auch in der Größe veränderbar
  81. sein  und  sich  an  verschiedene  Zeichensätze  anpassen,  verliert man
  82. schnell  den Überblick.  Nachträgliches Einfügen/Verschieben von Gadgets
  83. wird  zur Qual.  MUI vermeidet diese Probleme.  Eine einmal spezifzierte
  84. Oberfläche   läuft  sozusagen  von  alleine,  ohne  weiteres  Zutun  des
  85. Programmierers.
  86.  
  87. - Zeichensatz-Sensitivität:
  88.  
  89. Die  meisten  Programme  (sogar  die Preferences von Commodore) arbeiten
  90. leider  immer  noch  mit  einem  festgelegten  topaz/8  Zeichensatz.  Im
  91. Zeitalter  von hochauflösenden Grafikkarten ist das natürlich nicht mehr
  92. vertretbar,  schon  bei  Highres/Interlace  wird  topaz/8 zum Witz.  MUI
  93. Objekte passen sich automatisch an alle Zeichensätze - natürlich auch an
  94. Proportionalschriften - an.
  95.  
  96. - Größenveränderbarkeit:
  97.  
  98. Manche   Programme  sind  heute  zwar  so  weit,  sich  an  verschiedene
  99. Zeichensätze  anzupassen,  aber  ein  Sizing-Gadget  ist immer noch eine
  100. Rarität.   Bei  diesen  Programmen wird zu Beginn eine fixe Fenstergröße
  101. errechnet,  die  dann  nicht  mehr  veränderbar  ist.  MUI geht hier den
  102. umgekehrten Weg:  Die momentane Fenstergröße ist immer Ausgangspunkt für
  103. das  Layout der Objekte.  Einzelne Objekte können dabei jeweils Minimal-
  104. und Maximal-Dimensionen haben, diese Werte werden dann zum Berechnen von
  105. Minimal-  und Maximal-Größen des zu Grunde liegenden Fensters verwendet.
  106. Natürlich  hat  der  Programmierer  auch  hiermit  nichts  zu  tun,  das
  107. MUI-System errechnet alle wichtigen Parameter automatisch.
  108.  
  109. - Flexibilität:
  110.  
  111. Die    Gestaltung    der    Benutzeroberflächen   kann   mittels   eines
  112. MUI-Preferences-Programms  vom  End-User  je  nach  Geschmack beeinflußt
  113. werden.   Hier  kann man z.B.  Zeichensätze konfigurieren, die Dicke der
  114. verwendeten Rahmen einstellen, das Aussehen der Standard-Images (Pfeile,
  115. Prop-Gadgets,  etc.)  verändern  und  vieles  mehr.   Wohlgemerkt, diese
  116. Einstellungen   trifft   der   Benutzer   eines   Programms,  nicht  der
  117. Programmierer.   Alle  MUI-Applikationen  werden sich automatisch an die
  118. Konfiguration anpassen.
  119.  
  120. - ARexx:
  121.  
  122. Jede  MUI-Applikation  hat  automatisch  einen  ARexx-Port, mit dem alle
  123. Aktionen  getätigt  werden können, die auch über GUI-Elemente erreichbar
  124. sind.   Außerdem  wird  der Applikation ein einfaches Interface (ähnlich
  125. AppShell) zur Verfügung gestellt, mit dem eigene Rexx-Befehle leicht und
  126. schnell implementiert werden können.
  127.  
  128.  
  129.  
  130. >> System-Anforderungen
  131. -----------------------
  132.  
  133. MUI läuft unter allen Betriebssystemversionen ab Kickstart 2.0.
  134.  
  135. Das MUI-System besteht aus einigen BOOPSI-Klassen, das Wort BOOPSI steht
  136. hier  für  "Basic  Object Oriented Programming System for Intuition" und
  137. ist   ein   von  Commodore  geschaffener  Standard  zur  Verwaltung  von
  138. objektorientierten  Elementen.  Zum Verständnis von MUI ist eine gewisse
  139. Kenntnis von BOOPSI und objektorientierter Programmierung Voraussetzung,
  140. eine  entsprechende  Dokumentation  findet  sich  zum  Beispiel  im "RKM
  141. Libraries."
  142.  
  143. Die  einzelnen  MUI-Klassen  sind  als  Shared  Libraries im Verzeichnis
  144. Sys:Classes/MUI/  abgelegt.   Das hat zum einen den Vorteil, daß nur die
  145. Klassen  geladen  werden,  die  im Moment wirklich benötigt werden.  Zum
  146. anderen muß der Code einer Klasse nur einmal im Speicher stehen und kann
  147. von allen Applikationen gleichzeitig genutzt werden.
  148.  
  149.  
  150.  
  151. >> Demo-Release
  152. ---------------
  153.  
  154. MUI  steht  kurz  vor  der  Fertigstellung.  Damit Ihr schon mal auf den
  155. Geschmack kommt, habe ich diese Demo-Version hier zusammengestellt.  Sie
  156. enthält  das  MUI-Preferences-Programm und ein Demo-Programm, das einige
  157. von  MUIs  Fähigkeiten demonstrieren soll.  Außerdem sind natürlich alle
  158. Klassen beigefügt, die von diesen beiden Applikationen benötigt werden.
  159.  
  160. Zum  Starten bitte einfach das "StartMe"-Icon anklicken.  Dadurch werden
  161. automatisch  das  Demo-Programm  und das Preferences-Programm gestartet.
  162. Empfehlenswert  ist  natürlich  auch  ein  Blick  in  den dokumentierten
  163. Source-Code "MUI-Demo.c".
  164.  
  165. Viel Spass beim Anschauen!
  166.  
  167.  
  168.  
  169. >> Autor
  170. --------
  171.  
  172. Fragen, Vorschläge, Ideen?  Immer her damit, am besten per e-mail.
  173.  
  174.                              Stefan Stuntz
  175.                         Eduard-Spranger-Straße 7
  176.                           D-W-8000 München 45
  177.                               Deutschland
  178.  
  179.                        Telefon: +49-(0)89-3131248
  180.  
  181.                                 Internet
  182.                     stuntz@informatik.tu-muenchen.de
  183.  
  184.                                 Fidonet
  185.                           2:246/46.10@fidonet
  186.