5.4.1994: WINX 2.3g BETA

- Programmierung: WindowShade-Nachrichten
  WINX verschickt jetzt eine WM_SHADED-Nachricht, wenn ein Fenster ein-
  geklappt wird, bzw. eine WM_UNSHADED-Nachricht beim Ausklappen.
  Diese Nachrichten sind zu behandeln wie WM_ONTOP und WM_UNTOPPED, 
  d.h. sie informieren nur ber einen Zustand, der sich zum Zeit-
  punkt des Eintreffens der Nachricht schon wieder gendert haben kann.
  #define WM_SHADED 22360     /* [WM_SHADED apid 0 win 0 0 0 0] */
  #define WM_UNSHADED 22361   /* [WM_UNSHADED apid 0 win 0 0 0 0] */
  Sinnvoll wre es jetzt noch ein Bit der wind_get/set-Subfunktion
  WF_BEVENT zum Abfragen und ndern des Shadezustands zu benutzen.
  Wer unternimmt einen Vorsto bei ATARI? (Ich bring's nicht mehr :-(

- WINX-Schalter G14: Mauszeiger whrend Echtzeitfunktionen umschalten
  Da einige VDI-Treiber Probleme mit dem Vorgehen des AES beim
  Sichern und Restaurieren der Mausform haben, kann man das
  Umschalten der Mausform jetzt abschalten.

- GEM-Desktop: Negative Fensterkoordinaten
  Das GEM-Desktop speichert die Fensterkoordinaten als vorzeichenlosen
  Bytewert im Shellbuffer. Fenster, die links aus dem Bildschirm ge-
  schoben werden, erschienen daher bisher beim Laden des Shellbuffers
  am rechten Bildschirmrand. WINX bildet jetzt beim Speichern neg.
  Koordinaten auf 0 ab. Dies Lsung ist nicht perfekt, vermeidet
  jedoch Kompatibilittsprobleme.
  (reported by Henry Rolofs @ KR)

27.03.1994: WINX 2.3f BETA

- Restaurierung der letzten Version

- Interna: WindowShade
  Das automatische Entshaden beim Klick auf den Fuller fhrte in 
  einigen Situationen dazu, da der SCRENMGR das Loslassen des
  Mausknopfs nicht mehr mitbekam.

16.1.1994: WINX 2.3e BETA

- Programmierung: appl_getinfo()-Test
  Da einige Programmiersprachen bei einer logischen Verknpfung immer
  beide Teilausdrcke auswerten, mu der Test dort anders formuliert
  werden, da appl_find( "?AGI") nur aufgerufen werden darf, wenn das
  Programm nicht sicher wei, da agi() implementiert ist.

    has_appl_getinfo = TRUE;
    if (aesversion < 0x400) {
      if (appl_find( "?AGI") != 0) {
        has_appl_getinfo = FALSE;
      }
    }
    if (has_appl_getinfo) {
      /* appl_getinfo() kann aufgerufen werden */
    };

- Interna: Abfangen des GEMDOS-Traps
  In der 2.3d wurde bei Pexec() vergessen das Register D7 zu retten.
  Also schnell in die Tonne damit...

- Konfiguration: GEM-Patch
  Die WINX-Defaultwerte zum Patchen eines GEMs knnen jetzt aus einer
  WINX.INF-Datei geladen werden (damit ist es nicht mehr notwendig
  WINX selbst zu patchen).

10.1.1994: WINX 2.3d BETA

- Konfiguration: Gre der Rahmenelemente
  Die Gre eines Kontrollelements, wie dem Closer, entsprach bisher der
  einer quadratischen Zeichenzelle (entsprechend den wbox-/hbox-Rck-
  gabewerten von graf_handle). WINX erlaubt es die Gre zu konfigurieren.
  Hierzu fgt man ein Zeile folgenden Formats in WINX.INF ein:
    .GADGET=addw,addh	# mit addw/addh >= 0
  Die Gre eines Kontrollelements bestimmt sich dann aus der Gre
  einer Zeichenzelle (entsprechend den wchar-/hchar-Rckgabewerten von
  graf_handle) plus dem angegebenen Breiten- bzw. Hhenwert. Da die
  Zeichen in der Regel rechts einen weie Pixelspalte haben, benutzt
  man am besten einen ungeraden Breitenwert. Z.B. benutze ich:
    .GADGET=3,0

- Interna: WindowShade
  Wurde ein 'geshadetes' Fenster geschlossen, dann wurden unntiger-
  weise Redraws fr den kompletten Fensterbereich versandt
  (reported by Martin Khling @ UN)

- Interna: Bug-Fix 
  In der Behandlung der Buttonereignisse gab es seit WINX 2.1 einen
  Bug (warum hat das nur keiner bemerkt?). War ein ACC-Fenster ganz
  vorne und die Hauptapplikation bernahm die Mauskontrolle (weil
  man z.B. ein Icon auf dem Desktop verschieben wollte), dann bekam
  das ACC danach temporr keine Mausklicks mehr gemeldet.
  (reported by Annius.Groenink@let.ruu.nl)
 
20.12.1993: WINX 2.3c BETA

- GEM 3.x Bedienung: WindowShade
  Beim Klick auf den Fuller wird das Fenster automatisch entSHADEt.

- Programmierung: appl_getinfo()-Test
  Andreas Kromke und ich haben uns auf eine einheitliche Mglichkeit
  geeinigt, wie Programme die Anwesenheit von appl_getinfo() bei
  GEM-Versionen < 4.00 erfragen knnen. Falls jemand ernsthafte
  Einwnde hat, dann mge er sie bald uern.
  
    if ((aesversion >= 0x400) || (appl_find( "?AGI") == 0)) {
      /* appl_getinfo() kann aufgerufen werden */
    };
  
  Jedes Programm, das appl_getinfo() implementiert bzw. erweitert,
  sollte bei appl_find( "?AGI") den Wert 0 liefern.

- Interna:
  Das Flag fr die zustzliche Zeile von in Desktopfenstern wurde
  unter bestimmten Umstnden nicht korrekt initialisiert.

- GEM 3.x Desktop: Horizontaler Scrollbalken
  Brachte man ein Dateifenster auf maximale Gre, gab es Mll beim
  Scrollen. Aus irgendeinem Grund hatte der Autor des Desktops die
  Ausgabe auf eine bestimmte Hhe beschnitten.
  
- Interna:
  Der GEMDOS-Vektor wurde in 2.3b nicht umgehngt, weil ich vergessen
  hatte eine Versionsnummer zu ndern.

- Interna:
  WF_WINXCFG lieferte unter TOS 1.x nicht die korrekte Schaltermaske,
  dadurch waren z.B. die Scrollboxen sichtbar, obwohl sie nicht zu
  bedienen waren (altes Problem, endlich behoben)

- Interna:
  Wegen eines Fehlers ... (2.Versuch :-)
  
11.12.1993: WINX 2.3b BETA

- Interna:
  Wegen eines Fehlers in verschiedenen HiSoft-Programme verndert WINX
  bei wind_get( 0, WF_TOP, &topwin, &topowner, &belowwin, &ign) den
  Wert von <ign> nicht mehr. Eventuell fliegt das aber wieder raus.
  
- Programmierung: WF_STACK
  wind_set( win, WF_STACK, abovewin, 0, 0, 0)
  Stellt das Fenster <win> im Fensterstapel hinter das Fenster <abovewin>.  
  Ist <win> geschlossen, wird der Positionierungswunsch gespeichert und
  beim ffnen des Fensters mit wind_open() bercksichtigt.
  Diese Funktion ist im Experimentierstadium (in der Hoffnung, da
  ATARI soetwas hnliches implementiert). Der Funktionscode von WF_STACK
  entspricht momentan dem von WF_OWNER (welches keinen set-Modus hat).
  Kommentare zu WF_STACK sind erwnscht.
  Nebeneffekt der Implementierung: Das Redrawhandling bei BOTTOM wurde
  besser.

- GEM 3.x Bedienung: WindowShade
  Klickt man mit der RECHTEN Maustaste in die Titelzeile eines Fensters,
  dann wird der untere Teil des Fensters unsichtbar. Ein weiterer Klick
  hebt diesen Modus wieder auf. Dies ist auch ein guter Hrtetest, ob
  Programme die Rechteckliste immer korrekt beachten.

- GEM 3.x Bedienung:
  Ein Doppelklick auf die Titelzeile entspricht einem Klick auf das
  Maximalgrenelement (Fuller). Ich mag es nicht, aber ATARI (oder
  auch Windows) hat recht :-). Schaltet man die rechte Taste aus,
  dann wird die Funktion allerdings von der Doppelklickbehandlung
  von WINX ueberdeckt. Eventuell gibt es fr das Doppelklickfullen
  noch einen globalen Schalter. In diesem Fall hat die Funktion
  hherer Prioritt.

- GEM 3.x Desktop:
  Ist der Schalter L2 (minimale Anzahl von Rahmenelementen) fr das
  Desktop eingeschaltet, dann ist der Menpunkt 'einpassen' immer aktiv
  und die Fenster haben keinen horizontalen Scrollbalken mehr (da man
  ihn dann sowieso nicht benutzen konnte).  Vorteil: Eine Zeile mehr
  im Fenster.

- GEM 3.x Bedienung: Scrollboxen
  Der Mauspfeil mu nur noch halbsoweit ausgelenkt werden um eine
  entsprechenden Erhhung des Geschwindigkeitsfaktors zu erhalten. 

- Bedienung: Scrollgeschwindigkeit
  Der Defaultwert fr die Wiederholrate beim Scrollen wurde auf 0
  gesetzt, da ich es leid war immer wieder erklren zu mssen, warum
  manche Programme unter WINX langsamer scrollen.

- Interna: Bug in TOS 1.04
  bernahm eine Applikation die Mauskontrolle whrend des Scrollens,
  dann erhielt sie ab der zweiten Scrollnachricht auch den Mausklick
  gemeldet.

29.10.1993: WINX 2.3a BETA

- Ist bei wind_delete() das Fenster noch offen, dann wird es vorher
  aus dem Fensterstapel entfernt. Z.B. ist PC abgestrzt, wenn es
  auf diese Weise noch offene Fenster einer aus PC gestarteten
  Applikation aufrumen wollte. ACHTUNG: Das Fenster wird aus
  Geschwindigkeitsgrnden nicht mit wind_close() geschlossen.
- menu_attach() im Falcon-TOS 4.01-4.04 fhrte zum Absturz, falls man
  ein einmal eingetragenes Submenu abfragen, ndern oder lschen wollte.
  WINX behebt diesen Fehler.
  
17.10.1993: WINX 2.2

- Die .LOCAL-Zeile in WINX.INF wurde abgeschafft. Lokale Schalter
  eines Programms, die nicht direkt in der Schalterliste des Namens-
  musters gefunden werden, welches auf den Programmnamen pat, werden
  jetzt nicht mehr aus der .LOCAL-Zeile, sondern aus der Zeile mit
  dem Namensmuster "*" gesetzt. Damit ist das ganze zwar nicht mehr
  so flexibel, dafr aber hoffentlich verstndlicher (oder auch nicht).

8.10.1993: WINX 2.2e BETA

- Das mit dem Cookie hat wohl nicht funktioniert. Dumm, wenn man
  etwas nicht selbst testen kann. Hoffen wir, da es jetzt klappt.
  
6.10.1993: WINX 2.2d BETA

- WINX legt den WINX-Cookie jetzt auch an, falls das GEM bereits
  mit dieser WINX-Version gepatcht wurde (z.B. wenn man mit ROMRAM
  sein TOS resident im RAM installierte). WINXCOOK wird damit mehr
  oder weniger berflssig, wenn man nicht auf den Speicherplatz
  auf dem Bootdrive achten mu.
- Das FULL-Rechteck sollte jetzt wieder korrekt bei wind_create()
  bernommen werden

26.9.1993: WINX 2.2c BETA

- Funktionshandler erweitert um eine Funktion, die es erlaubt die 
  Bildschirmgre nachtrglich zu ndern (fr den Support von WINX
  durch AutoSwitch-OverScan und Konsorten)
    #define WFC_SETSCR 12
    (winxfunc( WFC_SETSCR, newscrw, newscrh) == 0) => SUCCESS
- Patch fr 'Phantom Typist' Problem (TOS >= 1.06). Da sich der Fehler
  nicht gezielt reproduzieren lt, ist es aber nicht sicher, ob der
  Patch die Lsung bringt. Schaden tut er jedenfalls nicht ;-)
- Fehlte die WINX.INF-Datei erschien eine fehlerhafte Meldung

20.9.1993: WINX 2.2b BETA

- Die Defaultwerte von WINX knnen ber die folgenden Patchvariablen
  direkt in die Datei gepatcht werden.
  typedef struct {
    char prefix[ 12];  /* "PATCH HERE:" */
    short size;        /* sizeof( defaultS) */
    short global;      /* global switches */
    short local;       /* local switches */
    short desk;        /* desktop switches */
    short isdelay;     /* initial scroll delay */
    short csdelay;     /* continous scroll delay */
    short ccdelay;     /* continous close delay */
    short cfdelay;     /* continous full delay */
  } defaultS;
- Es ist jetzt nur noch ein Patchversuch pro WINX-Aufruf mglich
- Die verschiedenen Verzgerungswerte knnen jetzt auch ber WINX.INF
  eingestellt werden (die Werte im CPX haben aber noch Prioritt!):
    .DDELAY=arrow1,arrow2,closer,fuller
  Beispiel (entspricht der Defaulteinstellung):
    .DDELAY=460,40,1000,2000
  (alle Werte in ms; die Auflsung des Timers betrgt 20ms).
- Im TOS 1.00-1.04 klappte die berprfung, ob einer Applikation ein
  Mausklick zugeordnet ist, nicht 100%ig (z.B. wenn der SCRENMGR beim
  Scrollen die Kontrolle hatte)
- Das Sichern eines gepatchten TOS 1.00-1.04 fhrte zu einem bombigen
  Ergebnis.
- Nach Fehlermeldungen wartet WINX einen Moment, so da diese lesbar
  sind.

13.9.1993: WINX 2.2a BETA

- Der Einbau der appl_getinfo()-Funktion in WINX fhrte zu Problemen
  mit Programmen, die zum einen Userdefs in der Menzeile benutzen
  und zum anderen mit einer lteren TurboC-GEM-Bibliothek gelinkt
  wurden (GEMINI 1.21, ...) . Dieser Fehler wird jetzt abgefangen.
- wind_get( WF_WINX) liefert jetzt WF_WINX, falls es die Funktion gibt.
  Damit kann man darauf verzichten vorher zu prfen, ob wind_get()
  berhaupt einen gltigen Funktionswert liefert. Ergnzend wurde
  das Beispiel fr eine has_appl_getinfo()-Funktion gendert.

    #define WF_WINX 22360
    
    int has_appl_getinfo( void)
    /* Liefert TRUE, falls das AES appl_getinfo() bereitstellt */
    {
      static int hagi = -1;
      int ign;

      if (hagi < 0) {      
        hagi = ((_GemParBlk.global[ 0] >= 0x400) ||
          (wind_get( 0, WF_WINX, &ign, &ign, &ign, &ign) == WF_WINX));
      };
      return( hagi);
    } /* has_appl_getinfo */
  
9.9.1993: WINX 2.1
