home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / system / sm_1_31.lha / SM / SM.anl < prev    next >
Text File  |  1993-09-09  |  30KB  |  791 lines

  1.  
  2.                    ScreenManager by Bernhard M÷llemann
  3.                           all rights reserved
  4.  
  5.  
  6.                Hilfsprogramm zum Verwalten von Public-Screens
  7.  
  8.                               Version V1.31
  9.  
  10.  
  11. ScreenManager (SM) ist ein kleines CLI-Programm, um Public-Screens zu
  12. ÷ffnen, schlie▀en oder noch andere Dinge zu tun. Die Screens k÷nnen
  13. mit frei wΣhlbarer Aufl÷sung und Farben ge÷ffnet werden. Auch die
  14. DrawInfo, die bestimmt, welche Farbe fⁿr Glanzeffekte verwendet wird,
  15. ist wΣhlbar.
  16. SM kann aber auch bestimmte Screens zum System-Default-Screen machen
  17. und die anderen Public-Screen-Modes Σndern. Au▀erdem ist es m÷glich,
  18. sich eine Liste aller Screens im System ausgeben zu lassen oder sich ⁿber
  19. Aufl÷sung und andere Eigenschaften eines Screens zu informieren.
  20.  
  21. Diese Anleitung gliedert sich in 6 Teile:
  22.   Copyright
  23.   CLI
  24.   Beispiele
  25.   Workbench
  26.   HotKeys
  27.   Schlu▀
  28. Das Copyright _mu▀_ jeder lesen! Wer schnell etwas ausprobieren
  29. will, sollte danach einfach die Beispiele durchprobieren. Die
  30. ernsthaften Anwender kommen allerdings nicht um die Lektⁿre der
  31. CLI-Optionen herum.
  32.  
  33.  
  34.                              Copyright
  35.                              ---------
  36.  
  37. Das Programmpaket ScreenManager ist Copyright 1993 Bernhard M÷llemann.
  38. Alle Rechte vorbehalten.
  39.  
  40. Die Benutzung des Programms ScreenManager geschieht auf eigenes
  41. Risiko. Falls durch die Benutzung des Programms irgendein Schaden
  42. entsteht, kann der Autor dafⁿr nicht haftbar gemacht werden.
  43.  
  44.  
  45. Dieses Programm ist frei kopierbar, solange folgende Regeln eingehalten
  46. werden:
  47.  
  48.  ╖ ScreenManager darf nur als Ganzes verbreitet werden. Es mⁿssen folgende
  49.    Dateien in dieser Anordnung kopiert werden:
  50.      SM/ScreenManager
  51.      SM/ScreenManager.info
  52.      SM/SM.doc
  53.      SM/SM.anl
  54.      SM/SM.ver
  55.      SM/SM.doc.info
  56.      SM/SM.anl.info
  57.      SM/SM.ver.info
  58.      SM.info
  59.      SM.displayme
  60.  
  61.  ╖ Das Paket darf nur in ungepackter Form oder als LhA-Archiv verbreitet
  62.    werden. Das LhA-Archiv mu▀ als SM_1_31.lha oder SM.lha verbreitet hei▀en.
  63.  
  64.  ╖ Weder das Archiv noch eine der Dateien dⁿrfen verΣndert werden. Einzige
  65.    Ausnahme ist das Entfernen von Dateien, die nicht zum Archiv geh÷ren.
  66.  
  67.  ╖ Es darf kein Gewinn mit dem Verkauf, Vertrieb oder Kopieren des
  68.    Programms erwirtschaftet werden.
  69.  
  70.  ╖ Es darf ausschlie▀lich auf folgenden Public-Domain Disketten
  71.    verbreitet werden:
  72.      AmigaLibDisks von Fred Fish
  73.      AUGS (Amiga User Group Switzerland)
  74.      AmigaJUICE
  75.      SAUG (Saarbrⁿckener Amiga User Group)
  76.      Time
  77.  
  78.  ╖ Es darf nicht ohne meine Einwilligung auf CD-ROMs verbreitet
  79.    werden.
  80.  
  81. Alle, die eine der oben ausgeschlossenen Formen der Verbreitung
  82. wⁿnschen, mⁿssen eine schriftliche Erlaubnis des Autors haben.
  83.  
  84. Diese gibt es bei:
  85.  
  86.     Bernhard M÷llemann
  87.     Luisenstra▀e 17
  88.  
  89.     76137 Karlsruhe
  90.     Germany
  91.  
  92.  
  93.                                CLI
  94.                                ---
  95.  
  96. Wie gesagt, lΣ▀t sich mit dem ScreenManager das "Screen-System" des
  97. Amiga kontrollieren. Es ist noch nicht m÷glich, das mit der Maus zu
  98. machen. Eine GUI ist am Entstehen, aber noch nicht fertig.
  99.  
  100. Da es Public-Screens erst ab OS2.0 gibt, ist dieses natⁿrlich
  101. Voraussetzung. Der ScreenManager sollte jedoch auch mit h÷heren
  102. Betriebssystemversionen laufen.
  103.  
  104. Bliebe eigentlich nur noch zu sagen, da▀ der ScreenManager auch
  105. resi(dent) gemacht werden kann!
  106.  
  107. Es gibt sechs verschiedene Aufgaben, die der ScreenManager l÷sen kann:
  108.   ╓ffnen von Screens
  109.   Schlie▀en von Screens
  110.   Informationen ⁿber Screen oder Graphikmodus liefern
  111.   Liste der Graphikmodi ausgeben
  112.   Schon ge÷ffnete Screens manipulieren
  113.   Globale Einstellungen Σndern
  114.  
  115. Das geschieht ⁿber jeweils einen Aufruf mit einer oder mehreren der
  116. folgenden Optionen (bitte nicht erschrecken!):
  117.   NAME:         Name des Screens
  118.  
  119.   OPEN:         einen neuen Screen ÷ffnen
  120.   CLOSE:        einen bestimmten Screen schlie▀en
  121.   INFO:         gibt Infos ⁿber einen Screen aus
  122.   LIST:         listet Screens oder Modi auf
  123.  
  124.   EXPERT/FORCE: gibt mehr Infos aus und schaltet einige Abfragen ab
  125.   QUIET:        unterdrⁿckt Fehlermeldungen im CLI
  126.  
  127.   TITLE:        Screentitel bei OPEN
  128.   DEPTH/PLANES: Anzahl der Bitplanes bei OPEN
  129.   MODE:         Aufl÷sung bei OPEN. Der Name des ScreenModes
  130.   DISPID:       alternativ zu MODE ist dies die DisplayID eines neuen
  131.                 Screens
  132.   SIZE/POS:     Gr÷▀e des Screens bei OPEN und Position beim Bewegen
  133.   DISPCLIP:     Gr÷▀e des sichtbaren Screenbereichs bei OPEN
  134.   COLORS:       Farben bei OPEN.
  135.   PENS:         Farbnummern fⁿr DrawInfo
  136.   NODRAG:       Der Screen kann nicht mit der Maus bewegt werden
  137.   EXCLUSIVE:    Der Screen wird immer allein dargestellt
  138.   INTERLEAVED:  verlangt Interleaved BitMaps fⁿr diesen Screen
  139.   PARENT:       Gibt einen Parent-Screen an, zu dem dieser ein Child wird
  140.   FONT:         Font, der bei OPEN vom Screen benutzt werden soll
  141.   FONTSIZE:     Gr÷▀e des obigen Fonts
  142.  
  143.   CLOSEGAD:     versieht Screen mit einem Closegadget
  144.   AUTOCLOSE:    schlie▀t Screen automatisch beim Schlie▀en des letzten
  145.                 Fensters
  146.   CX_TOFRONT:   HotKey, der den Screen nach vorne bringt
  147.   CX_DEFAULT:   HotKey, der den Screen zum System-Default-Screen macht
  148.   CX_PRIORITY:  PrioritΣt, auf der die HotKeys eingeklinkt werden
  149.  
  150.   TOFRONT:      Screen nach vorne bringen
  151.   TOBACK:       Screen nach hinten bringen
  152.   SHANGHAI:     Shanghai-Modus einschalten
  153.   NOSHANGHAI:   Shanghai-Modus ausschalten
  154.   POPPUB:       PopPub-Modus einschalten
  155.   NOPOPPUB:     PopPub-Modus ausschalten
  156.   DEFAULT:      Screen zum System-Default-Screen machen
  157.  
  158.  
  159. Das ist ziemlich viel und kompliziert dazu. Aber im Prinzip lassen
  160. sich ja nur sechs verschiedene Sachen damit machen, der Rest sind
  161. Parameter dafⁿr.
  162.  
  163.  
  164. 1.1)  OPEN
  165.  
  166.   ╓ffnet einen neuen Screen. Wenn der Screen schon existiert, bekommt
  167.   man eine entsprechende Fehlermeldung serviert. Folgende Argumente
  168.   k÷nnen bei OPEN noch angegeben werden:
  169.  
  170.  
  171.   1.1.1)  NAME:  Der Name des Screens.
  172.     Unter diesem Namen wird der Screen als Public-Screen angemeldet. Ist
  173.     kein TITLE angegeben, wird der Name auch als Titel verwendet. Der NAME
  174.     mu▀ angegeben werden.
  175.  
  176.   1.1.2)  TITLE:  Der Screentitel.
  177.     Das ist der Text, der in der Titelzeile des Screens zu sehen ist.
  178.     Sichtbar ist er allerdings nur dann, wenn das aktive Fenster keinen
  179.     eigenen Titel setzt.
  180.  
  181.   1.1.3)  DEPTH/PLANES:  Tiefe des Screens.
  182.     Sie legt hauptsΣchlich fest, wieviele verschiedene Farben dargestellt
  183.     werden k÷nnen - es sind 2^DEPTH. Fⁿr jeden Graphikmodus gelten
  184.     bestimmte Grenzen fⁿr DEPTH.
  185.  
  186.     Werden sie ⁿberschritten, gibt es eine entsprechende Fehlermeldung.
  187.     Die Voreinstellung wird aus dem Default-Screen kopiert.
  188.  
  189.   1.1.4)  MODE:  legt den Grafikmodus fest.
  190.     Hier gibt man - analog zu den Bezeichnungen in Prefs/ScreenMode - den
  191.     Namen der Aufl÷sung an. Dabei ist es nicht n÷tig, sich an die Gro▀-/
  192.     Kleinschreibung zu halten.
  193.  
  194.     Da Commodores KreativitΣt so weit geht, da▀ in jeder neuen OS-Release
  195.     die Display-Modes auch neue Namen erhalten, kann der Mode auch als
  196.     Pattern angegeben werden. Es wird dann mit der pattern.library gesucht,
  197.     wenn Mode nicht auf Anhieb gefunden wird.
  198.  
  199.     So lΣ▀t sich der Highres-Mode mit Zeilensprung in PAL recht zuverlΣssig
  200.     mit MODE=PAL:Hi#?lace#? wΣhlen 8-)
  201.  
  202.     Wer Modi, die keinen Namen haben, verwenden m÷chte, gibt einen String
  203.     an, in dem jeder Buchstabe fⁿr eine bestimmte Eigenschaft steht. Wie
  204.     diese kombiniert werden k÷nnen, und welche ⁿberhaupt verfⁿgbar sind,
  205.     hΣngt von Graphikhardware und Monitor ab. Bei ungⁿltigen Eingaben
  206.     wird eine entsprechende Fehlermeldung ausgegeben.
  207.  
  208.     Die einzelnen Buchstaben stehen fⁿr:
  209.       H: Hires           (Default: Lores)
  210.       L: Lace            (Default: Kein Interlace)
  211.       S: Superhires
  212.       E: Extrahalfbright
  213.       V: VGA
  214.       P: Productivity
  215.       A: A2024 mit 10Hz
  216.       F: A2024 mit 15Hz
  217.       X: HAM
  218.  
  219.     Der gewⁿnschte Modus wird einfach durch Hintereinanderschreiben der
  220.     einzelnen Buchstaben angegeben - z. B. MODE=SL fⁿr SuperHires-Lace
  221.  
  222.     Der Default-Mode wird vom Default-Public-Screen kopiert.
  223.  
  224.   1.1.5)  DISPID:  DisplayID des zu ÷ffnenden Screens.
  225.     Sie kann alternativ zu MODE angegeben werden. Es darf allerdings nur
  226.     MODE oder DISPID aufgefⁿhrt sein, nicht beides.
  227.  
  228.     Gⁿltige Werte fⁿr eine DisplayID sind in graphics/displayinfo.h zu
  229.     finden, vorausgesetzt, der entsprechende Monitor steht zur Verfⁿgung.
  230.     (Die Liste gibt auch "ScreenManager LIST DISPID" aus.)
  231.  
  232.     Da der ScreenManager keine DualPlayfield-Screens unterstⁿtzt,
  233.     werden entsprechene DisplayIDs nicht akzeptiert.
  234.  
  235.     Die DISPID mu▀ hexadezimal angegeben werden. Es dⁿrfen $ oder 0x
  236.     davor stehen.
  237.  
  238.   1.1.6)  SIZE:  Gr÷▀e des Screens in Pixeln.
  239.     Voreingestellt ist Overscan-Text. Die Gr÷▀e wird in dem Format
  240.     LEFT,TOP,WIDTH,HEIGHT angegeben.
  241.  
  242.     Da WIDTH und HEIGHT wohl ÷fter gebraucht werden als LEFT und TOP,
  243.     gelten, wenn nur zwei Werte angegeben sind, diese als WIDTH und
  244.     HEIGHT. Zur besseren Lesbarkeit k÷nnen sie auch als WIDTH╫HEIGHT
  245.     statt WIDTH,HEIGHT angegeben werden.
  246.  
  247.     Um die Overscan-Gr÷▀en bequemer handhaben zu k÷nnen, kann man auch
  248.     die Overscan-Bereiche, die das System anbietet, namentlich angeben.
  249.  
  250.     Erlaubte Overscan-Namen sind:
  251.       OSCAN_NORM  Kein Overscan, Hardware-Default. Was C= offiziell
  252.                   als Aufl÷sung angibt.
  253.       OSCAN_TXT   Text-Overscan, wird in Prefs eingestellt (Text auch in
  254.                   Ecken noch lesbar). OSCAN_TEXT ist auch erlaubt.
  255.       OSCAN_STD   Standard-Overscan, wird in Prefs eingestellt (Bild fⁿllt
  256.                   gerade Monitor aus). OSCAN_STANDARD ist auch erlaubt.
  257.       OSCAN_MAX   Maximaler Overscan, wird durch Hardware festgelegt
  258.  
  259.     Die tippfaulen Leute k÷nnen den _ oder das OSCAN_ auch weglassen.
  260.  
  261.     Um von diesen Werten abweichende Gr÷▀en zu erhalten, schreibt man
  262.     hinter den Overscan - durch einen Doppelpunkt getrennt - eine
  263.     Gr÷▀enangabe. In diesem Fall wird der entsprechende Overscan benutzt
  264.     und die Gr÷▀enangaben werden auf die Overscan-Gr÷▀e _addiert_.
  265.  
  266.     Fⁿr Puristen:
  267.  
  268.       [[OSCAN[_]](NORM|TXT|TEXT|STD|STANDARD|MAX)[:]][[left,top,]width(,|x)height]
  269.  
  270.     Also sieht eine fertige SIZE-Angabe z.B. so aus:
  271.  
  272.       SIZE=OSCAN_STD:-10,-10,+20,+20
  273.  
  274.     Das ergibt einen Screen, bei dem die Gr÷▀e den Standard-Overscan in
  275.     jeder Richtung um 10 Pixel ⁿberragt.
  276.  
  277.   1.1.7)  DISPCLIP:  Gr÷▀e des sichtbaren Bereichs des Screens.
  278.     Hier gilt das gleiche Format wie fⁿr SIZE.
  279.  
  280.   1.1.8)  COLORS:  legt die Farben als RGB-Informationen fest.
  281.     Sie werden als 3- oder 6-stellige Hexadezimalzahlen eingegeben
  282.     und durch Komma getrennt. In _diesem_ Format darf kein fⁿhrendes
  283.     $ oder 0x auftauchen. Ein Screen mit schwarz und wei▀ wird dann
  284.     so angegeben:
  285.       COLORS=000,FFF oder COLORS=000000,FFFFFF
  286.  
  287.     Um mehr als 8 Bits pro Farbe angeben zu k÷nnen, werden die
  288.     einzelnen Farbanteile durch den Doppelpunkt getrennt. _Dabei_
  289.     werden die drei Zahlen als Dezimalzahlen interpretiert,
  290.     solange kein 0x oder $ davorsteht.
  291.  
  292.     Obiger Screen k÷nnte also auch so angegeben werden:
  293.       COLORS=0x0:0x0:0x0,$FFFFFFFF:$FFFFFFFF:$FFFFFFFF oder
  294.       COLORS=0:0:0,4294967296:4294967296:4294967296
  295.  
  296.     Eine Farbe hat also dieses Format:
  297.       RGB |
  298.       RRGGBB |
  299.       [$|0x] RRRRRRRR ':' [$|0x] GGGGGGGG ':' [$|0x] BBBBBBBB
  300.  
  301.     Da es bereits Farbtabellen in einem Σhnlichen Format gibt
  302.     (X Window System), diese aber i. a. nur 8 Bits umfassen, gibt
  303.     es eine Erkennung fⁿr diesen Fall: Sind alle 3 Farbanteile <256,
  304.     wird von einer 24 Bit-Palette ausgegangen und die Farbanteile
  305.     entsprechend von 8 auf 32 Bits aufgeweitet.
  306.  
  307.   1.1.9)  PENS:  Farbstifte, die fⁿr 3D-Darstellung benutzt werden.
  308.     Dabei ist jeder Stift fⁿr bestimmte Effekte vorgesehen. Eine nΣhere
  309.     ErlΣuterung ist in dem Include-File intuition/screens.h bei der
  310.     Beschreibung der DrawInfo.Pens zu finden.
  311.  
  312.     Jedes Zeichen wird als (hexadezimale) Farbnummer der bei COLORS
  313.     angegebenen Farben interpretiert. Daraus folgt, da▀ fⁿr die Stifte
  314.     nur die ersten 16 Farben zur Verfⁿgung stehen. Wer _wirklich_ mehr
  315.     braucht, kann mir ja schreiben.
  316.  
  317.     Man mu▀ nicht alle Stifte angeben, aber man mu▀ alle Stifte, die
  318.     _vor_ einem gewⁿnschten Stift liegen, spezifizieren.
  319.  
  320.     Fⁿr die Farbstifte gilt:
  321.  
  322.     Stift Bezeichnung      wird verwendet fⁿr ...
  323.       1   DETAILPEN        Schrift (1.3-kompatibel)
  324.       2   BLOCKPEN         Fⁿlloperationen (1.3-kompatibel)
  325.       3   TEXTPEN          normale Beschriftungen
  326.       4   SHINEPEN         helle Kanten an 3D-Objekten
  327.       5   SHADOWPEN        dunkle Kanten an 3D-Objekten
  328.       6   FILLPEN          Hintergrund aktivierter Elemente \ z.B. aktiver
  329.       7   FILLTEXTPEN      Text auf aktivierten Elementen   / Fensterrahmen
  330.       8   BACKGROUNDPEN    Hintergrund - mu▀ auf 0 gesetzt werden
  331.       9   HIGHLIGHTTEXTPEN hervorgehobene Beschriftungen
  332.     Folgende Pens sind erst ab 3.0 verfⁿgbar
  333.       10  BARDETAILPEN     Text in Screentitle und Default fⁿr Menⁿtext
  334.       11  BARBLOCKPEN      Hintergrund fⁿr Screentitle und Menⁿ
  335.       12  BARTRIMPEN       Farbe der Zeile unter Screenbar
  336.  
  337.     Das klingt ziemlich kompliziert und das Ergebnis ist auch nicht immer
  338.     ganz vorhersehbar. Am besten fΣngt man mit einem der unten aufgefⁿhrten
  339.     Beispiele an und modifiziert es, dann bekommt man schnell ein Gefⁿhl
  340.     dafⁿr.
  341.  
  342.   1.1.10)  NODRAG:  Dieses Flag verhindert ein Verschieben des Screens.
  343.     Er kann dann nicht mehr mit der Maus bewegt werden. Dieses Feature
  344.     ist erst ab OS 3.0 m÷glich.
  345.  
  346.   1.1.11)  EXCLUSIVE:  Screens mit dieser Eigenschaft beanspruchen immer
  347.     den ganzen Bildschirm fⁿr sich. Sie k÷nnen nicht verschoben werden
  348.     und sie sind auch nie im Hintergrund zu sehen, wenn ein anderer
  349.     Screen heruntergezogen wird.
  350.     Auch dieses Flag ist erst ab OS3.0 m÷glich.
  351.  
  352.   1.1.12)  INTERLEAVED:  Fordert fⁿr diesen Screen Interleaved BitMaps
  353.     an. Diese sollen das Scrolling beschleunigen. (Ab OS3.0)
  354.  
  355.   1.1.13)  PARENT:  Gibt den Namen des Parent-Screens fⁿr diesen Screen an.
  356.     Ab OS3.0 existieren Parent- und Child-Screens. Dabei geh÷ren zu einem
  357.     Parent-Screen ein oder mehrere Childs. Child-Screens k÷nnen nur
  358.     innerhalb des Parent-Screens bewegt werden. Auch nach vorne oder
  359.     hinten k÷nnen ein Parent-Screen und seine Child nur als Gruppe bewegt
  360.     werden. Wird bei einen Child-Screen NODRAG gesetzt, ist er lediglich
  361.     relativ zu seinem Parent fixiert.
  362.  
  363.   1.1.14)  FONT:  Font, der dann Default-Font des Screens wird.
  364.     Das kann auch ein proportionaler Font sein. Konnte der Font nicht
  365.     gefunden werden, wird der Screen trotzdem mit dem Default-Font
  366.     des Systems ge÷ffnet! (Dieser Font wird mit dem Voreinstellungsprogramm
  367.     SYS:Prefs/Font gesetzt.)
  368.  
  369.     Das .font am Ende ist optional. Au▀erdem kann die gewⁿnschte Gr÷▀e X
  370.     auch mit .X angehΣngt werden: z. B. FONT=diamond.12
  371.  
  372.   1.1.15)  FONTSIZE:  Gr÷▀e des obigen Fonts.
  373.     Hier kann so ziemlich alles angegeben werden, da die
  374.     diskfont.library im Zweifelsfalle einen Font anderer
  375.     Gr÷▀e entsprechend skaliert.
  376.  
  377.     Diese Option gibt hⁿbsche Effekte mit dummen Programmen!
  378.  
  379.   1.1.16)  CLOSEGAD:  HΣngt ein Closegadget an den Screen.
  380.     Damit wird ein Schlie▀symbol (Closegadget) in der linken oberen Ecke
  381.     des Screens eingerichtet. Man kann dann einfach per Mausklick den
  382.     Screen wie ein Fenster schlie▀en.
  383.  
  384.   1.1.17)  AUTOCLOSE:  Schlie▀t den Screen automatisch nach Benutzung.
  385.     Ist diese Option angegeben, wird der Screen nach dem Verschinden des
  386.     letzten Fensters geschlossen.
  387.  
  388.   1.1.18)  CX_TOFRONT:  Hotkey, um den Screen nach vorne zu bringen.
  389.     Hiermit kann man einen Hotkey (keine hei▀e Taste, sondern eine
  390.     Abkⁿrzung) definieren, mit dem der Screen bei Bedarf in den
  391.     Vordergrund gebracht werden kann.
  392.  
  393.     Die Definition entspricht dem Standard der commodities.library. Wie
  394.     eine solche Tastenkombination beschrieben wird, ist weiter unten
  395.     erlΣutert.
  396.  
  397.   1.1.19)  CX_DEFAULT:  Hotkey, um den Screen zum System-Default-Screen
  398.     zu machen.
  399.     Analog zu obigem ist das ein Hotkey, mit dem der Screen zum System-
  400.     Default-Screen erklΣrt werden kann. Auch hier gelten die weiter unten
  401.     nochmal aufgefⁿhrten Definitionen der commodities.library.
  402.  
  403.   1.1.20)  CX_PRIORITY:  PrioritΣt fⁿr obige Hotkeys.
  404.     Wenn sie nicht angegeben ist, wird ein Default von 0 benutzt.
  405.  
  406.   1.1.21)  Weitere Optionen
  407.     ZusΣtzlich kann man noch die Optionen
  408.  
  409.       SHANGHAI, NOSHANGHAI, POPPUB, NOPOPPUB, DEFAULT, TOFRONT oder TOBACK
  410.  
  411.     angeben. Eine nΣhere Beschreibung folgt noch, da diese auch verwendet
  412.     werden k÷nnen, ohne einen Screen zu ÷ffnen.
  413.  
  414.   1.1.22)  FORCE/EXPERT:  Schaltet einige Sicherheitsabfragen aus.
  415.     In diesem Modus sind die Tests, ob die Hardware des Rechners die
  416.     angegebenen Gr÷▀en fⁿr SIZE, DISPCLIP und DEPTH ⁿberhaupt darstellen
  417.     kann, ausgeschaltet. Wenn der Rechner dann Mⁿll anzeigt oder gar
  418.     abstⁿrzt, bitte KEINEN Bugreport an C= oder mich!
  419.  
  420.   1.1.23)  QUIET:  unterdrⁿckt Fehlermeldungen
  421.     Mit diesem Schlⁿsselwort werden fast alle Fehlermeldungen, die
  422.     normalerweise im CLI ausgegeben werden unterdrⁿckt. Dadurch
  423.     wird verhindert, da▀ ein bislang geschlossenes Console-Fenster
  424.     aufgeht, wenn man z. B. mit SM OPEN <scr> >NIL: QUIET einen evt.
  425.     schon offenen Screen ÷ffnen m÷chte.
  426.  
  427.  
  428. 1.2)  CLOSE
  429.  
  430.   Schlie▀t einen vorhandenen Screen.
  431.  
  432.  
  433.   1.2.1)  NAME:  Name des Screens.
  434.     Die Gro▀-/Kleinschreibung mu▀ nicht korrekt sein. Sind aber mehrere
  435.     Screens da, die passen k÷nnten, wird der erste genommen, der gefunden
  436.     wird. Ist der NAME richtig geschrieben, wird _immer_ der
  437.     entsprechende Screen genommen.
  438.  
  439.     Wenn man Angela Schmidts pattern.library (Fish 625) installiert hat,
  440.     kann man sogar ein Pattern angeben - insbesondere wo* fⁿr Workbench!
  441.  
  442.     Im Moment gibt es drei spezielle Namen:
  443.       * steht fⁿr den Screen, auf dem die Console dieses Prozesses liegt
  444.       # steht fⁿr den Public-Screen, der vorne liegt
  445.       . steht fⁿr den System-Default-Screen
  446.  
  447.     Diese Konventionen fⁿr den Namen gelten ⁿberall, au▀er natⁿrlich bei
  448.     OPEN.
  449.  
  450.  
  451.   1.2.2)  FORCE:  Schlie▀t auch fremde Screens.
  452.     Damit k÷nnen auch Public-Screens, die weder vom ScreenManager noch von
  453.     der Workbench stammen, geschlossen werden.
  454.  
  455.     Allerdings ist dann das Programm, welches sie ge÷ffnet hat, nicht
  456.     unbedingt darⁿber informiert. Wenn es spΣter versucht, ein Fenster auf
  457.     diesem Screen zu ÷ffnen, kommt es zum Absturz. Auch kann es sein, da▀
  458.     zum Screen geh÷rige Resourcen (z. B. sein Font) nicht freigegeben werden.
  459.  
  460.   1.2.3)  QUIET: unterdrⁿckt Fehlermeldungen
  461.     Mit diesem Schlⁿsselwort werden fast alle Fehlermeldungen, die
  462.     normalerweise im CLI ausgegeben werden, unterdrⁿckt. Dadurch
  463.     wird verhindert, da▀ sich ein bislang geschlossenes Console-Fenster
  464.     ÷ffnet, wenn man z. B. mit SM CLOSE <scr> QUIET einen evt. schon
  465.     geschlossenen Screen schlie▀t.
  466.  
  467.  
  468. 1.3)  LIST
  469.  
  470.   Gibt eine Liste der Screens oder Aufl÷sungen aus.
  471.  
  472.  
  473.   1.3.1)  <ohne Parameter>:  Zeigt die Screenliste an.
  474.     Ausgegeben werden Name, Titel, Aufl÷sung, Farben und Anzahl der
  475.     Visitor-Fenster bzw. Locks des jeweiligen Screens.
  476.  
  477.     Dahinter steht <SM>, wenn der Screen vom ScreenManager ge÷ffnet wurde.
  478.     Es kann dort auch noch DEFAULT stehen, wenn es der System-Default-Screen
  479.     ist, oder PRIVATE, wenn dieser Screen im Moment nicht ÷ffentlich ist.
  480.  
  481.     Ist das Shell-Fenster zu schmal, wird die Ausgabe zweizeilig formatiert.
  482.  
  483.   1.3.2)  DISPID:  Zeigt sΣmtliche Aufl÷sungen an.
  484.     Es wird eine Liste aller Darstellungsmodi, die dem System bekannt
  485.     sind, ausgegeben.
  486.  
  487.     Es stehen, wenn vorhanden, auch der Name und die Verfⁿgbarkeit dabei.
  488.  
  489.   1.3.3)  MODE:  Zeigt Aufl÷sungen an.
  490.     Gibt eine Liste der Darstellungsmodi, die dem System namentlich
  491.     bekannt sind, aus und zeigt deren Verfⁿgbarkeit an.
  492.  
  493.     Hier ist es erlaubt ein Pattern anzugeben, um die gelisteten Modi
  494.     einzuschrΣnken. Zum Beispiel SM LIST MODE PAL:#?
  495.  
  496.  
  497. 1.4)  INFO
  498.  
  499.   Gibt Informationen ⁿber einen Screen oder einen Darstellungsmodus aus.
  500.  
  501.  
  502.   1.4.1) <ohne Parameter>:  Druckt die momentan gⁿltigen Public-Screen-Modes
  503.     aus.
  504.  
  505.   1.4.2)  NAME:  Zeigt Eigenschaften dieses Screens.
  506.     Es werden z. B. seine Aufl÷sung und Farbanzahl ausgegeben. Auch hier
  507.     gelten die bei CLOSE erwΣhnten Sonderzeichen.
  508.  
  509.   1.4.3)  DISPID/MODE:  Gibt Infos ⁿber den Darstellungsmodus aus.
  510.     Es sind z. B. maximale Farbanzahl und minimale/maximale Gr÷▀e eines
  511.     solchen Screens dabei.
  512.  
  513.     Auch hier kann mit einem Pattern versucht werden, dem Tippfehler ein
  514.     Schnippchen zu schlagen.
  515.  
  516.  
  517.   1.4.4)  EXPERT:  Gibt etwas mehr Infos aus.
  518.     Diese Option kann bei allen Parametern von INFO zusΣtzlich angegeben
  519.     werden. Es werden dann die Strukturen NameInfo, DisplayInfo,
  520.     DimensionInfo und MonitorInfo komplett angezeigt.
  521.  
  522.   1.4.5)  QUIET:  unterdrⁿckt Fehlermeldungen.
  523.     Mit diesem Schlⁿsselwort werden fast alle Fehlermeldungen, die
  524.     normalerweise im CLI ausgegeben werden unterdrⁿckt. Dadurch
  525.     wird verhindert, da▀ ein bisher geschlossenes Console-Fenster
  526.     aufgeht, wenn man z. B. so testet, ob ein Screen schon existiert:
  527.  
  528.        ScreenManager >NIL: INFO MyScreen QUIET
  529.        If ERROR
  530.          ...
  531.        EndIf
  532.  
  533.  
  534.  
  535. 1.5)  Ge÷ffnete Screens manipulieren.
  536.  
  537.   Folgende Optionen modifizieren die Modes eines vorhandenen
  538.   Public-Screens. Dafⁿr mu▀ natⁿrlich auch dessen Name angegeben sein.
  539.   Auch hier gelten wieder die Abkⁿrzungen, die bei CLOSE erlΣutert
  540.   wurden.
  541.  
  542.   All diese Optionen k÷nnen natⁿrlich auch beim ╓ffnen eines neuen
  543.   Screens angegeben werden.
  544.  
  545.   1.5.1)  COLORS:  NachtrΣgliches ─ndern der Farben.
  546.     Damit kann die Farbpalette eines Screens im Nachhinein geΣndert
  547.     werden. Die genaue Beschreibung des Formats ist unter OPEN (1.1.8)
  548.     zu finden.
  549.  
  550.     Achtung! Werden die Farben des Workbench-Screens geΣndert, bekommt
  551.     der IPrefs-Demon das nicht mit - genausowenig wie Intuition selber.
  552.     Es kann dann zu "Effekten" bei Benutzung von Prefs/Palette kommen.
  553.  
  554.   1.5.2)  POS:  Setzt die Screenposition neu.
  555.     Damit kann die Position eines Screens nachtrΣglich geΣndert werden.
  556.     Das Format ist "POS=x,y".
  557.  
  558.     Screens, die vom Eigentⁿmer mit dem Attribut NODRAG versehen
  559.     wurden, um ein Verschieben zu verhindern, k÷nnen nur unter Angabe
  560.     von FORCE bewegt werden.
  561.  
  562.   1.5.3)  PLANES:  Setzt die Anzahl der Planes des Screens neu.
  563.     Diese Option erm÷glicht es, die Anzahl der Planes des Screens zu erh÷hen
  564.     oder zu reduzieren. Sie wird nur zusammen mit FORCE akzeptiert - sonst
  565.     wird lediglich eine Warnung ausgegeben.
  566.  
  567.     Da nicht bekannt sein kann, ob die Gr÷▀e der BitMap-Struktur, in der
  568.     fⁿr jede Plane ein Zeiger stehen mu▀, fⁿr die verlangte Anzahl der
  569.     Planes ausreicht, _kann_ es passieren, da▀ bei Erh÷hung der Planes
  570.     fremder Speicher ⁿberschrieben wird!!! Also bitte _mehr_ als
  571.     vorsichtig sein.
  572.  
  573.     Unter OS V3.0 oder h÷her ist es nicht m÷glich die Anzahl der Planes zu
  574.     erh÷hen, da die vom OS bereits geholte Colormap wohl zu klein ist.
  575.  
  576.   1.5.4)  DEFAULT:  Screen zum System-Default-Screen machen.
  577.  
  578.   1.5.5)  TOFRONT:  Screen nach vorne bringen.
  579.  
  580.   1.5.6)  TOBACK:   Screen nach hinten bringen.
  581.  
  582.   1.5.7)  CX_TOFRONT:  ─ndert den Hotkey zum Nach-vorne-bringen des Screens.
  583.     Mit CX_TOFRONT="" wird er abgeschaltet.
  584.  
  585.   1.5.8)  CX_DEFAULT:  ─ndert den Hotkey, der den Screen zum System-Default-
  586.     Screen macht. Auch er lΣ▀t sich mit dem Leerstring ausschalten.
  587.  
  588.  
  589.  
  590. 1.6)  Globale Einstellungen ─ndern.
  591.  
  592.   Diese Optionen beeinflussen globale Einstellungen und k÷nnen auch
  593.   ohne Screen angewandt werden:
  594.  
  595.   1.6.1)  SHANGHAI:  Shanghai-Mode einschalten.
  596.     Im Shanghai-Modus gehen auch die Fenster, die frⁿher auf der Workbench
  597.     aufgingen, auf dem System-Default-Screen auf.
  598.  
  599.     Damit kann man vor allem alte Programme, die noch nichts ⁿber das
  600.     Konzept des Default-Screens wissen, von der Workbench fernhalten.
  601.  
  602.   1.6.2)  NOSHANGHAI:  Shanghai-Mode ausschalten.
  603.  
  604.   1.6.3)  POPPUB:  PopPub-Mode einschalten.
  605.     In diesem Modus kommt der Screen nach vorne, sowie ein Fenster darauf
  606.     ge÷ffnet wird.
  607.  
  608.   1.6.4)  NOPOPPUB:  PopPub-Mode ausschalten.
  609.  
  610.  
  611.  
  612.                              Beispiele
  613.                              ---------
  614.  
  615. Hier noch ein paar Beispiele:
  616.  
  617.   ScreenManager OPEN BlueScreen
  618.     DISPID=$00029004 PLANES=3 PENS=171657404 FONT=courier.13
  619.     SIZE=OSCAN_TEXT:+100,+100 DISPCLIP=OSCAN_TEXT
  620.     COLORS=13B,AAC,D30,FFF,CC2,015,7AF,13F
  621.     DEFAULT CLOSEGAD
  622.  
  623.   ScreenManager OPEN NobelScreen
  624.     PLANES=3 PENS=121657404
  625.     COLORS=9A6100,210:220:255,0533CC,0xFF:0xFF:0x14,DC0,730,F83,C30
  626.     CX_PRI=10 CX_TOFRONT="lcommand s" CX_DEFAULT="lcommand shift s"
  627.     DEFAULT SHANGHAI POPPUB CLOSEGAD
  628.  
  629.   ScreenManager OPEN ss TITLE NessieScreen
  630.     MODE=PAL:[Hh]i*[Ll]ace* PLANES=2 SIZE=STD:0╫0 PENS=021123103
  631.     COLORS=69A,FEE,002,F7C
  632.     DEFAULT SHANGHAI CLOSEGAD CX_TOFRONT "LCommand s" POPUP
  633.  
  634.   ScreenManager OPEN SimpleWB
  635.     DEFAULT SHANGHAI POPPUB
  636.  
  637.   ScreenManager OPEN Child
  638.     SIZE=TEXT:+40,+40,-80,-80
  639.     CLOSEGAD PARENT SimpleWB
  640.  
  641.   ScreenManager LIST
  642.  
  643.   ScreenManager LIST DISPID
  644.  
  645.   ScreenManager INFO DISPID=$00008020 EXPERT
  646.  
  647.   ScreenManager CLOSE Simple*
  648.  
  649. Diese Kommandos mⁿssen in jeweils _einer_ Zeile eingegeben werden.
  650.  
  651. Um auf einem solchen Screen Fenster ÷ffnen zu k÷nnen, mu▀ man natⁿrlich
  652. ein Programm haben, das sich nicht krampfhaft an die Workbench klammert,
  653. sondern seine Fenster auf dem System-Default-Screen ÷ffnet. Das tun
  654. zumindest die Voreinstellungseditoren Time und Font sowie CON: (und
  655. fΣlschlicherweise IconEdit *Σrger*).
  656.  
  657. Ein Console-Window kann aber auch auf einem Screen, der _nicht_
  658. System-Default-Screen ist, aufgehen:
  659.  
  660.   CON:0/15/640/185/MeinFenster/CLOSE/SCREENNobelScreen.
  661.  
  662. Der Display-Handler der WShell kann das natⁿrlich auch.
  663.  
  664.  
  665.  
  666.                              Workbench
  667.                              ---------
  668.  
  669. Damit die Freunde der Workbench nicht ganz leer ausgehen, kann der
  670. ScreenManager auch die Merkmale (ToolTypes) als Argumente
  671. interpretieren.
  672.  
  673. Die ToolTypes entsprechen den oben aufgefⁿhrten Kommandozeilenargumenten.
  674. Es gibt allerdings ein paar Unterschiede:
  675.  
  676.     NOSHANGHAI und NOPOPPUB
  677.  
  678.   gibt es nicht mehr. Sie mⁿssen durch SHANGHAI=FALSE oder POPPUB=0 ersetzt
  679.   werden.
  680.  
  681.   Es gibt einen zusΣtzlichen ToolType WINDOW. Das Argument wird als
  682.   Filename genommen, in den die Ausgaben z. B. bei LIST wandern. Als
  683.   File gilt natⁿrlich auch eine Fensterbeschreibung wie z. B.
  684.  
  685.     CON:////ScreenManager-Output/CLOSE
  686.  
  687.   Ist WINDOW nicht angegeben, wird kein Fenster ge÷ffnet und eventuelle
  688.   Fehler werden ⁿber Requester gemeldet.
  689.  
  690. Die Argumente mⁿssen, auch wenn sie Leerzeichen enthalten, ohne
  691. Anfⁿhrungszeichen eingegeben werden, da im Gegensatz zur
  692. Kommandozeile ja klar ist, wo das Argument aufh÷rt.
  693.  
  694. Wurde ein Projekt mit dem ScreenManager als Default-Tool angeklickt,
  695. werden die ToolTypes des ScreenManager als Defaults genommen und dann
  696. von denen des Projekts ⁿberschrieben.
  697.  
  698. So kann man sich beispielsweise fⁿr jeden Screen, den man oft benutzt
  699. (bei mir ShellScreen und Workbench), ein Projekt mit NAME=<ScreenName>
  700. anlegen und einen ScreenManager mit dem ToolType DEFAULT.
  701.  
  702. Klickt man jetzt erst auf das Projekt-Icon und dann zweimal mit gedrⁿckter
  703. Shift-Taste auf den ScreenManager, wird der Screen <ScreenName> zum
  704. System-Default-Screen.
  705.  
  706. Je nachdem, welches PΣrchen ich "doppelklicke", kann ich so den ShellScreen
  707. oder den Workbench-Screen zum System-Default-Screen machen. Das Gleiche
  708. geht z. B. auch mit POS - und fertig ist der WB-Klick-Baukasten.
  709.  
  710.  
  711. Noch eine Bemerkung zur Workbench: Fehlermeldungen werden, wenn kein
  712. Ausgabefenster mit WINDOW=... angegeben wurde, mit einem Requester gemeldet.
  713. Leider kann es vorkommen, da▀ bei recht langen Fehlermeldungen, die durch
  714. extrem lange Screennamen verursacht werden k÷nnen, die Layout-Routinen von
  715. Intuition etwas durcheinandergeraten.
  716.  
  717.  
  718.                              Hotkeys
  719.                              -------
  720.  
  721. Fⁿr die, die den dicken Schuber gerade nicht greifbar haben, hier
  722. noch die Sondertasten von Commodities V37. (kein Anspruch auf
  723. VollstΣndigkeit 8-):
  724.  
  725. Events:
  726.   rawkey, rawmouse, event, pointerpos,
  727.   timer, newprefs, diskremoved, diskinserted
  728.  
  729. Gr÷▀tenteils nicht sehr sinnvoll, aber ganz lustig, wenn bei einem
  730. DiskInsert der Screen mit der Shell nach vorne kommt. Au▀erdem ist
  731. Timer noch ganz interessant, da man sonst keinen Qualifier allein
  732. ansprechen kann. Aber natⁿrlich will ich das nicht empfehlen.
  733. Allerdings bin ich der Meinung, da▀ sich jeder sein System kaputt-
  734. konfigurieren darf, wie er will - nur beschweren darf er sich dann
  735. nicht.
  736.  
  737. Qualifier:
  738.   lshift, rshift, capslock, control, lalt, ralt, lcommand, rcommand,
  739.   numericpad, repeat, relativemouse, shift, caps, alt, upstroke
  740.  
  741. Keys:
  742.   (midbutton, rbutton, leftbutton)
  743.   comma, space, backspace, tab, enter, return, esc, del
  744.   up,ádown, right, left
  745.   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10
  746.   help
  747.   sowie alle normalen druckbaren Zeichen, die dann fⁿr sich selbst stehen
  748.  
  749. Eine Hotkey-Definition daraus sieht so aus:
  750.  
  751.   [<Qualifier> <Qualifier> ... ] <Event>|<Key>
  752.  
  753. Da die Qualifier von der ausl÷senden Taste durch ein Leerzeichen getrennt
  754. werden, mu▀ der ganze Ausdruck in Anfⁿhrungszeichen gepackt werden. Also
  755. etwa so:
  756.  
  757.   CX_TOFRONT="lcommand s"
  758.   CX_DEFAULT="lcommand shift s" oder CX_DEFAULT="lcommand S"
  759.  
  760. Um Hotkeys mit gro▀en Buchstaben ausl÷sen zu k÷nnen (wie die Alternative
  761. des zweiten Beispiels), mu▀ dann natⁿrlich noch die Shift-Taste gedrⁿckt
  762. werden (oder die KeyMap ist maximal mystisch...).
  763.  
  764.  
  765.  
  766.                              Schlu▀
  767.                              ------
  768. Vielen Dank an Frank Neumann (Franky) fⁿr die englische ▄bersetzung.
  769. Vielen Dank auch an Angela Schmidt fⁿr Bug-Reports und Anregungen.
  770.  
  771. Ich danke auch:
  772.   Frank Schwarz
  773.   Bernd Ernesti
  774.   Oliver Knorr
  775.  
  776. Bug-Reports, VerbesserungsvorschlΣge, Glⁿckwⁿnsche, Schokokugeln,
  777. Flames und anderes (keine Briefbomben oder Raubkopien) an:
  778.  
  779.     zza@rz.uni-karlsruhe.de
  780.  
  781. oder
  782.  
  783.     Bernhard M÷llemann
  784.     Luisenstra▀e 17
  785.  
  786.     76137 Karlsruhe
  787.  
  788.     Germany
  789.  
  790.  
  791.