home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0600 / CCE_0620.ZIP / CCE_0620.PD / WINX22 / WINX22.GER < prev    next >
Text File  |  1993-10-17  |  26KB  |  476 lines

  1. PROGRAMM
  2.      WINX 2.2 [17.10.1993] - 
  3.      Patchprogramm für die GEM-Fensterverwaltung
  4.  
  5. BESCHREIBUNG
  6.      WINX erweitert das GEM der TOS Versionen bis 4.04 um einige Eigen-
  7.      schaften, die auch unter MultiTOS zur Verfügung stehen. Aus der
  8.      Sicht des Anwenders gehören dazu z.B. mehr Fenster, Kontroll-
  9.      elemente an den hinteren Fenstern und eine erweiterte Benutzer-
  10.      schnittstelle (betrifft die Bedienung der Kontrollelemente).
  11.      Außerdem werden einige Fehler und Unzulänglichkeiten in den ver-
  12.      schiedenen GEM Versionen behoben, wodurch die Benutzung des
  13.      GEM wesentlich sicherer wird. Für den Entwickler ist zusätzlich
  14.      die Möglichkeit interessant sich fehlerhafte Aufrufe der Fenster-
  15.      funktionen anzeigen zu lassen.
  16.  
  17.      Theoretisch sollten alle 'sauberen' GEM-Programme mit fast allen
  18.      Änderungen der Fensterverwaltung zurechtkommen, die Praxis sieht
  19.      allerdings anders aus. So mußte z.B. auch das GEM-Desktop in
  20.      einigen Punkten überarbeitet werden. Denken Sie daran, wenn eines
  21.      ihrer Programme unter WINX fehlerhaft arbeitet, wird dies mit
  22.      ziemlicher Sicherheit auch unter MultiTOS der Fall sein. Fordern
  23.      Sie die Autoren auf ihre Programme anzupassen.
  24.  
  25.      Die erweiterte Benutzerschnittstelle integriert WINX ab TOS 2.xx
  26.      ins GEM. Von nun an haben beide Maustasten beim Klick auf ein
  27.      Kontrollelement des Fensterrahmens eine Funktion. Mit der rechten
  28.      Taste kann man Aktionen auslösen, die erst beim Loslassen der
  29.      Maustaste ausgeführt werden. Benutzt man die linke Taste, werden
  30.      die Aktionen sofort und solange ausgeführt, wie man die Taste
  31.      gedrückt hält. Erkennen kann man diesen Zustand daran, daß der
  32.      Pfeil, der die Mausposition auf dem Bildschirm darstellt, seinen
  33.      'Schaft' verliert. Am Beispiel des Verschiebens eines Fensters
  34.      soll dies deutlich werden. Nimmt man das Fenster am Bewegungs-
  35.      element mit der rechten Taste auf, dann wird zunächst nur ein
  36.      Rahmen gezeichnet, den man über den Bildschirm bewegen kann. Erst
  37.      beim Loslassen wird das Fenster an der neuen Position dargestellt.
  38.      Nimmt man hingegen die linke Taste, dann wird noch während des
  39.      Bewegens die Fensterposition aktualisiert. Entsprechendes gilt
  40.      für die Änderung der Fenstergröße, das Bewegen der Scrollbalken
  41.      und das Benutzen von Schließ- und Maximalgröße-Element. 
  42.      
  43.      Die Aktionen, die beim Klick mit der linken Maustaste auf die
  44.      Scrollpfeile bzw. in die Scrollbereiche ausgelöst werden, haben
  45.      sich nicht verändert. Sie führten ja auch bisher schon zu direkten
  46.      Reaktionen des Anwendungsprogramms. Zusätzlich kann man durch
  47.      einen Klick mit der rechten Maustaste auf die Scrollpfeile den
  48.      Scrollbalken an den Anfang bzw. das Ende seines Scrollbereichs
  49.      setzen. Klickt man in einen Scrollbereich, dann wird der Scroll-
  50.      balken direkt auf die entsprechende Position gesetzt. 
  51.      
  52.      Neue Kontrollelemente auf dem Fensterrahmen sind die Scrollboxen.
  53.      Sie befinden sich am Ende jedes Scrollpfeils und ermöglichen das
  54.      Scrollen mit Richtungswechsel und variabler Geschwindigkeit
  55.      (falls Programme dies unterstützen). Nach dem Klicken auf eine
  56.      Scrollbox (bzw. den zugehörigen Scrollpfeil) bestimmt die Aus-
  57.      lenkung und die Entfernung des Mauspfeils von der Scrollbox
  58.      die Scrollrichtung und -geschwindigkeit. Befindet sich der Maus-
  59.      pfeil direkt über der Scrollbox wird nicht gescrollt. Solange
  60.      die Maustaste gedrückt ist, kann man durch Verschieben der Maus 
  61.      die Scrollrichtung und -geschwindigkeit ändern.
  62.      
  63.      Eine weitere neue Möglichkeit hat man beim Klick auf den Fenster-
  64.      titel. Konnte man damit bisher nur hintere Fenster nach vorne 
  65.      holen, ist es jetzt auch möglich das vorderste Fenster nach hinten
  66.      zu stellen, falls das Programm bereits die entsprechende Meldung
  67.      versteht.
  68.      
  69.      Die CONTROL-Taste dient als Modifizierer von Aktionen, die man
  70.      durch einen Klick auf ein Kontrollelement des Fensterrahmens
  71.      auslöst. Ist die CONTROL-Taste in dem Augenblick gedrückt in dem
  72.      man mit der Maus klickt, dann wird die normale Bedeutung der
  73.      Kontrollelemente ignoriert. Stattdessen wird das Fenster entweder
  74.      nach vorne geholt bzw. nach hinten gestellt. Praktisch ist dies,
  75.      wenn ein Fenster nur teilweise sichtbar ist.
  76.      
  77.      Ist die CONTROL-Taste gedrückt, während man die rechte Maustaste
  78.      losläßt, dann wird die anstehende Aktion ignoriert (z.B. wenn man
  79.      das Verschieben eines Fensters eingeleitet hat und es dann doch
  80.      lieber an der alten Position hätte).
  81.  
  82.      Im folgenden sind die Änderungen, die WINX am GEM vornimmt, im
  83.      einzelnen beschrieben, dabei steht '*' für 'neu in dieser Version'
  84.      und '[G..]' bzw. '[L..]' für 'diese Änderung kann abgeschaltet
  85.      werden' (-> KONFIGURATION). Leider ist dieser Teil teilweise sehr
  86.      technisch. Trotzdem sollte man ihn sich mindestens einmal durch-
  87.      lesen, da einem sonst einige Möglichkeiten verborgen bleiben.
  88.  
  89.      GEM-SCRENMGR:
  90.      (Teil des GEM, der Klicks auf den Fensterrahmen verarbeitet)
  91.      - [L1] Bedienung von Kontrollelementen an hinteren Fenstern
  92.      * [G10] BackDrop-Erweiterung: Beim Klick auf die Titelzeile des
  93.        vordersten Fensters wird es nach hinten gestellt (deaktiviert),
  94.        falls die Applikation, der das Fenster gehört, diese neue
  95.        Fähigkeit bereits unterstützt bzw. nur ein Fenster offen hat.
  96.      * [G9] Hält man die CONTROL-Taste beim Klick auf ein Kontroll-
  97.        elemente gedrückt, wird dessen Bedeutung aufgehoben. Stattdessen
  98.        werden hintere Fenster aktiviert bzw. das vordere nach hinten
  99.        gestellt (falls BackDrop eingeschaltet ist)
  100.      * Repeatfunktion für Scrollpfeile unter TOS 1.00
  101.      * Probleme mit WM_ARROWED-Nachrichten beseitigt (ARROWFIX-Patches)
  102.        TOS >= 1.04: Doppelnachricht
  103.        TOS 2.06/3.06: Doppelnachricht, verzögerte Nachricht, Überlänge
  104.        TOS 4.01-4.04: Doppelnachricht, verzögerte Nachricht, Überlänge
  105.        ARROWFIX.GER aus dem ARROWFIX-Paket erläutert Einzelheiten.
  106.      - Optische Rückmeldung bei der Bedienung von Kontrollelementen
  107.        [G4] Selektion der Scrollpfeile
  108.        [G5] Selektion der Scrollbalken
  109.        [G6] Selektion des Bewegungselements
  110.        [G7] Selektion des Größenelements
  111.      * [G2] Rechtsklick auf Fensterrahmen an SCRENMGR (sonst an 
  112.        Applikation)
  113.      * [G3] Einfacher Linksklick aktiviert Echtzeitfunktionen (sonst
  114.        Rechtsklick, falls [G2] eingeschaltet ist, sonst Doppelklick)
  115.      * [L11] Fenster auch links aus Bildschirm schiebbar (sonst nur
  116.        rechts)
  117.  
  118.      GEM-DESKTOP
  119.      - Bearbeitung hinterer Desktopfenster (Schließen, Scrollen, ...)
  120.      * BackDrop Integration
  121.      * Aktivieren und Deaktivieren von Fenstern deselektiert im
  122.        2.x/3.x Desktop nicht mehr die Dateien
  123.      - Das TOS 2.x/3.x Desktop bietet jetzt 8 statt 7 Fenstern, das
  124.        von TOS 1.x wie bisher 4.
  125.      * Beim Scrollen in hinteren Fenster wird jetzt versucht soviel
  126.        wie möglich zu kopieren und nur noch den Rest neu auszugeben.
  127.      * Einfache Implementierung der Reaktion auf die erweiterten
  128.        WM_ARROWED-Nachrichten zum Scrollen.
  129.      
  130.      Fensterverwaltung:
  131.      - [G1] Verwaltung von bis zu 40 Fenstern (statt bisher 8)
  132.      - [L1] Kontrollelemente am Fensterrahmen hinterer Fenster
  133.      - [L2] Minimierung der Anzahl der Elemente eines Fensterrahmens
  134.        (bisher hatte ein Fensterrahmen mit einem Größenelement immer
  135.        sowohl einen horizontalen als auch einen vertikalen Balken)
  136.      - [G8] Breiterer Rahmen für die Sliderelemente auf dem Fensterrahmen
  137.        (sehr umstrittene Option :-)
  138.      * Fensterfarben für TOS 1.x mit WINCOLOR.CPX. Dieses CPX ist aber
  139.        auch für TOS 2.x/3.x dem Original WCOLORS.CPX vorzuziehen (nach
  140.        der unmaßgeblichen Meinung des Autors).
  141.      * Verbessertes Redraw von Fenstern (Neuausgabe von Rahmen und Inhalt)
  142.      * Aktivieren (und Deaktivieren) verändert nicht mehr das
  143.        WF_PREVXYWH-Rechteck eines Fensters. In diesem Rechteck wird
  144.        bei einer Veränderung des Fensters die letzte Position bzw.
  145.        Größe gespeichert.
  146.      * [L3] Aktivieren und Öffnen eines Fenster versenden WM_UNTOPPED, 
  147.        Deaktivieren und Schließen eine WM_ONTOP-Nachricht.
  148.      * Es wird nur noch ein Objektbaum zur Darstellung des Hintergrunds
  149.        benutzt
  150.      * wind_set-Modifikationen (optimierte WF_SLIDE Routine; WF_BOTTOM;
  151.        WF_BEVENT)
  152.      * wind_get-Modifikationen (WF_NEWDESK; WF_BEVENT; WF_BOTTOM;
  153.        WF_OWNER; WF_TOP; WF_COLOR; WF_DCOLOR)
  154.      - Anpassung von wind_calc an den veränderten Rahmenaufbau
  155.      * Komplett neues Modul zur Berechnung der Rechtecklisten.
  156.        Optimiert die Berechnungszeit und die Anzahl der Rechtecke.
  157.      * [L4] Optimiertes Redraw beim Aktivieren eines Fensters:
  158.        Beim Aktivieren bzw. Schließen eines Fensters werden möglichst
  159.        nur noch die vorher verdeckten Teile des neuen obersten Fensters
  160.        ausgegeben. Leider führt dies in einigen Programmen zu unvoll-
  161.        ständigen Ausgaben.
  162.      * [L5] Optimiertes Redraw beim Verschieben eines Fensters:
  163.        Ist diese Schalter eingeschaltet werden alle sichtbaren Teilen
  164.        des Fensters kopiert und nur für den Rest Redraw-Nachrichten
  165.        versandt (eventuell müssen die Nachrichten jedoch Verschmolzen
  166.        werden, dadurch werden auch kopierte Bereiche neu ausgegeben)
  167.      * [L6] Optimiertes Redraw beim Vergrößern eines Fensters:
  168.        Es werden nur noch Redraws für die vorher unsichtbaren Bereiche
  169.        des Fensters versandt
  170.      * [L7] Optimiertes Verschmelzen von Redraw-Nachrichten:
  171.        Die bisherigen TOS-Versionen speicherten max. eine Redraw-
  172.        Nachricht pro Fenster im Nachrichtenpuffer der Applikation.
  173.        Mußte ein zweite gespeichert werden, wurde das Redraw-Rechteck
  174.        der ersten durch das umfassende Rechteck beider Nachrichten
  175.        ersetzt. MultiTOS 1.0 verschmilzt hingegen Redraw-Nachrichten
  176.        nicht mehr. Beide Lösungen haben Nachteile. Unter WINX ist
  177.        ein Kompromiß möglich. Redraws werden nur noch verschmolzen,
  178.        wenn die Gesamtfläche des umfassenden Rechtecks nicht größer
  179.        als 25% der Summe der Einzelflächen ist. Maximal können zwei
  180.        Redraws pro Fenster im Nachrichtenpuffer sein.
  181.        (nur für TOS Versionen > 1.x)
  182.      * [L9] Die Scrollpfeile eines Fensters können getrennt oder
  183.        zusammengefaßt in der rechten unteren Ecke des Fensterrahmens
  184.        dargestellt werden
  185.      * Es ist jetzt möglich die wind_update()-Kontrolle nur noch zu
  186.        übernehmen, falls kein anderes Programm die Kontrolle besitzt.
  187.        Außerdem wird wind_update() auf Unterlauf geprüft.
  188.      * [G11] Fensterrahmen im 3D-Look (ab GEM 3.31)
  189.      * [L10] Scrollboxen als Ergänzung der Scrollpfeile
  190.      * [L12] Fehlerhafte Fensterposition und -groesse korrigieren
  191.      - Anpassung der anderen Routinen an die größeren Fensterstrukturen
  192.  
  193.      Sonstiges:
  194.      - Vergrößerung des Nachrichtenpuffers einer Applikation von
  195.        8 auf 40 Standard-Nachrichten (damit können Verklemmungen
  196.        des GEM vermieden werden)
  197.      - Die Mausklickwartezeit wurde fest auf Doppelklick eingestellt.
  198.        In den bisherigen GEM-Versionen ist die Zeitspanne zwischen dem
  199.        Mausklick des Anwenders und der Verarbeitung durch den SCRENMGR
  200.        nicht einheitlich. Konkret hängt die Zeitspanne davon ab, ob
  201.        mindestens eine Applikation bzw. ein Accessory auf einen Doppel-
  202.        klick wartet oder nicht. Die Einstellung auf Doppelklick ist
  203.        notwendig, da sonst, beim Klick auf das Titelelement eines
  204.        hinteren Fensters, nicht immer zwischen Verschieben und
  205.        Aktivieren unterschieden werden kann.
  206.      * Bei der Benutzung des Timers meldet evnt_multi() kein Mausknopf-
  207.        bzw. Rechteckereignis mehr, solange ein anderes Programm oder der
  208.        SCRENMGR die Mauskontrolle hat (dies konnte z.B. passieren,
  209.        während man ein Fenster verschob).
  210.      * Unterstützung des WF_BEVENT Flags bei der Zuordnung der Button-
  211.        ereignisse an die Applikationen
  212.      * TOS 1.x: Die dynamisch angeforderten Strukturen zur Verwaltung
  213.        von Accessories werden jetzt (wie in den neueren TOS Versionen)
  214.        explizit gelöscht. Damit wird verhindert, daß es zu Problemen
  215.        mit AUTO-Ordner Programmen kommt, die den selben Speicher vorher
  216.        bereits einmal belegt hatten.
  217.      * [G12] Der Musterbezugspunkt von GEM-Objekten wurde auf die
  218.        linke obere Ecke des Objekts gesetzt.
  219.      * Der Name der aktiven Applikation wird jetzt auch in TOS 1.00
  220.        und 1.02 vor jedem Aufruf des integrierten Desktops zurückgesetzt.
  221.      * [L8] Schaltet man diesen Schalter an, meldet WINX Aufrufe von
  222.        Fensterfunktion mit fehlerhaften Parametern über ein Alert.
  223.        Diese Option ist vorallem für Entwickler gedacht.
  224.      * [G13] Beim Starten eines Programms B aus dem laufenden Programm
  225.        A wird der Name, den GEM der aktiven Applikation zuordnet, auf
  226.        B gesetzt. Terminiert B wird der Name auf A zurückgesetzt.
  227.        Damit arbeitet appl_find() jetzt auch im obigen Fall korrekt.
  228.        (bisher wurde A statt B gefunden).
  229.      * wind_new ordnet Mausklicks jetzt der Hauptapplikation zu
  230.        (statt dem SCRENMGR) (TOS >= 2.x/3.x). Damit wird verhindert,
  231.        daß nach Beendigung eines Programms der erste Klick auf ein
  232.        Objekt des Desktops verloren geht.
  233.      * In den Code von wind_new() wurde ein wind_update( BEG_UPDATE)
  234.        eingefügt. wind_new() wird vom Desktop benutzt um nach der
  235.        Beendigung von Programmen den Bildschirm aufzuräumen. Durch das
  236.        Einfügen von wind_update() sind ACCs jetzt besser davor ge-
  237.        schützt, daß der Aufräumvorgang zu einem ungünstigen Zeitpunkt
  238.        stattfindet.
  239.      * Ein Fehler des Taskumschalters von GEM 3.xx wurde gefixt, damit
  240.        sollte jetzt, während das Alert des CEH (Critical Error Handler)
  241.        sichtbar ist, kein Taskwechsel mehr stattfinden.
  242.      * appl_getinfo()
  243.      * Patch für 'Phantom typist'-Problem (nicht mehr kontrollierbares
  244.        Verhalten der Tastatur und/oder der Maus)
  245.  
  246. INSTALLATION     
  247.      Um all diese Änderungen vornehmen zu können, muß WINX tief in den
  248.      Programmcode des GEM eingreifen. Der Eingriff kann auf dreierlei
  249.      Weise erfolgen:
  250.  
  251.      a) Patchen einer Kopie des GEM im RAM
  252.           Man installiert beim Booten des Rechners eine Kopie des GEM
  253.           im RAM, die dann vor dem Start des GEM durch WINX modifiziert
  254.           wird. Dies ist mit einem der folgenden Programme möglich:
  255.  
  256.           ROMRAM    TOS Beschleuniger für TTs;
  257.                     Mailbox Maus HH2 (Freeware);
  258.                     Alexander Herzlinger; >256 KB; PTOS
  259.           VRAM030   Virtuelle Speicherverwaltung für TT und FALCON030;
  260.                     OverScan, D-12277 Berlin;
  261.                     Alexander Herzlinger; >256 KB; VRAM
  262.           ROMSPEED  TOS Beschleuniger für TTs (Bestandteil von OUTSIDE
  263.                     einer virtuelle Speicherverwaltung für TTs);
  264.                     MAXON Verlag; D-65734 Eschborn;
  265.                     Uwe Seimet; >256 KB; USRS
  266.           GEMRAM    GEM im RAM installieren (ST,TT,FALCON);
  267.                     Mailbox Maus MTK (Freeware);
  268.                     Martin Osieka; 80-200 KB; MOGR
  269.           (Beschreibung; Bezugsquelle; Autor; Speicherbedarf; Cookie)
  270.  
  271.           WINX gehört in diesem Fall nach diesen Programmen in den
  272.           Ordner \AUTO auf dem Bootlaufwerk und wird somit beim Booten
  273.           automatisch gestartet.
  274.           Die Programme werden nur erkannt, wenn sie das entsprechende
  275.           Cookie im Cookiejar eingetragen haben.
  276.  
  277.      b) Patchen einer TOS-Datei
  278.           Man benutzt WINX um sich eine modifizierte Kopie des TOS zu 
  279.           erstellen, die anschließend auf Eproms gebrannt und in den
  280.           Rechner eingesetzt wird. Hierzu ruft man WINX vom Desktop
  281.           auf und erhält dann die Möglichkeit, das TOS aus den ROMs 
  282.           oder einer bereits bestehenden TOS-Datei zu laden. Nachdem
  283.           WINX das TOS modifiziert hat, kann es abgespeichert werden.
  284.  
  285.      c) Patchen einzelner GEM-Routinen      
  286.           Auf Rechnern mit Original-TOS 1.00, 1.02 bzw. 1.04 kann man
  287.           WINX ohne RAM-Kopie des GEM benutzen. Auch in diesem Fall
  288.           gehört WINX in den AUTO-Ordner. Beim Start von WINX werden
  289.           dann nur die Funktionen des GEM ins RAM kopiert, die von WINX
  290.           modifiziert werden. Diese Methode ist in den neueren TOS-
  291.           Versionen nicht anwendbar. Die kopierten GEM-Routinen belegen
  292.           ca. 16 KByte.
  293.  
  294.      Zusätzlich zum Speicher für eine Kopie des GEM bzw. der kopierten
  295.      GEM-Funktionen fordert WINX beim Start des GEM weiteren Speicher
  296.      für die Fensterstrukturen an (ca. 24 KByte).
  297.  
  298.      WINX wurde an die folgenden offiziellen GEM Versionen angepasst:
  299.      
  300.         GEM(AES)   TOS
  301.           1.20     GER 1.00/1.02
  302.           1.40     GER 1.04/1.06/1.62
  303.           3.00     GER 3.01
  304.           3.10     GER/UK 2.05/3.05
  305.           3.20     GER/UK 2.06/3.06
  306.           3.31     4.01
  307.           3.40     4.02-4.04
  308.  
  309.      WINX identifiziert das GEM über die Länge des GEM-TEXT-Segments.
  310.      GEM Versionen anderer Länder werden bei identischer Länge akzeptiert.
  311.  
  312. KONFIGURATION
  313.      Die Änderungen, die WINX am GEM vornimmt, können weitgehend über
  314.      'Schalter' ein- bzw. ausgeschaltet werden. Die Einstellung der
  315.      Schalter erfolgt momentan über die Konfigurationsdatei WINX.INF,
  316.      die sich im AUTO-Ordner befinden muß. Es handelt sich um eine
  317.      Textdatei, die mit einem Editor verändert werden kann.
  318.      
  319.      Ab der WINX-Version 2.1 wird zwischen globalen und lokalen
  320.      Schaltern unterschieden, wobei die globalen Schalter für alle
  321.      Applikationen gelten und die lokalen für jede Applikation
  322.      individuell eingestellt werden können. Alles weitere kann man
  323.      WINX.INF entnehmen.
  324.      
  325.      In Zukunft soll WINX.INF über WINX.CPX manipuliert werden können.
  326.      Momentan fehlt noch der zündende Funke, wie man das für den
  327.      Anwender am praktikabelsten aufzieht.
  328.      
  329.      Die Wiederholraten von Schließelement, Maximalgröße-Element
  330.      und Scrollpfeilen können über WINX.CPX eingestellt werden.
  331.  
  332.      Benutzt man WINX-modifizierte ROMs, dann braucht man trotzdem
  333.      WINX.PRG im Autoordner um Programme individuell konfigurieren zu
  334.      können. WINX erkennt in diesem Fall beim Start, daß das GEM bereits
  335.      mit WINX gepatcht ist und lädt nur noch die Konfigurationsdatei
  336.      WINX.INF, trägt den WINX-Cookie in den Cookie Jar ein und stellt
  337.      über diesen eine Zugriffsfunktion auf die Konfigurationswerte
  338.      bereit. Verzichtet man auf WINX im AUTO-Ordner, dann benutzt das 
  339.      WINX gepatchte GEM Defaultwerte. Hat man Speicherplatzprobleme auf
  340.      dem Bootlaufwerk, dann kann man statt WINX auch das Programm
  341.      WINXCOOK verwenden, bei dem die Patchfunktion entfernt wurde.
  342.  
  343.      Die Defaultwerte von WINX können auch direkt in die Datei 
  344.      WINX.PRG gepatcht werden. Hierzu sucht man in der Datei zunächst
  345.      nach dem String "PATCH HERE:". An dieser Position der Datei sind
  346.      die Defaultwert in der folgenden Struktur abgelegt:
  347.  
  348.        typedef struct {     /* offset  description */
  349.          char prefix[ 12];  /* $00  "PATCH HERE:" */
  350.          short size;        /* $0C  sizeof( defaultS) */
  351.          short global;      /* $0E  global switches */
  352.          short local;       /* $10  local switches */
  353.          short desk;        /* $12  desktop switches */
  354.          short isdelay;     /* $14  initial scroll delay */
  355.          short csdelay;     /* $16  continous scroll delay */
  356.          short ccdelay;     /* $18  continous close delay */
  357.          short cfdelay;     /* $1A  continous full delay */
  358.        } defaultS;
  359.      
  360.      Die Schalter sind jeweils in einem Bitfeld abgelegt. Bit 0
  361.      entspricht Schalter 1, etc. Die Verzögerungswerte sind in ms
  362.      anzugeben.
  363.                
  364. TERMINATE AND KEEP RESIDENT
  365.      WINX ist ein TKR-Programm und besteht aus einem TKR-Lader in den
  366.      das TKR-Modul 'WINX.TKR' eingefügt ist. Das TKR-Konzept sieht
  367.      vor, daß Programme (TKR-Module), die residenten Speicher benötigen,
  368.      diesen von einem anderen Programm (dem TKR-Lader) bereitgestellt
  369.      bekommen. Dadurch kann sich das TKR-Modul auf seine eigentliche
  370.      Aufgabe konzentrieren und belegt nur minimal Speicher. Der hier
  371.      benutzte TKR-Lader kann beliebig viele TKR-Module und andere
  372.      Programme enthalten. Ist beim Start des TKR-Laders eine SHIFT-
  373.      Taste gedrückt, wird für jedes TKR-Modul nachgefragt, ob es
  374.      gestartet werden soll. Der TKR-Lader gibt bei Programmende die
  375.      Gesamtgröße des resident gehaltenen Speichers aus.
  376.      
  377. BEKANNTE PROBLEME
  378.      - Einige ältere Programme verwenden die Fensterkennung zur
  379.        Indizierung eigener Tabellen, dies führt in der Regel bei
  380.        vielen offenen Fenstern zum Absturz.
  381.      - Einige Programme beschränken ohne zwingenden Grund die Anzahl
  382.        ihrer Fenster (z.B. das Original-Desktop).
  383.      - WINX Versionen vor 2.0 stürzten ab, wenn Programme die fehler-
  384.        hafte Fensterkennung -1 (NOWINDOW) benutzten. Dies wird jetzt
  385.        abgefangen.
  386.      - TOS14FIX darf nur nach WINX aufgerufen werden.
  387.      - TEMPLMON Versionen < 2.0 müssen vor WINX aufgerufen werden.
  388.      - Viele Programme kommen mit der Bearbeitung von hinteren Fenstern
  389.        nicht zurecht, vorallem das Scrollen in teilweise verdeckten
  390.        Fenstern bereitet Probleme.
  391.      - MultiGEM erlaubt nur 10 Fenster pro Applikation.
  392.      - WINX 2.1 wird erst ab MultiGEM 2.00 (Copyrightjahr 1993!)
  393.        unterstützt (zum Update siehe Hinweise im MultiGEM Handbuch)
  394.      - Da MultiGEM in der obigen Version noch die Fensterkennungen
  395.        auf eigene Werte abbildet, liefern einige neue wind_get()-
  396.        Modi falsche Kennungen:
  397.          WF_OWNER, WF_BOTTOM, WF_TOP (für owner und belowwin)
  398.      - BackDrop funktioniert nur vollständig, wenn es von Programmen
  399.        unterstützt wird
  400.      - Einige Graphikkarten (bzw. deren VDI-Treiber) haben offenbar
  401.        Probleme mit userdefined patterns. In diesem Fall sollte man
  402.        den Musterbezugspunktschalter auf 0/0 setzen und den Hersteller
  403.        der Karte bzw. des VDI-Treibers informieren.
  404.      - Ist der Musterbezugspunkschalter ausgeschaltet, werden Objekte
  405.        des Fensterrahmens immer komplett ausgegeben. Außerdem kann es
  406.        dadurch für verschiedene Programme notwendig werden die Redraw-
  407.        optimierungen auszuschalten (z.B. für XCONTROL).
  408.      - Beim Beenden von Applikationen schließt GEM die Fenster von
  409.        Accessories selbständig. In selten Fällen kann es vorkommen,
  410.        daß die Accessories nicht rechtzeitig vom GEM über diesen
  411.        Vorgang informiert werden und sie auf das nicht mehr existente
  412.        Fenster zugreifen. Ist jetzt die Fehlermeldungsanzeige von
  413.        WINX eingeschaltet, wird der fehlerhafte Zugriff gemeldet.
  414.        Dies ist ein konzeptionelles Problem des GEM.
  415.        Abhilfe: Anzeige ausschalten.
  416.      - Das Einstellen der Verzögerungswerte funktioniert erst ab TOS 1.04,
  417.        da das GEM vorher keinen entsprechenden Zähler bereitstellt.
  418.      - Die Fensterverwaltung des GEMs 3.40 initialisiert den Namen und
  419.        die Infozeile des Fensters auf Defaultwerte. WINX tut dies nicht.
  420.      - Durch die Veränderungen im SCRENMGR kann der Anwender Fenster jetzt
  421.        über den sichtbaren Bereich hinaus vergrößern. Programme, die von
  422.        einer maximale Fenstergröße ausgehen und diese nicht überprüfen,
  423.        können daher Probleme bereiten.
  424.      - Da WINX >= 2.1 die ARROWFIX-Patches enthält, muß ARROWFIX aus
  425.        dem AUTO-Ordner entfernt werden.
  426.  
  427. HINWEISE FÜR ENTWICKLER
  428.      siehe Datei WINXPROG.GER
  429.  
  430. VEKTOREN, COOKIES, ENVIRONMENT, ...
  431.      Im Fall c) wird der LineF-Vektor verbogen (XBRA-Kennung AESF).
  432.  
  433.      WINX (bzw. WINXCOOK, das Zusatzprogramm für ein WINX modifiziertes
  434.      ROM) erzeugt ab der Version 2.1 den Cookiejareintrag 'WINX'.
  435.      Dieser Cookie enthält als Wert eine Zeiger auf einen Funktion
  436.      über die bestimmte Eigenschaften der akt. WINX-Version erfragt
  437.      werden können.
  438.  
  439.      Ist der WINX-Cookie installiert, wird beim Start des GEM der
  440.      GEMDOS-Vektor verbogen (XBRA-Kennung WINX).
  441.  
  442.      GEMRAM bestimmt die Ausgabesprache zunächst aus den OSHEADER,
  443.      dann über den _AKP-Cookie (falls er existiert). Beim Start aus
  444.      dem Desktop wird zusätzlich die Environmentvariable "AE_LANG"
  445.      ausgewertet. Falls als Sprache etwas anderes als Deutsch
  446.      ermittelt wird, benutzt GEMRAM Englisch. Das Datumsformat wird
  447.      aus dem _IDT-Cookie bestimmt, falls dieser nicht existiert über
  448.      die Ausgabesprache.
  449.  
  450. COPYRIGHT
  451.      Autor:      (\/) Martin Osieka
  452.      Anschrift:  Martin Osieka, Erbacherstr. 2, 
  453.                  D-64283 Darmstadt, Bundesrepublik Deutschland
  454.      Internet:   Martin_Osieka@mtk.maus.de
  455.  
  456.      Schriftlichen Anfragen bitte immer einen frankierten und
  457.      adressierten Rückumschlag beilegen.
  458.  
  459.      Das Programm WINX.PRG darf auf beliebige Art und Weise weiter-
  460.      verbreitet werden, solange alle Dateien des Programmpakets
  461.      beiliegen. Zum Paket gehören:
  462.  
  463.      WINX.PRG, WINX.CPX      Patchprogramm und Konfigurationsmodul
  464.      WINXCOOK.PRG            Zusatzprogramm für WINX im ROM
  465.      WINX.INF                Datei mit Konfigurationsinformationen
  466.      WINX.GER, WINXPROG.GER  Dokumentation (deutsch)
  467.      WINX.ENG, WINXPROG.ENG  Dokumentation (englisch)
  468.      WINX.UPL                Upload-Beschreibung (deutsch)
  469.      LIESMICH                Kurzbeschreibung
  470.      NEUES                   Änderungen seit der letzten Version
  471.  
  472.      Die Benutzung des Programms erfolgt auf eigene Gefahr.
  473.  
  474. SIEHE AUCH
  475.      Dokumentation von GEMRAM, ARROWFIX und WINCOLOR
  476.