Let 'em Fly! Changes Complete
=============================

1.01 (beta, not released)
-----
- [Enter] auf dem 10er-Block selektiert jetzt auch das Default-Objekt.
- Die Alert-Boxen wurden berarbeitet. Es wird jetzt von vornherein 8K fr
  den Hintergrund reserviert. Weiterhin hab ich mich dazu herabgelassen
  neue Icons zu malen (die anderen hatte ich aus FormDoIt! geklaut ...
  wre auch zu dreist gewesen).
- Der Word-Skip wurde auch verbessert. Vorher kannte Let 'em Fly! keine
  Umlaute.
- War ein Eingabefeld bis zum Ende voll, so konnte man mit der Maus den
  Cursor nicht hinter das letzte Zeichen positionieren.
- Ich habe den Fehler mit den Linienresten beim Fliegen gefunden und
  natrlich behoben.
- Das Verfahren zum Setzen der Underscores wurde komplett berarbeitet.
  Die Vorteile liegen auf der Hand: a) es wird jetzt weniger Speicher
  alloziert, b) es gibt nur noch wenige Programme, die Let 'em Fly!
  berlisten knnen.
- Hatte man versucht mit LET_CONF (als Programm!!!) Let 'em Fly! komplett
  auszuschalten, so klappte das auch prima ... man durfte es dann nur
  nicht wieder einschalten ...

1.02 (first official release)
----
- Falls nun ein Programm den Maus-Cursor vor den Alert-Boxen nicht ein-
  schaltet, hat der Maus-Cursor trotzdem verloren (Btsch). Irgendwo hat
  man mal gelesen, da Computer auch zhlen knnen ...
- Vom AES nicht vordefinierte Objektflags/stati werden von Let 'em Fly!
  nun ignoriert. Hatte zwar vorher keine Probleme, aber sicher ist sicher,
  da es sonst mit Sicherheit bumst.
- Ich glaube zwar nicht, da irgendein Programm 6 Dialoge ineinander
  verschachtelt, aber trotzdem fange ich solche Versuche jetzt ab.
- Neue Editierfunktion: [CTRL]+[Delete] lscht alles rechts vom Cursor.
- Man kann jetzt explizit nach jedem letzten form_dial(FMD_FINISH, ...)
  einen Redraw senden lassen (siehe Config.-Programm).
- Aus der Konfiguration ist der Punkt 'Save Background' herausgeflogen, da
  eigentlich berflssig. Dazugekommen ist der eben schon erwhnte Punkt
  'Send Redraw'.

1.03 (internal, not released)
----
- Da das AES fr seine Alert-Boxen ja einen eigenen Buffer anlegt, mir
  jedoch entfallen ist, da man mit wind_get(WF_SCREEN, ...) die Adresse
  und Lnge abfragen kann, wird in Let 'em Fly! dieser Buffer nun auch fr
  die Alert- Boxen benutzt. Bei TOS-Versionen < 1.04 wird als Lnge
  konstant 8K angenommen. Resultat: Let 'em Fly! alloziert 8K weniger
  Speicher.
- UNDO zustzlich fr 'verlassen', HELP zustzlich fr 'hilfe'.
- erweiterte form_center() Routine. Dialoge, welche ein zweites mal auf-
  gerufen werden, erscheinen an der letzten Position. Drckt man beim
  Aufruf des Dialogs zustzlich [ALT]+[CTRL], so wird die Box wieder
  zentriert dargestellt.
- Clipboard-Untersttzung. Mit [CTRL]-[C/X/V] kann man jetzt auch in edi-
  tierbaren Feldern kopieren, ausschneiden und einfgen. Ausgeschnitten/
  Kopiert wird immer die komplette Zeile, beim Einfgen wird jedoch 'echt'
  eingefgt.
- Neue Icons knnen installiert werden. Die Datei mu LET_ICON.RSC heien
  und entweder im AUTO-Ordner oder im ROOT liegen. Der Aufbau ist selbster-
  klrend.
- Beim durchsichtig machen eines Dialogs wird jetzt kein Redraw mehr
  gesendet, auch wenn 'Send Redraw' eingeschaltet ist.
- Das Scannen des Alert-Strings wurde komplett berarbeitet und ist jetzt,
  bis auf einige zustzliche Sicherheitsabfragen, weitgehend kompatibel
  zum Original.
- Trifft die Routine fr die Tastenvergabe auf einen String, welcher
  ausschlielich aus Spaces besteht, hat es vorher geknallt. Ist nun auch
  behoben.
- Insgesamt wurde Let 'em Fly! von Library-Funktionen entrmpelt. Dadurch
  ist die neue Version auch nur ~1K lnger geworden.

1.10 (internal, not realeased)
----
- Neues Configurations-Accessory, welches der CPX-Version angepat wurde.
  (Ich bin halt ein fauler Mensch ... jetzt mu ich nur noch ein Programm
  pflegen)
- ntersttzt jetzt virtuelle Bildschirme a la BigScreen 2.0, d.h. der
  Dialog kann an der zur Zeit sichtbaren Stelle zentriert werden. Alert-
  Boxen werden immer im sichbaren Bereich zentriert.
- ber den erweiterten Objekttyp und die nicht genutzten ob_flags ist es
  nun mglich Let 'em Fly! ber den jeweiligen Objektbaum zu steuern. Z.B.
  ist es so mglich gezielt Tasten zu vergeben oder bestimmte Funktionen
  abzuschalten.
- ber den Cookie wird nun eine neue Funktion (obj_clsize) zum Berechnen
  der echten Ausmae eines Objekts bereitgestellt.

1.11 (second official release)
----
- Der 'Send Redraw' wurde auf alle form_dial(FMD_FINISH, ...) erweitert,
  da es oft nicht gereicht hat nur den letzten FMD_FINISH zu berck-
  sichtigen.
- Bei dem unten aufgefhrten GEMDOS Bug hat sich Let 'em Fly! etwas
  seltsam verhalten, was mit dieser Version jetzt aber (hoffentlich)
  behoben ist.
- Wird ein Ersatzobjekt mit Underscore angeklickt, so wird der Klick auf
  das eigentliche Objekt simuliert. Ausnahme: Das Ersatzobjekt ist editier-
  bar.
- War der Alert-String lnger als 255 Zeichen war die Wahrscheinlichkeit,
  da Let 'em Fly! abstrzt sehr hoch.
- Der Code wurde hinsichtlich der Gre um ein paar hundert Bytes kleiner.

1.12 (third official)
----
- Um innerhalb von form_do() eigene Tastendrcke verwalten zu knnen, ist
  es nun mglich ber den Cookie-Jar eine User-Funktion zu installieren,
  welche bei jedem Tastenevent aufgerufen wird.
- Als SPECIAL Keys gelten jetzt auch die Funktionstasten [F1]-[F10]. Diese
  lassen sich aber nur ber die ExObTypes vergeben. Die eingebauten Alert-
  Boxen machen hiervon Gebrauch, d.h. die drei Tasten kann man jetzt
  zustzlich mit [F1]-[F3] erreichen.
- Das VDI-Workstation Handling wurde komplett berarbeitet, somit gibt es
  jetzt auch keine Probleme beim Auflsungswechsel mehr.
- Ebenso wurde das Clipboard-Handling berarbeitet. Das Clipboard wird
  beim Ausschneiden von Texten vorher gelscht, auer man benutzt die neue
  Funktion zum Anhngen von Daten, welche bei zustzlich gedrckter Shift-
  taste ausgelst wird. Weiterhin kommt Let 'em Fly! nun auch mit sog.
  falschen Pfadangaben zurecht, d.h. ein Backslash ('\') am Ende der
  Pfadangabe fr das Clipboard wird korrekt behandelt.
- Bei der direkten Cursorpositionierung wurde die Ausrichtung des Textes
  nicht bercksichtigt. Seltsame Positionierungen sollten nun der Ver-
  gangenheit angehren.
- Wurde ber die ExObTypes ein UNDO oder HELP Objekt festgelegt, so wurde
  das Objekt mit zwei Tasten (und auch zwei Strichen) belegt. Ist jetzt
  behoben.
- Ist bei einem Objekt die '9' unterstrichen, so kann man dieses nun auch
  ber [ALT]+'9' anwhlen (knnte vielleicht mal ganz ntzlich sein).
- Ein peinlicher Fehler bezgl. der Speicherverwaltung in der Icon-Lade-
  routine wurde beseitigt.
- Ein kleiner (aber durchaus bler) Tippfehler in der form_dial() Routine
  wurde behoben. Bei der Verschachtelung von Dialogen konnte es Probleme
  geben.
- In der form_keybd()-Routine wurde ein Work-Around fr die MyDials
  (Interface) eingebaut. Vorher gab es Probleme beim Drcken von RETURN,
  d.h. das richtige Objekt wurde selektiert, jedoch ein falsches wurde
  zurckgegeben.
- Wurden zwei Dialoge mit der gleichen Adresse nacheinander abgearbeitet,
  obwohl diese unterschiedlich waren (z.B. Dialog-Test in Interface), dann
  hat Let 'em Fly! zwei Bomben geworfen. Ist nun auch behoben.
- Das Selektieren des DEFAULT-Objekts beim Drcken von RETURN wurde korri-
  giert. Es wird nun nicht mehr brute-force auf SELECTED-only gesetzt
  (peinlich).

1.13 (never release '13'er versions ...)
----
- Den Underscores und dem Alert-Icon kann nun eine bestimmte Farbe zu-
  gewiesen werden. Bei der Farbzuweisung der Underscores wird nach den
  Regeln des AES verfahren, d.h. ist ein Objekt SELECTED wird Bit 0
  komplementiert.
- Durch diese Farbuntersttzung mute natrlich auch ein neues Konfigu-
  rationsprogramm her.
- Mit [ALT]+[Tab] bzw. [ALT]+[SHIFT]+[Tab] kann man nun das DEFAULT
  Objekt innerhalb eines Dialogs 'verschieben'. Smtliche selektierbaren
  G_BUTTONs werden dabei durchgegangen.
- Ohne [ALT] kann man jetzt auch die Shortcuts innerhalb der Alert-Boxen
  erreichen.
- Man kann nun die rechte Maustaste fr den Flugmodus (normal/ durch-
  sichtig) umkonfigurieren, d.h. rechte Taste nicht gedrckt: durch-
  sichtig; Taste gedrckt: normal.
- Let 'em Fly! versucht jetzt immer erst TT-Ram zu allozieren. Dadurch
  wird es natrlich noch etwas schneller.
- Die Flugroutinen wurden weiter optimiert. Boxen die grer als der
  Bildschirm sind, knnen jetzt auch fliegen. Weiterhin brauchen die Werte
  zum Saven des Bildschirms bei FMD_START nicht mehr genau sein. Wird
  zuviel gesaved, so pat Let 'em Fly! die Koordinaten beim Flug an. Wurde
  zuwenig gesaved, so wird der Dialog als flugunfhig angesehen.
- ber die ExObTypes (bzw. die nicht genutzten Flags) lassen sich nun auch
  Dialoge flugunfhig machen. Das ist interessant, wenn das Programm mit
  den fliegenden Dialogen nicht zurrechtkommt.
- Ebenfalls ist nun ber die ExObTypes ein 'Snap-in' Modus erreichbar.
  Nach dem Fliegen rastet die Dialogbox wieder auf das ursprngliche Byte-
  Alignment ein.
- Da man z.B. bei Dialogboxen in Fenstern (-> Kontrollfeld) eine eigene
  form_do() Routine schreiben mu, mute man bis jetzt auch immer auf die
  Tastatur-Shortcuts von Let 'em Fly! verzichten. Nun sind zwei wichtige,
  vorher nur interne Funktionen fr dieses Problem ber den Cookie an-
  sprechbar. Es handelt sich dabei um init_keys() (scannt den Dialog und
  malt die Striche) und lookup_key() (gibt bei einem Tastendruck das
  jeweilige Objekt zurck).
- Das wind_update() Verhalten bei den Alert-Boxen wurde verbessert, vorher
  kam es immer etwas zu spt.
- Die form_error() Routine zeigt jetzt nur noch Fehler kleiner #64 an. Das
  Original macht's genauso.
- Da sich bei AS-Overscan die Auflsung ohne Reset ndern kann, konnte es
  bei eingeschaltetem 'Save Position' Probleme geben.
- Eine in V1.12 eingebaute Inkompatibilitt in der form_keybd() Routine
  wurde entfernt. Das DEFAULT-Objekt mute auch EXIT sein, da ist beim
  Original jedoch nicht der Fall.
- Let 'em Fly! liegt jetzt eine vernnftige Library bei. Somit sollte es
  jetzt etwas einfacher sein die zustzlichen Features von Let 'em Fly! zu
  nutzen.
- Nachdem ich in V1.11 bezgl. des GEMDOS Bugs von 'hoffentlich'
  gesprochen habe (was sich natrlich nicht erfllt hat), ist das Ver-
  halten ab dieser Version tatschlich schner.
- Einen Fehler in der form_keybd() Routine entfernt. Trat aber nur unter
  extremen Bedingungen auf.
- Der neuen appl_exit()-Routine fehlte seit der letzten Version etwas,
  nmlich ein appl_exit() (was ja eigentlich auch der Sinn sein sollte).
  Irgendwie ist diese Zeile verlorengegangen ...

1.14 (4th official)
----
- Versionsnummer vorsichtshalber auf 1.14 gendert ...
- Ein bichen an der Optik gefeilt.

1.15 (beta only)
----
- In der TOS 10/91 wurden auch neue Dialogroutinen vorgestellt. Natrlich
  knnen sie Let 'em Fly! nicht das Wasser reichen, aber eine Idee fand
  ich so gut, da ich sie auch in Let 'em Fly! verwirklicht habe. Es
  handelt sich hier um die History-Funktion fr die editierbaren Felder.
  Mit [CTRL]+[Csr up/down] kann man die History durchgehen, mit
  [SHIFT]+[Csr up/down] kann man nach dem eben eingetippten String(anfang)
  suchen lassen (s.a. Mupfel).
- [CTRL]+[V] fgt jetzt nicht mehr 'echt' ein, sondern lscht die Zeile
  vorher. Der alte Modus ist weiterhin ber [CTRL][SHIFT]+[V] erreichbar.
- Um Zeichen zu erzeugen, die nicht so einfach ber die Tastatur einzugeben
  sind, kann man in editierbaren Feldern (die alle Eingaben zulassen!)
  ber [SHIFT]+[Insert] eine kleine Dialogbox mit den 'blen' Zeichen auf
  den Bildschirm zaubern. Diese Funktion ist auch ber den Cookie-Jar
  erreichbar.
- Klickt man auerhalb von Dialogboxen, so hat es vorher nur 'Pling'
  gemacht, nun kommen die Dialogboxen zur Maus geflogen (Jumpin' Dials).
- Diese neue Flugroutine ist auch ber den Cookie erreichbar. Nebenbei gibt
  es hier eine Mglichkeit nachzuprfen, ob der Dialog fliegen kann.
- Damit man in die Buttons 'reinfahren' kann, ist es nun mglich die Zeit
  bis zum Fliegen einzustellen. Ausnahmen: ein Flugobjekt wurde definiert,
  die di_fly()-Routine wurde ber den Cookie angesprungen.
- Neben den Strichen zum Kennzeichnen der Shortcuts, kann man jetzt den
  Buchstaben farbig drucken lassen (geht natrlich nur in Farbe).
- ber die ExObTypes lt sich nun auch ein Flugobjekt festlegen. Kann die
  Box nicht fliegen, so wird es von Let 'em Fly! gelscht.
- Eine sog. EXAPPLBLK-Struktur wird untersttzt. ber diese Struktur kann
  Let 'em Fly! benutzerdefinierte Objekte untersttzen (z.B. runde Radio-
  Buttons).
- Die Tastenvergabe wurde weiter optimiert, sie geht jetzt durch vier (4)
  Instanzen: 1.) Taste ber ExObType festgelegt? 2.) Default/Undo-Key (d.h.
  erster Buchstabe)? 3.) Wortweise vergeben (d.h. immer der erste Buchstabe
  eines Wortes). 4.) Suche ein beliebiges Zeichen (so wie frher auch).
- Ich glaube, der GEMDOS Bug verfolgt mich (mein Psychater kann mir leider
  auch nicht helfen). Nun denn, ab dieser Version wird der Redraw beim
  Lschen der Box an der richtigen Stelle und in der richtigen Gre
  gesendet.
- In der obj_clsize()-Routine war ein kleiner Fehler enthalten: SHADOWED
  Objects mit einer positiven Rahmendicke wurden falsch berechnet. Das hat
  sich auch auf einige Dialoge ausgeweitet, da Let 'em Fly! ja nun selbst
  die Objektgre berechnet.

1.16 (experimental version)
----
- In die Eingabefelder fr Datei- und Pfadnamen, knnen jetzt alle legalen
  Buchstaben eingeben werden.
- Da ein String in die History nur dann eingefgt wird, wenn dieser auch
  verndert wurde, kann man jetzt mit [CTRL]+[Return] den String im
  aktuellen Eingabefeld 'manuell' einfgen.
- ber den Cookie-Jar kann man im eigenen Programm ebenfalls manuell
  Strings in die History einfgen.
- Bei CAPS-LOCK konnte die [RETURN]-Taste nicht mehr den Dialog beenden.
  Diesen Bug hatte ich in V1.15 eingebaut.
- Das Flugobjekt wird (im Gegensatz zu V1.15) nicht mehr ber die ObFlags,
  sondern ber den ExObType festgelegt.
- Damit bei der manuellen Tastenvergabe (die ber den ExObType) die
  Sondertasten nicht zustzlich mit einer normalen Taste belegt werden,
  kann man dies nun durch setzen eines Flags verhindern.
- Let 'em Fly! ffnet jetzt berhaupt keine virtuellen Workstations mehr,
  sondern speichert die Attribute der GEM-Workstation (nein, nicht die von
  dem Synthesizer ...), die verndert werden.

1.17 (number five is alive)
----
- ber editierbaren Feldern wechselt der normale Maus-Cursor in einen Edit-
  Cursor. Geklaut vom Mac, bzw. aus den Dialog-Boxen von Markus Fritze
  (please forgive me).
- Ein Doppelklick auf das Flugobjekt re-centered die Dialogbox wieder.
  (Diese Funktion ist auch ber den Cookie-Jar erreichbar)
- Anstelle der rechten Maustaste, kann man nun auch eine der Shifttasten
  benutzen, um den Dialog durchsichtig zu machen.
- Ist in einem Dialog KEIN editierbares Feld vorhanden, so braucht man fr
  die Shortcuts kein [ALT] mehr zu drcken. Dieses Verfahren galt vorher
  nur fr die Alert-Boxen.
- Vor dem Bearbeiten der Dialogbox wird nun der Tastaturbuffer gelscht.
  Das Original macht es anscheinend genauso.
- War ein Default-Button durch ein DISABLED `gefangen', so kann man ihn
  jetzt mit [ALT]+[Tab] auch wieder `befreien'.
- Der Gong bei den Jumpin' Dials erklingt nur, wenn die TOS-Bimmel
  eingeschaltet ist, d.h. man kann ihn auch nur so abschalten.
- Die Vergabe der Tasten nach 2 (s.o.) hatte noch einen kleinen Tenkfehler
  in der Anzeige.
- Das Prfen der Flugfhigkeit wurde verfeinert. Es gibt jetzt drei
  Returnwerte (nicht mglich, mglich im Sparmodus, uneingeschrnkt
  mglich).
- Der ExObType 113 (0x71), der bei FormDoIt! untersttzt wird um die
  KeyDials fr dieses Objekt auszuschalten, wird jetzt auch von
  Let 'em Fly! supported. Vorher war dieser Wert nur im ROOT-Objekt gltig
  (und schaltete so Let 'em Fly! komplett ab).
- Der Sparmodus beim Fliegen wurde komplett neu geschrieben und
  funktioniert jetzt auch vernnftig (hoffe ich zumindest ...).


Known Bugs:
-----------

- Wird die Box durchsichtig gemacht und der ist Speicher knapp, dann kann
  es sein, da sich die Box beim nchsten mal nicht mehr verschieben lt.
  Tja, anscheinend ist das GEMDOS nicht immer in der Lage einen Block mit
  der Lnge X zu free-en und danach wieder einen Block mit gleichem X zu
  allozieren. Auch POOLFIX schafft hier keine Abhilfe.
