Das Entwicklungs-System ACSpro Version V3.0.0û 02.02.2005 von Martin ElsÑsser GartenÑcker 30 86938 Schondorf a.A. Deutschland ====================================================================== History & ToDo-Liste ====================================================================== In der ToDo-Liste habe ich alle momentan geplanten Korrekturen und Erweiterungen aufgefÅhrt. Die Liste ist nach PrioritÑt sortiert. Ferner habe ich die sog. History zusammengetragen, die Liste aller énderungen und Neuerungen, die es in ACSpro gibt bzw. gab. Wie solche History-Listen normalerweise ist auch diese chronologisch geordnet, die letzten Neuerungen stehen zuerst in der Liste. Hinweis: Die Versionsnummer der nÑchsten ACSpro-Version wurde nun von V2.40 auf V3.0.0 erhîht, da sich doch zum Teil grundlegende Dinge geÑndert haben. Hinweis: Diese Listen enthalten den Stand vom 2. Februar 2005. öber das Internet oder Åber den Hilfe-DÑmon der Maus LL (siehe "Der Hilfe- DÑmon der Maus LL") erhalten Sie stets die neueste Version der History und der ToDo-Liste. Die Adresse der ACSpro-Seiten lautet http://acspro.atari.org/ 8.1 ToDo-Liste =============== Hier habe ich alle bislang geplanten Korrekturen und Erweiterungen in ihrer bisher bewerteten PrioritÑt (Je wichtiger ein Punkt ist, umso weiter steht er oben) aufgelistet. Stand der Liste ist der 2. Februar 2005. Eine i.a. aktuellere Liste kann Åber den Hilfe-DÑmon der Maus LL (siehe "Der Hilfe-DÑmon der Maus LL") abgerufen werden. 1. ACSpro und ACSpro-"Erzeugnisse" sollen auch unter Memory Protection laufen. (U. Kaiser) ACSpro sollte hier eigentlich laufen, bislang gab es bei den Tests noch keine Probleme unter MultiTOS. Ich bitte hier um weitere Tests unter N.AES und Milan-MultiOS (die habe ich beide nicht zur VerfÅgung) sowie RÅckmeldung der Ergebnisse - Danke! 2. Transparente und komfortable UnterstÅtzung bereits im ACSpro- GUI-Editor (soweit mîglich und sinnvoll) und in den Bibliotheken von allen modernen Protokolle wie z.B. AV- & XAcc-Protokoll (komplett, nicht nur rudimentÑr wie bisher), OLGA, GEMScript, ST-Guide, PureC-Hilfe-Protokoll, DHST-Protokoll, SE-Protokoll, MenÅ-Protokoll, SSP, etc. (M. ElsÑsser) Ein Groûteil der genannten Protokolle wird bereits passiv von ACSpro unterstÅtzt, d.h. die entsprechenden Nachrichten werden empfangen und verarbeitet. Die aktive UnterstÅtzung ist in Vorbereitung und wird in einer der Versionen nach der V3.0.0 realisiert werden. 3. Als Compiler soll auch der GCC verwendet werden kînnen. (U. Kaiser) Eine Portierung auf GNU-C ist mit der Version 3.0.0 geplant und in Arbeit. 4. Bei mehr als 256 Farben erhÑlt man entweder schwarz/weiû Icons oder PixelmÅll. (H. Achilles) 5. Wenn ACSpro-eigene UserDefs Åber den allgemeinen UserDef-Editor mit einer anderen Service-Routine versehen werden, wird diese wieder durch die Standard-Routine ersetzt, wenn man den Userdef- Objekt-Editor mit 'OK' verlÑût. Eine eigene Service-Routine sollte vom Userdef-Objekt-Editor erhalten bleiben oder sogar darin eingetragen werden kînnen! 6. Das Backdropping wird bislang automatisch durch MagiC (Backdrop des Fensters nicht angemeldet) bzw. durch ACSpro (Backdrop des Fensters angemeldet) erledigt und ist nicht beeinfluûbar. (M. ElsÑsser) In einer der nÑchsten Versionen wird die Struktur Awindow um einen Zeiger fÅr das Backdropping erweitert, so daû man hier auch eigene Routinen hinterlegen kann. 7. Die Nachricht WM_MOUSEWHEEL wird empfangen und durch Scrollen des Fensters umgesetzt. Hier sollte ein optimiertes Scrollen erfolgen, indem ggf. unter der Maus befindliche Objekte gescrollt werden sollten. Dies wird in einer der nÑchsten Versionen optimiert unterstÅtzt werden, d.h. daû bei Aktionen des Mausrades Edit-Felder, Cycle- Buttons, Popups, etc. gescrollt werden. 8. Eine UnterstÅtzung der WDIALOG-Druckdialoge, des (MagiC-)Font- Selectors und des (MagiC-)Fileselectors jeweils als Fenster- Dialog und modaler Dialog sollte ACSpro in gewohntem Komfort komplett zur VerfÅgung stellen. Der (MagiC-)Fileselector sowie der (MagiC-)Font-Selector werden in der Version 3.0.0 in vollem Umfang in allen mîglichen (und unmîglichen ;-) Varianten unterstÅtzt. Der WDIALOG-Druckdialog wird in Version 3.0.0 unterstÅtzt, allerdings kann der Druckdialog noch nicht durch eigene ObjektbÑume erweitert werden. Das Einbinden eigener ObjektbÑume in den Druckdialog wird in einer der nÑchsten Versionen enthalten sein. 9. Die einzelnen Konfigurationsdateien, die es im Moment gibt, sind zum groûen Teil binÑr abgelegt. Es ist geplant, alle Konfigurationsdateien durch entsprechende Cfg-Strings zu ersetzen. Das Laden von anwendungseigenen Cfg- Strings erfolgt bereits automatisch. Die Steuerung Åber die Struktur CfgInfo in ACSconfig soll Åber den GUI-Editor im Hauptmodul geschehen. Alle Module sollen ihre Daten aus dieser einen Cfg-Datei laden. Die Idee ist hierbei, pro ACS-Modul eine Cfg-Gruppe zu verwenden. Daher sind die Gruppennamen, die mit "ACS-" beginnen, fÅr ACSpro reserviert! Erst wenn die modul-eigene Gruppe nicht vorhanden ist, sollte das Modul auf eigene Cfg-Strings zurÅckgreifen und diese in die Cfg-Strings der Anwendung Åbertragen. Diese öbertragung wird von ACSpro unterstÅtzt werden, sobald die Cfg- Strings von allen ACS-Modulen verwendet werden. 10. Die vom GUI-Editor generierte Struktur Aconfig enthÑlt noch Dummy-Werte fÅr die Komponenten CfgInfo und basename. Die hier abgelegten Werte sollen fÅr das Hauptmodul ebenso komfortabel im GUI-Editor eingegeben werden kînnen, wie die anderen Werte der Struktur. 11. In die Struktur Aconfig sollten alle wichtigen Initialisierungs- Daten aufgenommen werden - z.B. fehlt die Angabe der freigeschalteten Dead-Keys, die nun neu hinzugekommen ist. Alle diese Intialisierungs-Werte sollen vom GUI-Editor aus verwaltet werden kînnen. 12. Nach der linearen unsortierten Liste fehlen noch so nette Dinge wie die lineare sortierte Liste, Stack, BinÑrbÑume, AB-BÑume, Hashtables, etc. 13. ACSpro und mittels ACSpro entwickelte Anwendungen sollen problemlos unter MagiC 6 und N.AES mit jeweils proportionalen AES-Font laufen. (U. Kaiser) 14. FÅr Pure-Pascal-Output sollten die Forward-Deklarationen ebenfalls ausgegeben werden. (K. Kroll) 15. Der Icon-Editor sollte Åberarbeitet, am Besten komplett neu geschrieben werden. Z.B. sollten bei 256 Farben auch die Icons fÅr 16, 4 und 2 Farben bearbeitet werden kînnen... 16. Die implementierten Cfg-Strings sollten nach Vorhandensein eines BinÑrbaumes oder einer Hashtable umgestellt werden, um eine wesentlich bessere Performance als mit der bisherigen linearen Suche zu erzielen. 17. Routinen zur Bearbeitung und Auswertung von ObjektbÑumen wie z.B. Ausschnitte von BÑumen kopieren, Objekte im Baum zÑhlen etc. (H. Achilles) 18. In ACSpro sollten auch SubmenÅs implementiert werden. Derzeit sind ja leider nur Subpopups mîglich. (D. Kînig) 19. Um Eingaben mîglichst sofort plausibilisieren zu kînnen, ist einiges an Programmieraufwand notwendig, besonders wenn Eingabefelder voneinander abhÑngen. Hier soll ACSpro einen Mechanismus bieten, der ohne groûen Aufwand auch komplexe Plausibilisierungen ermîglicht. 20. Bessere UnterstÅtzung der Mehrsprachigkeit! Bisher muû jede ACS- Datei im ACSpro-GUI-Editor geîffnet und auf die neue Sprache umgestellt werden. Nach einem Generieren der Compiler-Sourcen muû erneut compiliert werden. (M. ElsÑsser) Hier wird ACSpro in Zukunft alle Sprach-Varianten exportieren. Durch Compiler-Macros wird dann die gewÅnschte eingebunden, man muû z.B. in Pure-C nur das passende Sprach-Makro definieren. Wie dies allerdings in Pure Pascal funktionieren wird, muû ich erst noch "erforschen"... ;-/ Als weitere Variante kînnen die Strings natÅrlich aus der Anwendung ausgelagert werden. Wie dann allerdings aus vielen Modulen bestehende Anwendungen zu einer "Text-Ressource" kommen, ist leider noch nicht ganz klar. Diese letzte Methode wird favorisiert und in einer der Versionen nach V3.0.0 realisiert werden, da hierdurch auch unabhÑngige öbersetzer Anwendungen in andere Sprachen Åbersetzen kînnen. 21. Beim Kopieren von Objekten im GUI-Editor (Shift-Taste beim Draggen gedrÅckt) werden abhÑngige Objekte (meist Strings) nur referenziert. Durch zusÑtzliches DrÅcken der Control-Taste werden diese dann auch kopiert. Diese momentane Standard-Einstellung der ausschlieûlichen Referenzierung beim Kopieren von Objekten im GUI-Editor sollte umgekehrt durch Control aktivierbar sein, da die Referenzierung eher als Sonderfall von Nutzen ist. Im Normalfall zieht man ein z.B. Button-Objekt aus dem Teile- Fenste und stellt die Grîûe, Farbe etc. ein. Wenn man nun z.B. 10 von diesen Objekten benîtigt, konnte man frÅher die Anzahl von Kopien anlegen und danach die unterschiedlichen Boxtexte eingeben. Nun jedoch muû dieser Arbeitsgang fÅr jedes einzelne Objekt erneut ausgefÅhrt werden. Das ist ein erheblicher Mehraufwand und spart auch nicht ein Byte an redundantem Code. Vîllig identische Objekte sind hingegen nur selten gefragt. (D. Kînig) 22. Moderne AES kînnen im MenÅ eine ansprechende Trennlinie zeichnen. Diese sollte gegenÅber der ACSpro-Lîsung eines UserDef vorgezogen werden. (U. Kaiser) In ACSpro 3.0.0 ist nun das Aussehen der MenÅs an die unter MagiC bei proportionalem Systemzeichensatz dargestellten 3D-MenÅs angepaût worden. Der 3D-Look der MenÅs ist allerdings unabhÑngig vom proportionalen Systemzeichensatz. Der 3D-Look der MenÅs kann ebenso abgeschaltet werden. 23. Im Sinne eines einheitlichen und damit wirklich benutzerfreundlichen GUI sollte sich der Look von ACSpro- Anwendungen unbedingt an den gÑngigen Look anpassen. (U. Kaiser) Dies sollte im Groûen und Ganzen fÅr magiC bereits realisiert sein. Noch fehlende Punkte mîchte ich natÅrlich noch anpassen. ACSpro-Anwendungen sollten von der Optik her wie andere moderne Anwendungen auch erscheinen - dies ist auch unter Ñlteren TOS- Versionen so. Allerdings mîchte ich optional die ACS-Userdefs in entsprechende GEM-Objekte wandeln, falls diese zur VerfÅgung stehen, z.B. sollten die Checkboxen in MagiC-Checkboxen umgewandelt werden. Allerdings ist hier zunÑchst aufgrund der ACS-FunktionalitÑt Åber Service-Routinen noch konzeptionelle Arbeit notwendig. 24. ACSpro soll entweder die MT_AES.LIB oder ein eigenes (optimiertes?) Multithreading-festes Binding verwenden. Ferner sind komfortable Mîglichkeiten fÅr Threads nÅtzlich. (H. Achilles) ACSpro enthÑlt nun ein eigenes TOS- und GEM-Binding. Das verwendete GEM-Binding ist allerdings noch nicht die fÅr ACSpro optimierte, multithreadingfeste Version. 25. Das Cycle-Objekt liefert leider bei Aufruf von identischen Text- EintrÑgen mittels AUO_CYGETINDEX immer nur den Index des ersten vorkommenden Eintrags. Das ist nicht WYSIWYG. Wenn ich z.B. 10 mal "Test|" als String Åbergebe und auf den 10. Eintrag klicke, darf nicht der Index 0 zurÅckgegeben werden. Hier mÅûte der Such-Algorithmus die Position im Objektbaum ermitteln und nicht die erste String-Position im Popupstring. éhnliches Fehlverhalten ist bei Subpopups zu bemÑngeln. Vorerst muû man also darauf achten, daû keine identischen Strings in den Popups vorkommen. Eine lÑstige EinschrÑnkung. (D. Kînig) 26. Die Funktion Ame_strpopup îffnet bei öbergabe des Pointers chk das Popup mit der Maus Åber diesem Popup-Objekt. Leider trifft das nicht zu, wenn das gewÅnschte Objekt in einem Subpopup vorkommt. Die Routine kînnte so umprogrammiert werden, daû in diesem Fall die Subpopups automatisch aufgeklappt werden und die Maus dann auch Åber diesem gewÅnschten Objekt steht. Das sieht erheblich professioneller aus und man muû sich nicht jedesmal mit der Maus zu diesem "Ausgangspunkt" hindurchhangeln, wenn man innerhalb einer "Gruppe" von Sub(subsub)popups etwas auswÑhlen will. (D. Kînig) 8.2 énderungen Version V2.32 auf V3.0.0 ======================================== Hier sind die énderungen und Erweiterungen von V2.32 zur - noch nicht verîffentlichten - V3.0.0 in umgekehrter chronologischer Reihenfolge aufgelistet. Hinweis: énderungen an den C-Bibliotheken betreffen stets auch die Pascal-Bibliothek. Von Bugfixes und Erweiterungen in den Bibliotheken hat stets auch der GUI-Editor profitiert, da dieser ja mittels ACSpro entwickelt wurde. Stand der Liste ist der 2. Februar 2005. Eine i.a. aktuellere Liste kann Åber den Hilfe-DÑmon der Maus LL (siehe "Der Hilfe-DÑmon der Maus LL") abgerufen werden. 02.02.2005 GUI-Editor ˜ Der GUI-Editor exportiert beim Generieren der Sourcen nun alle vier enthaltenen Sprachen. öber die Macros ACS_LANG1 bis ACS_LANG4 wird beim Compilieren entschieden, welche Sprachvariante eingebunden werden soll. Falls keiner der Macros definiert ist, wird das der im GUI-Editor eingetragenen Sprache der ACS-Datei verwendet. Es ist damit sehr leicht, ein ACS-Programm fÅr andere Sprachen zu compilieren. Die zu verwendende Sprache kann entweder in der Projektdatei (Pure-)C, in einer Include- Datei oder global z.B. in der Pure-C-IDE eingestellt werden. FÅr ACSpro selbst wird die SPrach-Variante in Pure-C unter Options\Compiler eingestellt. 31.01.2005 ACS.LIB, GUI-Editor ˜ Die Copyright-Informationen wurden angepaût. ˜ Integration der KEYTAB-Bibliothek zu KEYTAB 12. 04.10.2004 ACSMOD.LIB, ACSMOD01.LIB, ACS_LOAD.O ˜ Wegen eines Fehlers in der Modul-Schnittstelle konnten Module, die mit der vorherigen Beta-Version von ACSpro erstellt wurden, nicht mehr geladen werden. Das Problem wurde behoben. 02.06.2004 ACS.LIB ˜ Wenn in den Cfg-Strings mind. eine Parametergruppe mit Namen, jedoch keine namenlose Default-Gruppe vorhanden war, so wurden danach angelegte Parameter der Default-Gruppe mitten in den anderen Gruppen gesichert und beim Laden natÅrlich einer anderen Gruppe zugeordnet. Nun wird die namenlose Default-Gruppe stets zuerst gesichert. 06.04.2004 ACS.LIB, ACSPLUS.LIB, GUI-Editor ˜ Bei den Konstanten der NKCC-Routinen wurden fÅr bisher reservierte Werte Konstanten vergeben. Es sind dies NK_M_PGUP ($05) Auf dem Apple Macintosh unter MagiCMac: eine Seite nach oben (Page Up) NK_M_PGDN ($06) Auf dem Apple Macintosh unter MagiCMac: eine Seite nach unten (Page Down) NK_M_END ($07) Auf dem Apple Macintosh unter MagiCMac: zum Ende springen (End) NK_M_F11 ($1A) Auf dem Apple Macintosh unter MagiCMac: Funktionstaste F11 NK_M_F12 ($1C) Auf dem Apple Macintosh unter MagiCMac: Funktionstaste F12 NK_M_F14 ($1D) Auf dem Apple Macintosh unter MagiCMac: Funktionstaste F14 ˜ Die Reaktion unter ACSpro ist standardmÑûig die folgende: NK_M_PGUP ($05) Wenn keine Shift-Taste gedrÅckt wird, wird eine Seite nach oben gescrollt. So war es bisher bei Shift-Cursor-Up. Wenn Shift gedrÅckt wird, wird anstelle einer Seite eine Zeile nach oben gescrollt, wie es bisher bei Cursor-Up der Fall war. NK_M_PGDN ($06) Wenn keine Shift-Taste gedrÅckt wird, wird eine Seite nach unten gescrollt. So war es bisher bei Shift-Cursor-Down. Wenn Shift gedrÅckt wird, wird anstelle einer Seite eine Zeile nach unten gescrollt, wie es bisher bei Cursor-Down der Fall war. NK_M_END ($07) Wenn keine Shift-Taste gedrÅckt ist, wird an das Ende gesprungen, wie es bisher auch bei Shift-Clr/Home der Fall war. Wenn Shift gedrÅckt wird, wird an den Anfang wie bei Clr/Home gesprungen. Das bisherige Verhalten der Tasten Shift-Cursor-Up/Down bzw. Shift-Clr/Home bleibt auf jeden Fall bestehen. 06.04.2004 ACSMOD.LIB, ACSMOD01.LIB, ACS_START.O ˜ Im Startup-Code des Moduls ist nun auch das Symbol _globl enthalten. Module, die GEM-Funktionen verwenden und z.B. eigene Bindings implementieren und daher nicht auf die Åber die Modul-Schnittstelle zur VerfÅgung gestellten Funktionen zugreifen, kînnen mit der Bibliothek PCGEM.LIB gelinkt werden. Diese sieht im KompatibilitÑtsmodus eine globale Variable _globl vor, die das global-Array enthÑlt. Im Startup-Code ist nun diese Variable enthalten, sie wird von ACSpro aus initialisiert. Leider mÅssen damit alle Module, die mit einer der bisherigen Beta-Versionen 3.0.0û erstellt wurden, erneut gelinkt werden. Ich denke jedoch, das sollte machbar sein. 29.03.2004 ACS.LIB, ACSTOOLS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die neuen Funktionen von KEYTAB und der KEYTAB-Bibliothek wurden in ACSpro integriert. Die Funktionen stehen auch Åber die Modul-Schnittstelle fÅr Module zur VerfÅgung. 01.02.2004 ACS.LIB ˜ Neue Cookies aus der MiNT-Mailingliste in ACSCOOK.H eingefÅgt. 19.01.2004 ACS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die unsortierte lineare Liste ULinListe wurde in ULinList umbenannt. Der bisherige Name ULinListe wird per Makro in den neuen Namen gewandelt. ˜ Zur unsortierten linearen Liste sind die "verwandten" Objekte Stack (Stapel) und Queue (Warteschlange) hinzu gekommen. ˜ Die create- und delete-Funktionen der beiden neuen Objekte Queue und Stack steht auch Åber die Modul-Schnittstelle zur VerfÅgung 01.01.2004 ACS.LIB, GUI-Editor ˜ Die Copyright-Informationen wurden angepaût. 10.11.2003 GUI-Editor ˜ Die Texte des GUI-Editors wurden ins Englische Åbersetzt, so daû nun auch eine Beta-Version der englischen Version bereitsteht. 30.07.2003 ACS.LIB ˜ Die Bibliotheken PCGEM.LIB (GEM-Binding) und ACSTOS.LIB (TOS-Binding) sind nicht mehr in ACS.LIB enthalten. Damit kînnen die Bindings jederzeit gegen aktuellere Versionen ausgetausht werden. Alle Anwendungen mÅssen daher die PCTOS.LIB und die PCGEM.LIB linken, die ab jetzt ACSpro beiliegen. ˜ ACSpro wurde nun komplett auf die TOS-Bibliothek PCTOS.LIB umgestellt. Bei den TOS-Bindings bringt die optimierte Version nicht wirklich viel, dafÅr wird die KompatibilitÑt mit div. Dokumentationen aufgegeben. Nachdem es nur um ein paar wenige Funktionen geht, sollte diese Umstellung kein Problem bereiten. 29.12.2002 ACS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die neue Funktion Avdi_getRGB liefert fÅr die 256 Farben der NVDI-Palette die passenden RGB-Werte zurÅck. Damit stehen die Farb-Informationen fÅr Objekte, die "nur" 256 Farben kennen, auch unter Hi- oder Truecolor-Auflîsungen zur VerfÅgung fÅr ein korrektes Zeichnen. Die Funktion steht auch Åber die Modul-Schnittstelle zur VerfÅgung. ˜ Die Funktion Af_2path liefert anstelle des Root-Pfades "\" den Defaultpfad des Defaultlaufwerkes - also Dgetpath(dest, 0) -, falls kein Pfad im Parameter erkannt wird. Erstens entspricht dieses Verhalten dem der Funktion Af_2drv. Und zweitens ist dieses Verhalten bei relativen Pfadangaben auch gewÅnscht. 22.11.2002 ACS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die neue Funktion Aob_count zÑhlt die Anzahl der OBJECT- Strukturen eines Objektbaumes. Das Ende wird - wie bei GEM Åblich - durch das Flag LASTOB in ob_flags signalisiert. Die AOBJECT-Strukturen werden beim ZÑhlen je nach Åbergebenem Flag Åbersprungen oder mitgezÑhlt. Die Funktion steht auch Åber die Modul-Schnittstelle zur VerfÅgung. 13.11.2002 ACS.LIB ˜ Beim Versand von Daten per D&D an andere Anwendungen war noch ein dicker Bug: die LÑnge der verschickten Daten wurde bei Strings (ACS-DD-Type AT_STRING, AT_TEXT und AT_FILE) falsch verschickt, so daû der EmpfÑnger nur einen Teil der Daten verwendet hat. ˜ Das Auswahl-Popup, in dem die Ziel-Anwendung ausgesucht werden muû, erscheint nun nur noch, wenn der EigentÅmer des Ziel-Fensters nicht per WF_OWNER ermittelt werden kann (WF_OWNER gibt es nicht bzw. liefert Fehler). ˜ Von anderen Anwendungen empfangene Strings, die Åber die Drag-Routine eingespielt werden, werden nun korrekt als AT_STRING oder AT_TEXT deklariert, jenachdem ob eines der Zeichen '\n' (CR) oder '\r' (LF) enthalten ist oder nicht. ˜ Per XAcc-Protokoll empfangene Strings werden nun nicht nur als AT_STRING, sondern auch als AT_FILE deklariert, falls es sich bei dem String gem. Af_length() um den Namen einer existierenden Datei bzw. eines existierenden Ordners handelt. Die Unterscheidung in AT_TEXT oder nicht hat allerdings Vorrang. ˜ Korrektur beim Verarbeiten einer D&D-Message: das D&D- Protokoll sieht einen Header vor, der mind. die folgenden Angaben enthÑlt: Header-LÑnge (2 Byte), Datentyp (4 Byte), DatenlÑnge (4 Byte). ACSpro meldete bei einer HeaderlÑnge von weniger als 10 Byte dem Absender der Daten einen Fehler. Bei Tests hat sich herausgestellt, daû MagicDesk eine LÑnge von 9 eintrÑgt. Die PrÅfung wurde daher auf mind 8 Zeichen geÑndert. Anscheinend sind sich die "Gelehrten" nicht einig, ob die LÑngenangabe zum Header gehîrt oder nicht! ACSpro geht nun davon aus, daû die zwei Byte HeaderlÑnge nicht zum Header gehîren, sondern die HeaderlÑnge angibt, wie viele Byte danach kommen. 21.09.2002 ACS.LIB ˜ Die Bearbeitung der GEMScript-Meldung GS_ACK wurde korrigiert. ˜ Durch interne Optimierungen bei den diversen unterstÅtzten Protokollen konnte etwas benîtigter Speicher eingespart werden. 13.09.2002 ACS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die aktuelle PCGEM.LIB wurde eingebunden. Die neuen Funktionen (bis NVDI 5) stehen auch in der Modul- Schnittstelle zur VerfÅgung. ˜ Die Modul-Schnittstelle fÅr vsf_updat war nicht in Ordnung, dadurch gab es einige Verschiebungen, so daû im Zweifelsfall falsche VDI-Funktionen aufgerufen wurden. Dies wurde nun behoben! ˜ Die aktuelle KEYTAB-Bibliothek wurde integriert, die neuen Funktionen stehen auch in der Modulschnittstelle fÅr Module bereit. 31.08.2002 ACS.LIB ˜ Die Funktion appl_xgetinfo prÅft nun auch, ob WINX vorhanden ist, da auch dann appl_getinfo aufgerufen werden kann. 06.08.2002 ACS.LIB ˜ Die Nachricht COLORS_CHANGED (s. Dokumentation zu NVDI 5) wird verarbeitet und ein komplettes Neuzeichnen des Bildschirms ausgelîst. 22.07.2002 ACS.LIB, ACSTOOLS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die neuen Funktionen von KEYTAB und der KEYTAB-Bibliothek wurden in ACSpro integriert. Die Funktionen stehen auch Åber die Modul-Schnittstelle fÅr Module zur VerfÅgung. ˜ Die neue Funktionen Ax_recycle, Ax_setRecycleSize und Ax_getRecycleStat stehen auch Åber die Modul-Schnittstelle fÅr Module zur VerfÅgung. 04.07.2002 ACS.LIB ˜ Die neue Funktion Ax_getRecycleStat() liefert die aktuelle Statistik der Speicher-Verwaltung der freien Listen. Mit den hier gelieferten Daten kann die Konfiguration der Speicher-Verwaltung in der ACSinit0-Routine optimiert werden. ˜ Die neue Funktion Ax_setRecycleSize() verwaltet die Listen der freien Speicherblîcke: - Wenn eine unbekannte Grîûe Åbergeben wird, wird eine neue Liste angelegt. - Eine ACSpro bekannte Grîûe wird auf den neuen Maximalwert gesetzt (falls die Liste verkleinert wird, werden alle Blîcke, die nun zu viel gepuffert werden, frei gegeben). - Falls fÅr eine bekannte Blockgrîûe die Anzahlder zu puffernden Blîcke auf 0 gesetzt wird, so werden Speicherblîcke dieser Grîûe nicht mehr gepuffert und die Liste dazu gelîscht. ˜ Die neue Funktion Ax_recycle() fÅgt einen Speicherblock einer Liste freier Blîcke an, sofern die Åbergebene Grîûe des Blockes von ACSpro in einer Liste verwaltet wird. Falls die fÅr die Blockgrîûe eingestellte Maximalzahl von aufzubewahrenden Blîcken erreicht ist, wird der Block ebenso wie bei einer nicht verwaltete Blockgrîûe direkt per Ax_free frei gegeben. ˜ Das Speicher-Management um die Funktionen Ax_malloc() und Ax_free() wurde um Verwaltung von leeren Listen erweitert. Wie funktioniert das? Nun, es gibt eine interne Funktion, die ACSpro zur Freigabe der eigenen Strukturen wie z.B. Awindow, TEDINFO, BITBLK, AUSERBLK, ULinListe oder intern gekapselter Strukturen verwendet. Diese Funktion prÅft, ob es fÅr die entsprechende Blockgrîûe eine Liste fÅr freie Blîcke gibt. Falls dies der Fall ist, wird der Block nicht freigegeben, sondern in dieser Liste aufbewahrt - allerdings wird fÅr jede dieser Listen eine Obergrenze beachtet, ab der der Speicher - wie bisher auch - per Ax_free freigegeben wird. Falls danach ein Block dieser Grîûe angefordert wird, wird er direkt aus dieser Liste genommen und braucht nicht erneut alloziert werden. Da die Speicherverwaltung der Pure-C-Bibliothek die Blîcke nicht sofoert an das Betriebssystem zurÅckgibt, sondern grîûere Blîcke anfordert, diese verwaltet und auf Anforderung an die Anwendung gibt, ergibt sich eigentlich kein nennenswerter Mehrverbrauch an Speicher. Da ACSpro jedoch die Grîûe der eigenen Strukturen kennt, kann ACSpro hier viel effizienter die Verwaltung Åbernehmen. Besonders bei den Strukturen AUSERBLK macht sich dies positiv bemerkbar, da diese bei allen ACS-eigenen Objekten verwendet werden. 03.07.2002 GUI-Editor ˜ Der GUI-Editor verwendet nun Version 1.4 des Startup-Codes von Stefan Kuhr @ OS. Im ReadMe dazu steht: - Die Zeiger auf die Environmentvariablen und Kommandozeilenargumente verringern die Stack-Grîûe nun nur noch bei Accessories oder zu kleiner TPA. Ein minimaler Stack bleibt immer frei. - Wenn der Heap zu klein ist - TPA ist schon geschrumpft und der Stack ist kleiner als ein Mindestwert -, beendet der Startup-Code das Programm mit dem Exit- Code 0x4150. - Auch bei viel zu vielen Environmentvariablen oder Argumenten wird niemals Åber das TPA-Ende hinausgeschrieben. Gleich zu Beginn wird der maximale Heap berechnet: MaxHeapSize = TPA - BSSEnde - MinimalStack. Mit dem Schreiben der argv- und envp- Zeiger wird der Heap gefÅllt und bei Erreichen der maximalen Heap-Grîûe wird die Auswertung abgebrochen. Auf das reele Heap-Ende wird die Stack-Grîûe addiert und so das gewÅnschte Ende der TPA bestimmt. Falls mîglich wird dann noch die TPA geschrumpft. - Die Basepagekommandozeile wird nun ins BSS kopiert und nicht mehr direkt in der Basepage geparst, da ein Fsfirst() ohne vorheriges Fsetdta() die Kommandozeile zerstîrt. - Bei einem zu hohen Wert fÅr die BasepagekommadozeilenlÑnge wurde an eine falsche Position gesprungen und dadurch ein RTS ausgefÅhrt, ohne das eine gÅltige RÅcksprungadresse auf dem Stack war. - Durch einen falschen Vergleichen mit '0' wurden leere ARGV-Argumente ab dem zehnten nicht mehr geleert. - Den kleinen Startup-Code habe ich nochmal Åberarbeitet und ein wenig optimiert. Unter anderem habe ich argv[0], argv[1] und envp bereits initialisiert ins Datensegment gelegt. Ein dickes Danke an Stefan Kuhr @ OS fÅr seinen Startup- Code und dessen Pflege. Besonders natÅrlich ein dickes Danke, daû ich ihn ACSpro beilegen darf! 24.06.2002 ACS.LIB ˜ Die Funktion Af_fileselect() hat einen weiteren Parameter bekommen. Nach dem Extensions-Pattern wird nun die Sortierung des File-Selectors angegeben. Diese Sortierung wird nur fÅr die FSLX-Funktionen verwendet. Falls die FSLX-Funktionen nicht verfÅgbar sind und daher auf Af_select() bzw. Af_first_fsel() und Af_next_fsel() zurÅckgegriffen werden muû, so wird diese Sortierung nicht berÅcksichtigt. 23.06.2002 ACS.LIB ˜ Die Funktion Ash_font liefert nun bei Verwendung des modalen Font-Selektors in der Åbergebenen Struktur A_FontSel die Ergebnisse zurÅck. ˜ In der Funktion Af_fileselect wurde die Verwendung der Extensions-Patterns nochmals Åberarbeitet und korrigiert. Nun sollte alles korrekt laufen. 05.06.2002 GUI-Editor ˜ Der GUI-Editor verwendet nun Version 1.3 des Startup-Codes von Stefan Kuhr @ OS. Im ReadMe dazu steht: - Der Parser hat nun eine C-Schnittstelle, so daû er nun auch fÅr z.B. AV_START genutzt werden kann. Die Schnittstelle ist wie folgt definiert: unsinged long parse_cmdline( char *cmdline, char *cmdarg, char **argv, unsigned long max_argc ); cmdline ist ein Zeiger auf eine Kommandozeile, die durch ein Nullbyte abgeschlossen ist, und kein LÑngenbyte besitzt. cmdarg verweist auf einen Speicher, in dem die geparsten Argumente abgelegt werden sollen. Ist dieser Zeiger NULL, wird cmdline als Zielspeicher verwendet. argv bestimmt die Adresse, an der bis zu max_argc Zeiger auf die einzelnen Argumente der Kommandozeile hintereinander abgelegt werden. Sofern das Feld groû genug ist, ist argv[Ergebnis]==NULL. Es ist aber auch mîglich, einen Nullpointer an argv zu Åbergeben. max_argc beschreibt die Grîûe des Feldes argv. Ergebnis ist die Anzahl der Argumente in der Kommandozeile. Die ParameterÅbergabe erfolgt in Pure-C-Manier, es werden dazu die Register D0, A0, A1 und ein Argument auf dem Stack genutzt. Alle anderen Register bleiben unverÑndert. - Bei einer defekten, erweiterten ARGV-öbergabe, konnte es zu Speicherschreibern kommen. Ich habe nun alle unsicheren Stellen abgedichtet. - Ein ARGV=NULL:0 wurde nicht ausgewertet. (Naja, macht eh keinen groûen Sinn den Programmnamen zu lîschen; aber nun geht auch das.) - Die Register werden nun als unsigned betrachtet, dass heiût es kînnen theoretisch Åber vier Milliarden Argumente und Environmentvariablen gehandhabt werden. Auch argc wird als unsigned long an main() Åbergeben. - Die Baspagekommandozeile wird nun nicht mehr auf den Heap kopiert (was dem Stack 128 Byte kostete), sondern direkt in der Basepage geparst. - Nach wie vor wird der Speicher fÅr die Felder envp und argv vom Stack abgeknappst. Das sollte bei der Wahl der Stackgrîûe bedacht werden. Vorsichtige Naturen kînnen die unterste Stackadresse _StkLim entnehmen. - Selbst bei korrupter ArgumentÅbergabe sind die Parameter an main() konsistent. - Der kleine Startup-Code ist noch um eine Kleinigkeit geschrumpft. Ein dickes Danke an Stefan Kuhr @ OS fÅr seinen Startup- Code und dessen Pflege. Besonders natÅrlich ein dickes Danke, daû ich ihn ACSpro beilegen darf! 30.05.2002 ACS.LIB ˜ Die Funktion Awi_obfind() stÅrzte mit einem Bus-Error ab, wenn als **tree der Zeiger NULL bzw. NIL Åbergeben wurde. ˜ Die Funktion nkc_kstate() brachte ebenfalls hin und wieder einen Bus-Error zustande. 26.05.2002 ACS.LIB ˜ Bei den Funktionen A_dialog und A_dialog2 wird nun wie bei Awi_dialog das HauptmenÅ deaktiviert. ˜ Falls bei A_dialog oder A_dialog2 ein Dialog ohne Edit- Felder verwendet wurde, gab es einen Åblen Absturz, der nun behoben sein sollte. ˜ Aktuelle PCGEM.LIB mit Fehlerkorrektur fÅr fsel_exinput sowie UnterstÅtzung der MausrÑder gemÑû TORG 105 (siehe http://www.tosgroup.org - wie z.B. von MWheel von Armin Diedering verwendet - wird verwendet. 23.05.2002 ACS.LIB ˜ Die HOT-Close-Box wird ggf. abgeschaltet, wenn das System sie gemÑû appl_getinfo nicht kennt. 22.05.2002 ACS.LIB ˜ Probleme bei ParameterÅbergabe via VA_START und D&D korrigiert. 06.05.2002 ACSPLUS.LIB ˜ Der DESKTOP hatte noch einen kleinen Bug: beim Doppelklick auf das NEU-Icon wurde ein nicht initialisierter String anstelle des Wertes NULL Åbergeben. 04.04.2002 ACS.LIB ˜ Bei Verwendung des "alten MenÅ-Layoutes" gab es einen Absturz, der nun behoben sein sollte. 01.04.2002 ACSMOD.LIB, ACSMOD01.LIB ˜ Die neue Funktion Ash_getOSHeader steht auch Åber die Modul-Schnittstelle fÅr Module zur VerfÅgung. ˜ Die KompatibilitÑts-Funktionen Aob_create und Aus_create fÅr Module der ACS-Versionen 2.30 bis 2.3.4 waren fehlerhaft in die Schnittstelle eingebunden. Module, die nur Awi_create verwendet haben, haben funktioniert. Sobald allerdings Aob_create oder Aus_create verwendet wurde - z.B. beim Austausch des Work-Objektes -, gab es Probleme. 26.03.2002 ACS.LIB, ACSPLUS.LIB, ˜ Die von der Funktion Af_fileselect intern benutzten Wrapper-Funktionen fÅr die Funktionen Af_fileselect, Af_select, Af_first_fsel und Af_next_fsel wurden komplett Åberarbeitet. Dadurch wurde der Parameter patterns geÑndert! In dem Parameter patterns werden jetzt Endungs-Muster Åbergeben. Mehrere Endungen in einem Muster werden durch ',' getrennt, mehrere Muster durch ein Null-Byte. Abgeschlossen werden die Muster durch zwei aufeinanderfolgende Null-Bytes. Der GUI-Editor verwendet z.B. beim ôffnen die Patterns (als C-String) "ACS,acs\0RSC,rsc\0\0". Falls die FSLX-Funktionen verfÅgbar sind, werden die Extensionen direkt verwendet (incl. Groû-/ Kleinschreibungsvarianten), falls auf Af_select bzw. Af_first_fsel und Af_next_fsel zurÅckgegriffen wird, wird nur die erste Extension (unverÑndert) verwendet. ˜ Die neue Funktion Ash_getOSHeader liefert einen Zeiger auf die Struktur SYSHDR (manchmal auch OSHEADER genannt) zurÅck. 20.03.2002 ACS.LIB, ACSTOOLS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die neue Funktion Ast_istr sucht analog zur C-Funktion strstr einen Substring in einem String - allerdings im Gegensatz zu strstr ohne Unterscheidung zwischen Groû- und Kleinschreibung. Die Funktion ist auch in der Modul- Schnittstelle enthalten. 16.03.2002 ACS.LIB, ACSTOOLS.LIB ˜ Wenn im Dateinamen das Quote-Zeichen selbst vorkam und daher verdoppelt wurde, so funktionierte nichts mehr. Die Funktionen Af_quote und Af_unquote arbeiten nun korrekt. Als Quote-Zeichen erkennt Af_unquote sowohl die einfachen als auch die doppelten AnfÅhrungszeichen, wÑhrend Af_quote selbst nur die einfachen AnfÅhrungszeichen verwendet. ˜ Die neue Funktion Af_parseCmdLine zerlegt eine Kommandozeile und liefert eine lineare Liste ULinListe mit den Dateinamen zurÅck. Hierbei wird das Quoting korrekt behandelt, d.h. aus den String "'Param Leer.txt' Param_no_Leer.txt 'Param Leer und `` darin.txt`" wird eine lineare Liste mit den EintrÑgen Param Leer.txt Param_no_Leer.txt Param Leer und ` darin.txt gebildet. Die Namen liegen also nicht gequoted vor! ˜ Die Dateinamen, die von auûerhalb der Anwendung Åber die Drag-Routinen als AT_FILE geliefert werden, liegen nun gequoted vor. Ggf. kînnen mehrere Dateinamen geliefert worden sein, die Åber getrennte Aufrufe der Drag-Routine Åbergeben werden. Intern wird der gelieferte String Åber Af_parseCmdLine in ie Dateinamen zerlegt, die dann per Af_quote gequoted und an an die Drag-Routine bzw. dem Fenster mittels der Nachricht AS_DRAGGED weiter gegeben werden. Damit sollten nun lange Dateinamen - besonders mit Leerzeichen oder einfachen AnfÅhrungszeichen - wesentlich komfortabler mîglich sein, als es bisher der Fall war. Zur Erinnerung: Wenn keines der im C-String " \t\n\r'" enthaltenen Zeichen im Åbergebenen Dateinamen vorkommt, so macht Af_quote nichts! 14.03.2002 ACS.LIB, ACSPLUS.LIB ˜ Bei meinen Tests habe ich leider feststellen mÅssen, daû das ôffnen von Dateien im PUR_DESK nun nicht mehr reibungslos klappte. Jetzt geht (endlich) sowohl das ôffnen im PUR_DESK, als auch die öbergabe von Dateien per AV- Protokoll oder Drag&Drop-Protokoll 03.03.2002 ACS.LIB, ACSPLUS.LIB ˜ Der PUR_DESK und der DESKTOP unterstÅtzen nun Quoting von Dateinamen auch bei Åbergebenen Namen beim AV-Protokoll oder Atari-Drag&Drop-Protokoll. ˜ Beim Drag&Drop-Protokoll war noch ein Fehler enthalten, so daû eine Parameter-öbergabe von z.B. jinnee an ACS- Anwendungen nicht richtig funktionierte. ˜ Bei meinen Tests der Parameter-öbergabe stellte ich erstaunt fest, daû jinnee beim ôffnen von mehreren ACS- Dateien (im jinnee-Fenster z.B. zwei Dateien selektiert und "Datei\Objekte îffnen" auswÑhlen) den ersten Parameter an den GUI-Editor Åbergeben hat und den zweiten je nach Anmeldung des GUI-Editor per VA-START oder Drag&Drop Åbergab. In der frÅhen Initialisierungsphase von ACSpro ging das schief und wurde mit einem Crash quittiert, der nun ausgerÑumt ist. 01.03.2002 ACSPLUS.LIB ˜ Sowohl der PUR_DESK als auch der DESKTOP verwenden nun Af_unquote vor Aufruf der der hinterlegten Neu-Routine. 28.02.2002 ACS.LIB, ACSTOOLS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die neue Funktion Af_quote prÅft, ob ein Dateiname mit Quote-Zeichen versehen muû, bevor er an andere Anwendungen gesandt werden kann (z.B. fÅr AV-Protokoll). Umgekehrt entfernt ggf. die Funktion Af_unquote vorhandene Quote- Zeichen. 24.02.2002 ACSMOD.LIB, ACSMOD01.LIB ˜ Die neuen Funktionen fÅr die KEYTAB-Ansteuerung sowie das Setzen der Icons sind in die Modul-Schnittstelle aufgenommen worden. 24.02.2002 ACS.LIB, ACSTOOLS.LIB ˜ Der Druck-Dialog sowie der File- und der Font-Selector verwenden nun kein Icon mehr. öber die Funktionen Ash_printSetIcon, Ash_fileSetIcon und Ash_fontSetIcon kann das zu verwendende Icon gesetzt oder durch NULL bzw. NIL gelîscht werden. Der Parameter ghost setzt oder lîscht bei vorhandenem Icon das "Ghost-Flag" AW_GHOSTICON. ˜ Die Bibliothek KEYTAB.LIB wurde in ACSpro integriert. Mittels dieser Bibliothek wird KEYTAB zur Zeichensatz-Kon- version angesteuert. Die dazu notwendigen Funktionen sind Akt_getKeyTab, Akt_getRelease, Akt_getEuro, Akt_getExpMaxNr, Akt_getImpMaxNr, Akt_getExpNameFromNr, Akt_getImpNameFromNr, Akt_getExpShortNameFromNr, Akt_getImpShortNameFromNr, Akt_getExpNrFromId, Akt_getImpNrFromId, Akt_getExpIdFromNr, Akt_getImpIdFromNr, Akt_getExpNrFromName, Akt_getImpNrFromName, Akt_CharAtari2X, Akt_CharX2Atari, Akt_BlockAtari2X, Akt_BlockX2Atari, Akt_StringAtari2X und Akt_StringX2Atari. In der Bibliothek ACS.LIB sind zusÑtzlich die Funktionen Akt_popExpName, Akt_popImpName, Akt_chooseExpNr und Akt_chooseImpNr enthalten, die eine komfortable Auswahl des Ziel- bzw. Quell-Zeichensatzes Åber Popups ermîglichen. Die Einbindung der Bibliothek KEYTAB.LIB oder der Header- Datei KEYTAB.H ist damit ÅberflÅssig geworden. Genauere Informationen Åber KEYTAB und die KEYTAB.LIB liegen zusammen mit allen(!) Sourcen KEYTAB bei. KEYTAB kann aus der Maus LL (Telefonnummer 0 81 92 / 99 6 99 99, V.34 und X.75) oder vom Internet unter http://acspro.atari.org/ geladen werden. 15.12.2001 ACSTOOLS.LIB ˜ Es gibt nun eine weitere Bibliothek: ACSTOOLS.LIB. Sie ist fÅr TOS/TTP-Programme und stellt einige Utility-Funktionen aus ACSpro zur VerfÅgung. Auch hier erfolgt die Initialisierung Åber die bekannten Funktionen ACSinit0 und ACSinit. Die wichtigsten Initialisierungs-Daten mÅssen Åber eine Variable ACSconfig vom Typ Aconfig zur VerfÅgung gestellt werden. Die Dokumentation dieser Bibliothek wird in die ACSpro- Dokumentation eingearbeitet werden. Hinweis: Die Struktur von Aconfig, Ablk etc. ist fÅr die TOS-/TTP-Programme entsprechend angepaût worden, d.h. GEM- Anwendungen benîtigen ACS.LIB, TOS/TTP-Programme ACSTOOLS.LIB. Beide Bibliotheken schlieûen sich aus. 28.11.2001 ACS.LIB ˜ Beim Erstellen der Cfg-Struktur UConfig wurde die Komponente env_praefix der Info-Struktur UCfgInfo nicht korrekt ausgewertet: wenn env_praefix gleich NULL bzw. NIL ist, so wurde ein leerer String erzeugt. Durch env_praefix gleich NULL bzw. NIL wird signalisiert, daû nicht im Environment nach einer Cfg-Variablen gesucht werden soll, wenn sie in den Cfg-Strings nicht gefunden wird. 27.11.2001 ACS.LIB ˜ Nach einigen Tests hat sich ein Åbler Absturz in den Cfg- Strings gezeigt, der nun korrigiert ist. Er trat auf, wenn ein gesuchter String nicht gefunden wurde und versucht wurde, im Environment den gewÅnschten Wert zu finden. 26.10.2001 ACSPLUS.LIB ˜ Der PUR_DESK wurde um ein paar interne öberprÅfungen ergÑnzt, die den Betrieb gegenÅber Programmier-Fehlern stabiler machen dÅrften. 17.10.2001 ACS.LIB, ACSMOD.LIB, ACSMOD01.LIB ˜ Die neue Funktion Ash_gettimer liefert den Wert des 200Hz- Timers zurÅck. Bevorzugt wird der Wert Åber Ssystem ermittelt, falls dies nicht geht, wird der Timer direkt ausgelesen. Die Funktion steht auch Åber die Modul- Schnittstelle zur VerfÅgung. 25.09.2001 ACS.LIB ˜ In ACSpro wurden die énderungen aus PCGEM.LIB Åbernommen (Binding v_opnwk erweitert, Binding fÅr v_copies nachgerÅstet). 18.09.2001 ACS.LIB ˜ Kleinere Umstellungen und Optimierungen bei der Initialisierung des ACS-Systems - z.B. sollte jetzt nach der Initialisierung der normale Mauszeiger erscheinen. ˜ Kleinere Optimierungen in Amo_busy() und Amo_unbusy() sowie Amo_hide() und Amo_show(). 06.09.2001 ACS.LIB ˜ Der Font-Selektor hatte keinen Fenster-Titel. Dieser wird jetzt an die Funktion Ash_font Åbergeben. Daher erhÑlt die Funktion Ash_font als neuen ersten Parameter den Fenster- Titel, die restlichen Parameter sind wie gewohnt. ˜ Beim Aufruf der Druck-Dialog im nicht-modalen Fenster erfuhr man in der Nachricht AS_PRINT, welche Daten eingestellt wurden. Allerdings fehlte hier die Information, ob "OK", "Drucken" oder "Abbrechen" gewÑhlt worden war. Daher wurde die Struktur A_PrintSel um die Angabe des Buttons erweitert. Wenn der Button nicht PDLG_OK ist, so wurde Abbrechen gewÑhlt, bei PDLG-OK entweder OK oder Drucken, was durch options (der Wert, der Ash_print mitgegeben wurde) bestimmt wird. 21.08.2001 ACS.LIB ˜ Wenn in Fenster-Dialogen ein Tastendruck nicht verarbeitet werden kann - z.B. weil kein Eingabefeld existiert und es kein passendes TastenkÅrzel gibt -, so passierte gar nichts. Jetzt kann bei TastendrÅcken ohne Ctrl oder Alt versucht werden, ein TastenkÅrzel mit Ctrl oder Alt zu verwenden. öber die Variable ACSblk->keyAltCtrlSwitch wird global fÅr die Anwendung das Verhalten definiert. Folgende Varianten sind mîglich: - Suche im Work-Objekt getrennt einschaltbar - Suche in der Toolbar getrennt einschaltbar - Suche nach Alt+Key getrennt einschaltbar - Suche nach Ctrl+Key getrennt einschaltbar - Suche nach Ctrl+Alt+Key getrennt einschaltbar - Zuerst im Work-Objekt suchen, dann in der Toolbar - Zuerst in der Toolbar suchen, dann im Work-Objekt HierfÅr sind einige Konstanten definiert: KEY_AC_NONE bisheriges Verhalten (keine Variante probieren) KEY_AC_ALT_WORK Alt+Key im Work-Objekt versuchen (defaultmÑûig aktiviert) KEY_AC_CTRL_WORK Ctrl+Key im Work-Objekt versuchen (defaultmÑûig nicht aktiviert) KEY_AC_CTRL_FIRST_WORK FÅr das Work-Objekt erst Ctrl+Key, dann Alt+Key versuchen (Standard: erst Alt, dann Ctrl) KEY_AC_ALT_CTRL_WORK Ctrl+Alt+Key im Work-Objekt versuchen (defaultmÑûig nicht aktiviert) KEY_AC_ALT_TOOL Alt+Key in der Toolbar versuchen (defaultmÑûig nicht aktiviert) KEY_AC_CTRL_TOOL Ctrl+Key in der Toolbar versuchen (defaultmÑûig nicht aktiviert) KEY_AC_CTRL_FIRST_TOOL FÅr die Toolbar erst Ctrl+Key, dann Alt+Key versuchen (Standard: erst Alt, dann Ctrl) KEY_AC_ALT_CTRL_TOOL Ctrl+Alt+Key in der Toolbar versuchen (defaultmÑûig nicht aktiviert) KEY_AC_TOOL_FIRST Zuerst in der Toolbar, dann im Work-Objekt nachsehen (Standard: erst Work-Objekt, dann Toolbar) 08.08.2001 GUI-Editor ˜ Das Generieren der Sourcen wurde korrigiert. Wenn in Strings Sonderzeichen wie z.B. Linefeed oder Formfeed enthalten waren, so sind diese direkt so ausgegeben worden. - In C-Strings werden diese Zeichen korrekt als Escape- Sequenz ausgegeben. Beispielsweise wird der String "Zeilen-umbruch" mit dem Zeichen '\n' nach dem Trennstrich (lÑût sich hier nicht passend wiedergeben) dann korrekt als "Zeilen-\numbruch" geschrieben. - FÅr Pascal werden diese Zeichen bis auf das Pascal- Zeichen "'" Åber ihren ASCII-Code in den String geschrieben. 25.06.2001 ACSPLUS.LIB ˜ Die Funktionen wputs, wprintf und wvprintf prÅfen nun, ob das Åbergebene Fenster ungleich NULL bzw. NIL ist. Tip: Damit lassen sich Debug-Ausgaben in ein Protokoll- Fenster umleiten. FÅr die Release-Version wird das globale Debug-Fenster nicht mehr angelegt, sondern die globale Debug-Fenster-Variable auf NULL bzw. NIL gesetzt - und schon sind alle Debug-Ausgaben quasi wirkungslos. 14.06.2001 GUI-Editor ˜ Beim Zeichnen von Icons im Icon-Editor nimmt der Maus-Pfeil die gewÑhlte Farbe an. Bei hellen Farben - speziell Hellgrau - war der Maus-Zeiger auf dem hellen Untergrund nicht mehr erkennbar. Jetzt wird anhand einer empirischen "Helligkeits-Bestimmung" (Der Name klingt nach wesentlich mehr, als es ist) die Umrahmung des Maus-Zeigers bei dunklen Farben auf weiû, bei hellen Farben auf schwarz gestellt. 05.06.2001 ACSPLUS.LIB ˜ Der Slider-Balken wird nun auch wie die Pfeile deaktiv dargestellt, wenn der Slider den gesamten Bereich bereits anzeigt, d.h. wenn der Balken bisher nicht zu verschieben war. 01.06.2001 ACSMOD.LIB, ACSMOD01.LIB ˜ Die Funktionen Acfg_getChar, Acfg_setChar, Acfg_getLong, Acfg_setLong, Acfg_getBool, Acfg_setBool und Acfg_getString sind auch in der Modul-Schnittstelle enthalten. 01.06.2001 ACS.LIB ˜ Die Cfg-Strings haben die neuen Funktionen Acfg_setChar, Acfg_getChar, Acfg_getLong, Acfg_setLong, Acfg_getBool und Acfg_getBool erhalten. Diese nehmen ggf. die Umwandlung der Werte von char, INT32 bzw. Logischen Werten in Strings und umgekehrt vor. ˜ Die neue Funktion Acfg_getString stellt eine AbkÅrzung zu Acfg_getValue dar, der Wert wird in einem statischen String zurÅckgegeben. Hinweis: Die Funktion Acfg_getString ist nicht multi- threading-fest! ˜ Die neue Funktion Acfg_clearGroup lîscht eine einzige Gruppe. ˜ Die Funktion Acfg_clearGroup wurde in Acfg_clearAllGroups umbenannt. 27.05.2001 ACS.LIB ˜ Es gibt zwei neue Funktionen, um zu ÅberprÅfen, ob es eine Parameter-Gruppe bzw. einen Cfg-String gibt. Acfg_isGroupPresent liefert TRUE, wenn die genannte Gruppe existiert, anderfalls wird FALSE geliefert. Ebenso liefert Acfg_isStringPresent bei existierendem Parameter TRUE, andernfalls FALSE. Hinweis: Die beiden Funktionen betrachten nur die Åbergebene UConfig-Struktur, nicht evtl. von Acfg_getValue untersuchte Environment-Strings! ˜ Die Funktionen Acfg_getBool und Acfg_setBool verwenden nun andere Werte. Acfg_setBool gibt dem Åbergebenen Parameter je nach Flag die Werte "True" oder "False". Acfg_getBool konvertiert den Wert "True" nach TRUE, alles andere wird FALSE. 25.05.2001 ACSMOD.LIB, ACSMOD01.LIB, ACS_LOAD.O ˜ Die Modul-Schnittstelle ist nun um die kompletten Bindings der VDI- und AES-Funktionen erweitert worden. Damit wird das applikations-globale AES-Array ACSblk->AESglobal bei AES-Aufrufen der Module benutzt, was bislang bei Modulen zu Problemen gefÅhrt hat (Module hatten bislang die GEM- Bibliothek ebenfals gelinkt und damit ein eigenes und damit uninitialisiertes global-Array benutzt). 06.05.2001 GUI-Editor ˜ Der GUI-Editor hat bislang in die exportierte UConfig- Struktur, die in der exportierten Variable ACSconfig des Hauptmoduls enthalten ist, als Dateiname der Cfg-Strings "PUR_DESK" geschrieben. Nun wird dieser Text leer gelassen. Damit wird fÅr das Laden der in ACSblk->basename stehende Name verwendet. In spÑteren Versionn ist geplant, die in ACSconfig enthaltene Struktur CfgInfo auch im GUI-Editor bereits bearbeiten zu kînnen. 06.05.2001 ACS.LIB ˜ Die Cfg-Strings werden nun beim Anwendungs-Start automatisch geladen. Die Cfg-Strings stehen danach in ACSblk->cfg zur VerfÅgung und kînnen mit den zugehîrigen Funktionen bearbeitet und ausgewertet werden. Der Dateiname fÅr das Laden wird aus ACSconfig genommen. Falls der dort notierte Name leer sein sollte, wird der Dateiname anhand ACSblk->basename gebildet: Af_cfgfile(&ACSblk->basename[2]) (die 2 wegen der zwei fÅhrenden Leerzeichen in ACSblk->basename). Das Laden der Cfg-Strings geschieht unmittelbar nach Aufruf der ACSinit0-Funktion, so daû der dort ggf. manipulierte Name in ACSblk->basename verwendet wird. 28.04.2001 ACS.LIB ˜ Das Thermometer kann nun auch nicht-modal aufgerufen werden, indem der Funktion Ash_thermometer im Parameter kind das neue Flag THERMO_NONMODAL Åbergeben wird. Hinweis:Das modale Thermometer setzt allerdings den Wert fÅr ACSblk->ev_mtcount auf 1, damit die Schleife schnellstmîglich durchlÑuft. Dies passiert beim nicht- modalen Thermometer natÅrlich nicht. Damit lÑuft das Thermometer nicht mehr gleichmÑûig, wenn z.B. die Maus bewegt wird. Normalerweise wird wohl auûerdem das modale Thermometer zum Einsatz kommen... ;-) 27.04.2001 ACSPLUS.LIB ˜ Der Slider-Balken wird nun wie die Pfeile deaktiv dargestellt, wenn das Objekt im Status DISABLED ist. 22.04.2001 ACS.LIB ˜ Die Funktion Aev_WmRedraw verschickt eine Redraw-Nachricht. ACSpro verwendet diese Funktion, um in einigen FÑllen ein Neuzeichnen von Fenstern oder sogar des gesamten Bildschirmes zu veranlassen (z.B. in Awi_layout). ˜ Die Funktion Awi_alert hat den Alert-String direkt an form_alert weitergegeben, wenn der ACSpro-eigene modale Alert-Fenster-Dialog nicht verwendet werden konnte. Nun wird das Icon '4' auf das Icon '1' fÅr form_alert umgesetzt. 19.04.2001 ACS.LIB ˜ Die Funktionen Awi_redraw zeichnet den Fenster-Inhalt nur noch, wenn das Fenster nicht im Zustand AWS_SHADED ist. Da hin und wieder die Redraw-Message vor dem "Unshaden" eintrifft, wird bei Erhalt der Nachricht WM_UNSHADED das Fenster davon informiert, das Flag AWS_SHADED gelîscht und dann ein Neuzeichnen angestoûen. ˜ Die Funktionen Awi_obchange und Awi_obredraw rufen bei gesetztem Flag AWS_SHADED direkt die normale Redraw-Routine des Fensters auf. Diese ist in den meisten FÑllen Awi_redraw, welche in diesem Zustand die Arbeit verweigert - das Fenster ist ja eingeklappt und nichts auûer der Titelzeile zu sehen. 17.04.2001 GUI-Editor ˜ Der GUI-Editor îffnet nun Module nicht mehr als Text im Editor, sondern startet sie per Ash_module nach. ˜ Im Eigenschaften-Dialog jeder ACS-Datei wurden bereits die Optionen fÅr das Exportieren und Importieren der Texte vorgesehen. Das Importieren der Texte sowie das Zusammenbinden und Verwenden der generierten Texte wird noch nicht in Version 3.0.0 enthalten sein. 17.04.2001 ACSPLUS.LIB ˜ Der pure Desktop verwendet nun zum Nachladen von Modulen die Funktion Af_fileselect, d.h. die Auswahlbox wird, sofern mîglich, in ein modales Fenster gelegt, Multi- Selektion wird ebenfalls unterstÅtzt. 14.04.2001 ACS.LIB ˜ Die neue Funktion Ast_reverse dreht einen String zeichenweise um, d.h. im Åbergebenen Puffer ist das letzte Zeichen das erste und das erste das letzte. ˜ Die Funktion Aob_visible prÅft, ob ein Objekt im Objektbaum sichtbar ist, oder ob eines der Eltern-Objekte unsichtbar ist. ˜ Ebenso prÅft die Funktion Awi_obvisible, ob das angegebene Objekt im Fenster sichtbar sein kînnte, d.h. ob das Fester geîffnet, nicht ikonifiziert und nicht "shaded" ist und keines der Eltern-Objekte des Objektes unsichtbar ist. Es wird nicht geprÅft, ob der passende Ausschnitt im Fenster sichtbar ist. 14.04.2001 GUI-Editor ˜ Der GUI-Editor generiert beim Erzeugen der Dateien fÅr den Compiler nun auch eine neue Datei fÅr die Strings. Diese Datei ist im Format der Cfg-Strings aufgebaut. Pro ACS- Datei wird eine ASCII-Datei generiert, wobei der Dateiname aus dem Namen der ACS-Datei durch Ersetzen von ".acs" durch ".st" hervorgeht - ist hierbei eine Zahl von 0 bis 3 je nach aktueller Sprach-Einstellung. Dies vereinfacht das öbersetzen von Anwendungen erheblich, da beim Editieren der Texte nur die aktuelle Sprache verwendet wird und nun die generierte ASCII-Datei der Original-Sprache parallel in den Editor geladen werden kann. Diese ASCII-Dateien werden bislang nur erzeugt und noch nicht verwendet. Es ist geplant, diese ASCII-Dateien zu einer einzigen Datei pro Anwendung zusammenzusetzen (entweder durch ein extra Merge-Programm oder durch den GUI-Editor. Diese eine groûe Datei soll dann die Endung ".str" haben, im Verzeichnis der compilierten Anwendung stehen, alle Strings der Anwendung enthalten und Åber die Mechanismen der Cfg-Strings ACS-intern verwendet werden. Ein Umschalten der Sprache soll dann durch Austausch dieser Datei gegen eine Datei mit Åbersetzten Texten mîglich sein. Auch das bisherige Verfahren, die Strings in die Anwendung zu compilieren (quasi als Default-Strings), soll mîglich sein. Aber das ist noch Zukunftsmusik (siehe ToDo-Liste). 07.04.2001 ACS.LIB ˜ Die Nachricht WM_MOUSEWHEEL wird nun ausgewertet. Allerdings wird "nur" das Fenster gescrollt. Da es nur eine Scroll-Information gibt, wird zuerst versucht, vertikal zu scrollen. Wenn es die Scroll-Elemente bei dem Fenster nicht gibt oder bereits alles dargestellt werden sollte, wird versucht, horizontal zu scrollen, sofern dies mîglich ist. Wenn die Control-Taste gedrÅckt ist, wird das Verhalten umgedreht, d.h. erst wird versucht, horizontal zu scrollen, dann ggf. vertikal. 03.04.2001 ACSMOD.LIB ˜ Die Modul-Schnittstelle hat eine abwÑrtskompatible Schnittstellenfunktion bekommen, die die Schrittweite 1 fÅr die Funktion Awi_arrowed bei Modulen von ACS 2.3x einsetzt. Module, die bereits mittels Version 3.0.0 geschrieben wurden, mÅssen allerdings angepaût werden. 03.04.2001 ACS.LIB ˜ ACSpro unterstÅtzt nun das erweiterte Scrollen gemÑû WINX. Dazu ist einiges passiert... ˜ Die Routine Awi_arrowed hat als dritten Parameter die Scroll-Schrittweite bekommen und berÅcksichtigt diesen auch. ˜ Die Fenster-Routine Awindow.arrowed hat ebenfalls diesen Parameter bekommen. 29.03.2001 ACS.LIB ˜ ACSpro beherrscht nun auch die von NKCC gewohnten sog. Dead-Keys. Wie funktionieren diese? Ganz einfach: nach Eingabe eines Dead-Keys geschieht gar nichts, der Tastendruck wird zunÑchst gepuffert und scheinbar ignoriert. Beim nÑchsten Zeichen wird dann versucht, das erste und das zweite Zeichen zu einem einzigen Zeichen zu kombinieren. Genauer lÑuft hier folgendes ab: 1. Wenn kein Dead-Key gepuffert ist, wird geprÅft, ob ein Dead-Key eingegeben wurde. Ein Dead-Key stammt aus der Menge ^ '`¼"¯,/ und muû freigeschaltet sein (s.u.). 2. Falls kein Dead-Key eingegeben wurde oder dieser gesperrt sein sollte, so wird das Zeichen normal weitergereicht. 3. Handelt es sich jedoch bei dem Zeichen um einen freigegebenen Dead-Key, so wird das Zeichen gepuffert und die Verarbeitung des Tastendruckes abgebrochen. ACSpro wartet nun auf den nÑchsten Tastendruck. 4. Wenn ein Dead-Key gepuffert ist, so wird nachgeschlage, ob fÅr die vorliegende Kombination Dead-Key plus das neu eingegebene Zeichen eine Ersetzung hinterlegt ist. Wenn dies der Fall ist, wird das zuletzt eingegebene Zeichen durch das Ersatz- Zeichen ersetzt. Andernfalls wird zuerst der gepufferte Dead-Key und danach das zweite Zeichen in die normale Tastatur-Verarbeitung gespielt - wie wenn es keine Dead-Keys gÑbe. Der Dead-Key-Puffer ist nach dieser Verarbeitung wieder leer. Die Dead-Keys mÅssen natÅrlich individuell freigeschaltet werden. Hierzu wird in der neuen Variable ACSblk->ev_mkdead die Zeichen eingetragen, die die Anwendung als Dead-Keys betrachtet haben mîchte. Wie in der ToDo-Liste vermerkt, wird dies als Erweiterung des GUI-Editor vorgesehen. Folgende Ersetzungs-Varianten werden unterstÅtzt: Akzent Dead-Key Zweite Zeichen Ersetzung -------------------------------------------------------- Circumflex ^ + aeiou = Éàåìñ Tilde ~ + nNaoAo = §€ƒ±…½ Akut ' + eEaiou = ÇêÝ°¢£ Gravis ` + aeiouA = Öäçïó Umlaut ¼ + aeiouyAOU = ÑâãîÅòéôö Umlaut " + aeiouyAOU = ÑâãîÅòéôö Angstrîm ¯ + aA = Üè Cedille , + cC = áÄ kein Akzent / + oO24 = „¾´¨ Die fÅr eine Anwendung zu verwendenden Dead-Keys mÅssen per Programm z.B. in ACSinit0 oder ACSinit in ACSblk->ev_mkdead eingetragen werden. In spÑteren ACS-Versionen wird dies bereits im GUI-Editor mîglich sein. 17.03.2001 ACSPLUS.LIB ˜ Auch die Toolbars der anderen Fensters wurden etwas zu klein, wenn der Systemzeichensatz zu klein eingestellt war. Jetzt ist die Grîûe aller Toolbars von der Grîûe des Systemzeichensatzes unabhÑngig. 16.02.2001 ACSPLUS.LIB ˜ Die neue Funktion Awi_layout schaltet ggf. die Flags AB_NO3D und AB_OLDMENU um. Beim Umschalten des Flags AB_OLDMENU werden - nach RÅckfrage beim jeweiligen Fenster Åber die Nachricht AS_CHANGE_LAYOUT - alle MenÅs auf das jeweils gewÅnschte Layout umgestellt. 16.02.2001 ACSPLUS.LIB ˜ Das Editor-Fenster EDITOR hat beim Kopieren auf das Klemmbrett den gesamten und nicht nur den markierten Text geschrieben. Das sollte nun abgestellt sein... 12.02.2001 ACSMOD.LIB, ACSMOD01.LIB ˜ Die Funktionen Aev_DhstAdd und Aev_DhstSaved stehen nun auch in der Modul-Schnittstelle zur VerfÅgung. 10.02.2001 GUI-Editor ˜ Auch der GUI-Editor verschickt mittels Aev_DhstAdd die Namen der gespeicherten ACS-Dateien an den DHST-Server. 10.02.2001 ACSPLUS.LIB ˜ Der Editor informiert nun beim Speichern nicht nur den OLGA-Manager, sondern auch den DHST-Server Åber die gespeicherte Datei. 10.02.2001 ACS.LIB ˜ Die Funktion Aev_DhstSaved ermittelt aus dem Åbergebenen Dateinamen incl. Pfad den reinen namen incl. Endung - z.B. "Doku.TXT" - und verwendet diesen bei einem Aufruf von Aev_DhstAdd als Dokumentennamen. ˜ ACSpro beherrscht nun das DHST-Protokoll, bei dem ein Document-History-Server (z.B. SMU) Åber die letzten gesicherten Dateien informiert wird. Die neue Funktion Aev_DhstAdd sendet Dokument-Name und -Pfad an den DHST-Server. Der Anwendungsname wird aus ACSblk->AppLongName, der Anwendungspfad aus ACSblk->appname verwendet. Die komplette Kommunikation mit dem DHST-Server Åbernimmt ACSpro. 05.02.2001 ACS.LIB ˜ Der Bug beim nicht-modalen WDIALOG-Druckdialog ist nun behoben. Der Druckdialog steht also "in voller Schînheit" zur VerfÅgung. 03.02.2001 ACSMOD.LIB, ACSMOD01.LIB ˜ Die Funktionen Ash_font und Ash_print stehen nun auch Åber die Modul-Schnittstelle allen Modulen zur VerfÅgung. ˜ Die Funktion A_fileselect wurde auch in der Modul- Schnittstelle in Ash_fileselect umbenannt. 03.02.2001 ACS.LIB ˜ Die neue Funktion Ash_font îffnet den (MagiC-)Font- Selector. Je nach Parametern kann der Font-Selector als modales oder auch nicht-modales Fenster geîffnet werden. Wenn der Font-Selector als nicht-modales Fenster lÑuft, wird beim Schlieûen des Selektors dem beim Aufruf mitgegebenen Fenster die Nachricht AS_FONT zusammen mit den gewÑhlten Daten Åber die Struktur A_FontSel mitgegeben. Auch hier ist es nicht unbedingt der MagiC-Font-Selector, es ist der Font-Selector, der Åber die FNTS-Funktionen bedient wird... ;-) Daraus folgt aber auch: ohne FNTS- Funktionen (Abfrage erfolgt per appl_xgetinfo) gibt es hier nichts! ˜ Die Funktion A_print wurde konsequenterweise in Ash_print umbenannt. ˜ Ebenso wurde die Funktion A_fileselect in Ash_fileselect umbenannt. ˜ Der Parameter flag3D in der Funktion Ash_print ist entfallen. Die 3D-Einstellung wird nun aus ACSblk- >description->flags&AB_NO3D gewonnen - eine konsistentere Umsetzung... 01.02.2001 ACS.LIB ˜ Neue Klick-Routine Aob_help fÅr beliebige Objekte, die einfach die ST-Guide-Hilfe-Seite des Fensters anzeigen lÑût. Damit lassen sich "Hilfe-Buttons" blitzschnell realisieren. ˜ Bei der Umwandlung der MenÅs in das "moderne Layout" wird vor der Umwandlung des Hintergrundes auf den 3D-Effekt per appl_xgetinfo(13,...) geprÅft, ob das System die AES-4- Hintergrund-Flags kennt. Dies ist nun nicht mehr von der Anzahl der Farben abhÑngig. Falls das System die AES-4- Hintergrund-Flags nicht kennt, wird das Flag FL3DBAK nicht gesetzt, die Umwandlung der MenÅ-Trenner "-" in Linien wird denoch durchgefÅhrt. 19.01.2001 ACSPLUS.LIB ˜ Schreibfehler in der englischen Version im PUR_DESK korrigiert, es heiût nun einmal "module"... ;-) 19.01.2001 ACS.LIB ˜ Der PUR_DESK leitet nun komplett alle Nachrichten auûer AS_TERM an das Module-Fenster zur Bearbeitung weiter. ˜ Das Module-Fenster versteht nun die vom DESKTOP her bekannte Nachricht AS_BACKOBJECT. Damit kann der Hintergrund im Module-Fenster wie vom DESKTOP hr gewohnt verÑndert werden. Das Module-Fenster Åbernimmt die Werte ob_type und ob_spec des Åbergebenen Objektes fÅr den Hintergrund. Hinweis: Als Objekt sollte bei der Nachricht AS_BACKOBJECT im Moment nur eines verwendet werden, das keine Substrukturen (Strings, etc.) hat, da keine Unterstrukturen dynamisch neu angelegt werden. Es wÅrde sonst zu Problemen beim Terminieren des Module-Fensters (am Programm-Ende) fÅhren, da Daten, die nicht alloziert wurden, per Ax_free freigegeben werden mÅûten! 19.01.2001 ACS.LIB ˜ ACSpro hatte bislang die Nachricht WM_UNTOPPED nicht verarbeitet. Jetzt wird sie "gezielt" ignoriert... ;-) ˜ Die Nachricht WM_TOOLBAR wird nun von ACSpro ebenfalls "gezielt" ignoriert. SpÑter, wenn ich herausgefunden habe, wann diese Nachricht wozu verschickt wird, soll sie jedoch passend ausgewertet werden. 18.01.2001 ACSPLUS.LIB ˜ Die Titelzeile des Module-Fensters kann nun geÑndert werden. Dazu muû in ACSinit0 - oder der entsprechenden Routine - der Name des Desktops geÑndert werden, in C z.B. durch PUR_DESK.name = " ". Das Module-Fenster Åbernimmt diesen Namen, sobald dieser vom Standard-Namen abweicht. ˜ Die Toolbar des Module-Fensters wurde etwas zu klein, wenn der Systemzeichensatz zu klein eingestellt war. Jetzt ist die Grîûe der Toolbar von der Grîûe des Systemzeichensatzes unabhÑngig. 08.01.2001 ACS.LIB ˜ Das Thermometer Ash_thermometer ist Åberarbeitet worden 1. Die Optik ist Åberarbeitet worden - der Laufbalken ist nicht mehr so "dick", was sich nicht nur bei der besseren proportionerten Optik, sondern auch beim Neuzeichnen bemerkbar macht. 2. Das von Ash_thermometer zur VerfÅgung gestellt Schleifen-Konstrukt wurde ausgebaut. Die Schleife heiût jetzt prinzipiell: init(data); if( start(data) ) { while( cont(data) ) fkt(data); stop(data); } quit(data); öber den neu zu Åbergebenden Funktionszeiger cont wird die Abbruchbedingung - bzw. korrekter die "Weiterlauf-Bedingung" realisiert. Dies hat zwei Auswirkungen. Die hier Åbergebene Funktion kann ebenso in stop genutzt werden, um die Unterscheidung "vorzeitiger Abbruch" oder "Ende" zu unterscheiden (siehe Ash_thermometer). Ferner wird der evtl. anzuzeigende Text durch die in cont Åbergebene Funktion definiert, er wird also bei der eigentlichn Aktion (in fkt Åbergeben) bereits angezeigt! Hinweis: Falls in cont der Wert NULL bzw. NIL Åbergeben wird, wird die Schleife nicht ausgefÅhrt. 3. Die Struktur ThermoData wurde in A_ThermoData umbenannt. Ferner wurde sie um die an Ash_thermometer Åbergebenen Funktionszeiger erweitert - hiermit sind also z.B. generische "Stop-Nachfrage-Routinen" mîglich, die anhand des dort Åbergebenen Zeigers die oben erwÑhnte Unterscheidung treffen. 08.01.2001 ACS.LIB ˜ Die Nachricht FNT_CHANGED wird unterstÅtzt. Alle ZeichensÑtze werden mittels vst_unload_fonts "weggeworfen" und mittels vst_load_fonts neu geladen. Dann wird allen Fenstern die Nachricht AS_FONT_UPDATE gesendet. ˜ Die Nachricht PRN_CHANGED wird unterstÅtzt. Allen Fenstern wird die Nachricht AS_PRN_UPDATE gesendet. In der Åber in_out mitgegebenen Struktur A_PrnUpd stehen die Informationen Åber den treiber und die Art der énderung. 01.01.2001 GUI-Editor ˜ Anpassung der Jahreszahl-Daten im Copyright. 30.12.2000 ACS.LIB ˜ ACSpro unterstÅtzt nun die WDialog-Druckdialoge. Die Funktion A_print stellt die Schnittstelle dazu dar. öbergeben werden die Drucker-Einstellungen (siehe WDialog- Dokumentation), die Position des Fensters, die zwei Flags flag3D (siehe pdlg_create) und option (siehe pdlg_open), der Titel des Fensters sowie ganz analog zu Af_fileselect das Fenster, dem bei Erfolg die Nachricht AS_PRINT gesendet werden soll. Der Dialog erscheint als nicht modaler-Dialog, wenn das Fenster angegeben wird, und als modaler Fenster- Dialog (sofern mîglich ;-), wenn als Fenster NULL bzw. NIL Åbergeben wird. Hinweis: Allerdings ist hier noch ein Bug fÅr den nicht- modalen Betrieb, aber zunÑchst kann einmal damit experimentiert werden. Der Bug ist etwas merkwÅrdig, die Anwendung stÅrzt gnadenlos ab, da der AES-Aufruf KÑse macht. Warum das aber nur im nicht-modalen Betrieb passiert und mit modalen Fenster-Dialogen klappt, muû ich noch herausbekommen... Hinweis: Eine Erweiterung des Druck-Dialoges durch eigene ObjektbÑume ist in der Planung und wird nach der Version 3.0.0 realisiert. Wichtig war erst einmal, daû der Druckdialog Åberhaupt unterstÅtzt wird... ;-) 22.12.2000 ACS.LIB ˜ Erste Vorbereitungen, um auch das im Entstehen begriffene SSP (System Service Protocol - siehe im Internet unter http://www.therapy-seriouz.de/ssp/) transparent in ACSpro einzubinden. 12.12.2000 ACSMOD.LIB, ACSMOD01.LIB ˜ Die neuen Funktionen Ast_ncmp und Ast_incmp stehen nun auch in der Modulschnittstelle zur VerfÅgung. 12.12.2000 ACS.LIB ˜ Es gibt zwei neue Funktionen fÅr String-Vergleiche. Die Funktion Ast_ncmp vergleicht zwei Strings, jedoch maximal n Zeichen, bei Ast_incmp spielt dabei die Groû-/ Kleinschreibung keine Rolle. ˜ Im Standard-AboutMe-Dialog von ACSpro wird nun das Datum der Version "ordentlich" als "tt.mm.jjjj" (deutsch) bzw. "mm-tt-jjjj"(englisch) dargestellt. Die "elende KrÅcke" mit der AbkÅrzung des Monatsnamens als "Oct" oder "Dec" hat also ein Ende... ;-) 11.12.2000 ACSMOD.LIB, ACSMOD01.LIB ˜ Die Funktion appl_xgetinfo steht nun auch Åber die Modul- Schnittstelle allen Modulen zur VerfÅgung. ˜ Die Funktion Awi_ontop fehlte in der Modul-Schnittstelle und ist nachgerÅstet worden. 03.12.2000 ACS.LIB ˜ Der letzte Parameter von Af_fileselect wurde geÑndert: es wird nun nicht mehr TRUE oder FALSE als Kennung modal/ nicht-modal Åbergeben, sondern das Fenster, daû die Antwort AS_FILESELECT im nicht-modalen Fall erhalten soll, bzw. NULL/NIL fÅr den modalen File-Selector. 02.11.2000 GUI-Editor ˜ Bei der direkten Positionseingabe fÅr ein Objekt im Objekt-Editor konnten zu groûe oder zu kleine Werte fÅr die Zeichen- und Pixel-Komponenten eingegeben werden. Die Zeichenkoordinaten sind auf 0..255, die Pixel-Korrekturen auf -128..127 festgelegt. Grîûere oder kleinere Werte werden passend auf den Rand des Intervalls gesetzt. 30.10.2000 PCGEM.LIB, ACSGEM.LIB ˜ Die GEM-Bibliotheken sind nun aus ACSpro ausgegliedert worden und laufen ab jetzt als eigenstÑndige Projekte. Sie erhalten eine eigene History und entfallen ab jetzt in dieser Liste komplett. Die GEM-Bibliotheken sind Freeware und wie ACSpro auch in der Maus LL und auf dem Internet verfÅgbar. Alle "Bestandteile" von ACSpro ab Version 3.0.0 sind ab jetzt immer mit der jeweils neuesten Bibliothek PCGEM.LIB compiliert bzw. gelinkt. 26.10.2000 ACS.LIB ˜ Die Nachricht WM_MOUSEWHEEL wird von ACSpro nun empfangen, allerdings noch nicht groûartig ausgewertet. Dies ist ein einer spÑteren Version allerdings geplant (siehe ToDo- Liste). 26.10.2000 PCGEM.LIB, ACSGEM.LIB ˜ Die Nachricht WM_MOUSEWHEEL ist nun in die Liste der Nachrichten mit aufgenommen worden. 25.10.2000 PCTOS.LIB, ACSTOS.LIB ˜ Die TOS-Bibliotheken sind nun aus ACSpro ausgegliedert worden und laufen ab jetzt als eigenstÑndige Projekte. Sie erhalten eine eigene History und entfallen ab jetzt in dieser Liste komplett. Die TOS-Bibliotheken sind Freeware und wie ACSpro auch in der Maus LL und auf dem Internet verfÅgbar. Alle "Bestandteile" von ACSpro ab Version 3.0.0 sind ab jetzt immer mit der jeweils neuesten Bibliothek ACSTOS.LIB compiliert bzw. gelinkt. 19.10.2000 PCGEM.LIB, ACSGEM.LIB ˜ Aus der N.AES-Entwickler-Dokumentation sind einige N.AES- spezifische Funktionen in die Bibliotheken eingeflossen, wie z.B. appl_control, wind_draw, shel_help, objc_xfind etc. 18.10.2000 ACSPLUS.LIB ˜ Der "pure" Desktop reagiert nun auf die Nachricht AS_DRAGGED, indem die Auswahlliste nach Objekten vom Typ AT_FILE durchsucht wird. Wenn diese gefunden werden und eine Neu-Routine hinterlegt wurde, wird fÅr jedes AT_FILE- Objekt die Neu-Routine aufgerufen. Hinweis: Damit kann z.B. jede ACSpro-Anwendung, die den PUR_DESK verwendet, - wie z.B. der GUI-Editor - per Drag&Drop von jinnee Dateien empfangen und îffnen (sofern dies in jinnee entsprechend eingestellt ist natÅrlich ;-) 18.10.2000 ACS.LIB ˜ Die Behandlung des Drag&Drop-Protokolles fÅr Text-Daten wurde verbessert. Wenn eine laufende ACSpro-Anwendung Daten per Drag&Drop gesendet bekommt (z.B. von jinnee bei einem Mehrfachstart - muû in jinnee eingestellt werden), so werden der Reihe nach die einzelnen Text-Daten in Objekte vom Typ AT_FILE (D&D-Typ ARGS) oder AT_STRING (sonst) "gesteckt" und an eine Drag-Routine gesendet. Bislang wurden empfangene Text-Daten Åber die Awindow.keys-Routine eingespielt, wenn das Empfangsobjekt nicht identifiziert werden konnte. Dies ist nicht immer das GewÅnschte, denn da in dieser Situation auch kein Empfangsfenster bekannt ist, verwendet ACSpro automagisch das Root-Fenster und ÅbertrÑgt die Dateinamen per Awindow.keys-Routine... ;-/ Wenn jetzt das Objekt nicht bestimmt werden kann, wird dem Empfangsfenster - nach erfolgreicher PrÅfung durch die Nachricht AS_CHECKDRAGGED - die Nachricht AS_DRAGGED gesendet, als wenn das D&D-Objekt aus der Auswahlliste auf das Fenster-Icon gezogen worden wÑren. Das Fenster kann nun geeignet darauf reagieren. Hinweis: Falls das Empfangsobjekt lokalisiert werden kann, aber kein erweitertes AOBJECT ist oder keine Drag-Routine besitzt, bleibt alles so wie bisher: die "Text-Daten" werden per Awindow.keys-Routine eingespielt. 16.10.2000 ACS.LIB ˜ Nachdem ich selbst beim Entwickeln von und mit ACSpro immer wieder in die Situation komme, wo es heiût "jetzt muû ich nur noch schnell eine Nachricht an das Objekt xyz schicken" und dann der Zirkus mit dem Bestimmen der AUSERBLK-Struktur und dem Versand der Nachricht losgeht, gibt es jetzt (endlich ;-) zwei neue Funktionen: 1. Die Funktion Aob_service leitet eine Nachricht an ein Objekt eines Objektbaumes weiter. Wenn das (globale) Flag AB_LAZYEVAL gesetzt ist, werden keine öberprÅfungen mehr vorgenommen. Andernfalls wird geprÅft, daû der Objektbaum vorhanden ist, daû es ein UserDef ist und eine Service-Routine vorhanden ist... 2. Die Funktion Awi_observice leitet eine Nachricht an ein Fenster-Objekt weiter. Auch hier wird nur bei gelîschtem Flag AB_LAZYEVAL geprÅft, daû das Fenster existiert. Die Funktion selbst ist recht billig, denn sie lÑût - mit dem passenden Objektbaum - die Arbeit von Aob_service erledigen... ;-) 15.10.2000 ACS.LIB ˜ Wenn der Dateiname bei der Funktion Af_fileselect nur aus dem String "*" besteht, so wird der Dateiname fÅr den FSLX-File-Selector A_fileselect geleert - sieht einfach besser aus als ein Dateiname "*"... ;-) ˜ Die Funktion Aob_state wurde etwas Åberarbeitet, sie hat nicht immer das getan, was sie sollte. Das Ergebnis war von der Uhrzeit, der Wetterlage und der Luftfeuchtigkeit abhÑngig - na ja, sooo schlimm war es nicht, aber je nachdem, ob das Fenster geîffnet war oder nicht, ob der Zustand gesetzt werden sollte oder gelîscht, gab es hin und wieder unterschiedliche Ergebnisse... Jetzt sollte es funktionieren... ˜ Die Nachricht AS_FILESELECT war leider falsch definiert und hat sich mit AS_ALLOWBUBBLE Åberschnitten. Damit funktionierte BubbleGEM nicht mehr, wenn die Nachricht AS_FILESELECT von der Service-Routine bearbeitet wurde... AS_FILESELECT hat nun eine neue Nummer bekommen... Sorry! 15.10.2000 ACS_LOAD.O ˜ Die Funktion Af_fileselect war im Modul-Startup-Code fehlerhaft implementiert und hat im ACSpro-Hauptprogramm die falsche Funktion aufgerufen - - Folge: Crash... ;-/ 13.10.2000 ACSPLUS.LIB, ACS.LIB ˜ Die Funktion Ash_thermometer ist nun aus der Bibliothek ACSPLUS.LIB in die Bibliothek ACS.LIB gewandert, da sie dort eher paût als in die "ErgÑnzungsbibliothek". 12.10.2000 ACS_LOAD.O ˜ Der Startup-Code fÅr ACSpro-Module wurde um die neuen Funktionen Af_fileselect, A_fileselect und Ash_thermometer erweitert, so daû auch Module diese Funktionen nutzen kînnen, ohne daû ACS.LIB gelinkt werden muû. 08.10.2000 GUI-Editor ˜ Nachdem ich in KÅrze umziehen werde, ist nun im GUI-Editor beim Info-Dialog, der auf die Shareware-EinschÑnkung hinweist, bereits meine neue Adresse enthalten - so wie auf den Internetseiten und in der ST-Guide-Hilfe auch... ;-) 06.10.2000 ACS.LIB ˜ Der nicht-modale File-Selector hatte noch einen Bug, durch den u.U. auf bereits freigegebenen Speicher zugegriffen wurde. 25.09.2000 ACS.LIB ˜ Bei der Umwandlung der MenÅs in das "moderne Layout" war noch ein kleiner Fehler enthalten, so daû unter UmstÑnden nicht angeforderte Strings freigegeben wurden. 25.09.2000 ACSPLUS.LIB ˜ Die neue Funktion Ash_thermometer stellt ein sog. Thermometer (Woher der Name dafÅr stammt, weiû ich gar nicht mehr - ich nenne es schon "ewig" so...) zur VerfÅgung. Ich habe diese Funktion nach etwas Zîgern aus meiner langjÑhrigen "ACSpro-Bibliothek-Sammlung" geholt, sie etwas verallgemeinert und Åberarbeitet, damit sie in der Bibliothek ACSPLUS.LIB nun allen zur VerfÅgung steht. Die Funktion Ash_thermometer stellt prinzipiell ein Programm der Form init(data); if( start(data) ) { while( fkt(data) ); stop(data); } quit(data); dar. Der Arbeitsfortschritt der Schleifen-Funktion fkt wird durch einen Laufbalken mit zugehîriger Prozentzahl in einem modalen Fenster-Dialog darstellt. Falls das Fenster fÅr den Fenster-Dialog nicht erstellt werden kann, lÑuft fast die dargestellte Schleifenkonstruktion ohne optische RÅckmeldung durch. Die in dieser Schleifenkonstruktrion dargestellten Funktionen werden als Funktionszeiger, die Åbrigens auch NULL sein dÅrfen, an Ash_thermometer Åbergeben: Ash_thermometer( THERMO_CANCEL|THERMO_TEXT|THERMO_PERCENT, " Ein kleines Beispiel... ", color, data, init, start, zaehlfkt, stop, quit); Das Thermometer gibt es in insgesamt 4 Varianten. Das Fenster kann einen Info-Text anzeigen, oder der Platz dafÅr wird eingespart. Ferner kann die Aktion abgebrochen werden, oder es ist kein Abbrechen-Button vorhanden. Die in der Mitte des Laufbalkens plazierte Prozentzahl kann bei jeder der Varianten ausgeblendet werden. 22.09.2000 ACS.LIB ˜ Die bisher intern genutzte Funktion appl_xgetinfo wurde Åberarbeitet und steht nun "offiziell" zur VerfÅgung. Die Funktion prÅft, ob appl_getinfo verfÅgbar ist und ruft diese ggf. auf. 22.09.2000 GUI-Editor ˜ Der GUI-Editor verwendet nun die neue Funktion zur Dateiauswahl. Die Routine zum ôffnen der ACS-Dateien wurde Åberarbeitet und auf die neue Dateiauswahl angepaût. Zum ôffnen von ACS-Dateien wurde der modale Fileselector mit Multi-Select-FÑhigkeiten gewÑhlt. FÅr Interessierte: Das Code-Fragment im GUI-Editor lautet liste=Af_fileselect(ttl_open, last_path, "acs", TRUE, FALSE); if( liste!=NULL ) { (liste->doFor)(liste, &window, NO_FOR, (A_ListWork)openFile); Alu_delete(liste); } Der letzte Parameter von Af_fileselect gibt an, ob der Dialog modal sein soll, der vorletzte steuert die Multi- Selektion. 22.09.2000 ACSPLUS.LIB ˜ Der Desktop PUR_DESK versteht nun die neue Nachricht AS_FILESELECT, die von dem nicht-modalen Fileselector verschickt wird. Wenn eine Neu-Routine angemeldet wurde, so werden dieser der Reihe nach die Dateinamen zum ôffnen Åbergeben. 21.09.2000 ACS.LIB ˜ Die neue Funktion Ash_fileselect îffnet den (MagiC-)Fileselector. Je nach Parametern kann der Fileselector als modales oder auch nicht-modales Fenster geîffnet werden. Wenn der Fileselector als nicht-modales Fenster lÑuft, wird beim Schlieûen des Selektors dem beim Aufruf mitgegebenen Fenster die Nachricht AS_FILESELECT zusammen mit einer linearen Liste ULinListe an Pfadnamen geschickt (das Freigeben der Liste Åbernimmt hier ACSpro). Na ja, es ist nicht unbedingt der MagiC-Fileselector, es ist der Fileselector, der Åber die FSLX-Funktionen bedient wird... ;-) Daraus folgt aber auch: ohne FSLX-Funktionen (Abfrage erfolgt per appl_xgetinfo) gibt es hier nichts! ˜ Um bei allen Varianten der Dateiauswahl immer ein Optimum zu erzielen, gibt es nun die Funktion Af_fileselect, die direkt eine lineare Liste ULinListe von Dateinamen zurÅckliefert - wie daher zu erwarten ist, wird eine Mehrfach-Selektion unterstÅtzt. Die Funktion greift auf die Funktion Ash_fileselect zurÅck, sofern die FSLX-Funktionen vorhanden sind. Andernfalls wird Die Kombination Af_first_fsel/Af_next_fsel (Multi-Selektion) bzw. Af_select (Single-Selektion) verwendet. Af_fileselect erlaubt auch den Aufruf des nicht-modalen Fileselectors. In diesem Falle wird die Nachricht AS_FILESELECT an das Root-Fenster gesendet. Hinweis: Die Verwendung der Funktionen Af_select, Af_first_fsel und Af_next_fsel sollte mîglichst zugunsten der neuen Funktion Af_fileselect aufgegeben werden. 17.09.2000 GUI-Editor ˜ Der GUI-Editor kam nicht so recht mit langen Dateinamen klar. Besonders problematisch waren Dateinamen mit Leerzeichen darin. Der GUI-Editor versteht nun korrekt gequote Dateinamen, sowohl beim Start in der Kommandozeile als auch beim AV-Protokoll per VA_START. ˜ Die Dateinamen wurden stets in Groûbuchstaben umgewandelt. Das ist etwas lÑstig, besonders bei casesensitiven Filesystemen. Die Dateinamen werden nun nicht mehr umgewandelt, sondern bleiben so, wie sie sind - sowohl beim ôffnen von Dateien als auch beim Neuanlegen von Dateien. ˜ Beim Start werden Åbergebene Optionen der Form "-..." bzw. "/.." erkannt, wobei nach den Zeichen '-' bzw. '/' beliebig viele Zeichen folgen kînnen. Bisher wurde versucht, diesen Parameter als Datei zu îffnen. Nachdem der GUI-Editor (noch;-) keine Optionen kennt, werden diese Argumente schlichtweg ignoriert. 15.09.2000 ACS.LIB ˜ Die Bibliothek ACS.LIB enthÑlt nun auch die beiden Bibliotheken ACSTOS.LIB und PCGEM.LIB. Das Einbinden der Bibliotheken PCTOS.LIB, PCTOSLIB.LIB, PCGEM.LIB oder PCGEMLIB.LIB entfÑllt somit vîllig und ist nicht mehr notwendig. Bisher muûte die Bibliothek ACSTOS.LIB im Projekt enthalten sein. Falls dies vergessen wurde und eine der Bibliotheken PCTOS.LIB oder PCTOSLIB.LIB (Pure-C-Biblitohek) verwendet wurde, kam es zu AbstÅrzen, da ACSpro ab Version 3.0.0 bereits die optimierten Aufrufe aus ACSTOS.LIB verwendet. 05.09.2000 ACS.LIB ˜ Die Flags in der Struktur Adescr wurde um AB_OLDMENU erweitert. ˜ Die MenÅs kînnen - falls das Flag AB_OLDMENU nicht gesetzt ist - in das "moderne Layout" umgewandelt werden, so daû die MenÅs dreidimensional erscheinen. Folgende Umwandlungen werden vorgenommen: 1. Alle G_BOX-Objekte werden bei mindestens 16 Farben mit Hintergrund LWHITE und FÅllmuster IP_SOLID versehen. Der 3D-Effekt wird durch das Flag FL3DBAK in ob_flags bewirkt. Diese Effekte wirken also nur auf Systemen, die die AES-4-Objekt-Flags kennen... 2. Alle Strings G_STRING, die disabled sind und nur das Zeichen '-' enthalten, werden in das Userdef-Arrows umgewandelt. Bei mindestens 16 Farben wird die Linie in der Farbe LBLACK mit der StÑrke 1, andernfalls in der Farbe BLACK mit StÑrke 3 gezeichnet. 3. Alle Arrow-Userdefs, die disabled sind und in den AUSERBLK-Strukturen die Default-Werte des Userdef- Arrows in MenÅs enthalten, werden bei mindestens 16 Farben umgesetzt auf Linienfarbe LBLACK und StÑrke 1. ˜ Das Userdef-Arrows verhÑlt sich nun beim Status DISABLED etwas anders. Wenn die StÑrke 3 verwendet wird, wird das Userdef wie bisher gezeichnet (die Zeichenroutine bearbeitet nur den Status SELECTED). Falls jedoch die StÑrke 1 verwendet wird, wird zusÑtzlich der Status DISABLED durch die Zeichen-Routine bearbeitet. Damit sieht das Userdef als Trennlinie bei MenÅs besser aus... ;-) Hinweis: Der Status SELECTED bzw. DISABLED hat jedoch keine Auswirkung auf das Aussehen des Userdefs! 03.09.2000 ACSGEM.LIB, PCGEM.LIB ˜ Das VDI-Binding wurde Åberarbeitet. Die auf dem Stack angelegten öbergabe-Arrays sind nun etwas grîûer dimensioniert - evtl. waren sie einfach zu klein, so daû es beim Aufruf "krachte". 03.09.2000 ACS.PAS, ACS.PPU ˜ Bei der Pure-Pascal-Unit wurde kein Environment an ACSpro Åbergeben. Damit lieferte die Funktion Ash_getenv natÅrlich nur "KÑse" ;-) Dies ist jetzt korrigiert, so daû nun alle Environment-Variablen unter Pure-Pascal zur VerfÅgung stehen... 29.07.2000 ACS.LIB ˜ Die öberprÅfungen des Speichers beim Anfordern und freigeben per Ax_malloc, Ax_free bzw. Ax_ifree wurden komplett Åberarbeitet. Wenn das Flag AB_NOMEMCHECK gesetzt ist, findet jetzt keinerlei PrÅfung mehr statt. Das Beschreiben des Speichers vor dem von Ax_malloc gelieferten Blockes mit einer ACSpro-eigenen Kennung ist nun zusammen mit der zugehîrigen öberprÅfung der Kennung in Ax_free bzw. Ax_ifree auch weggefallen - bei mir hat dies nicht korrekt funktioniert, nach mehreren Crashes von MagiC habe ich es herausgeworfen, denn MagiC macht intern genau so etwas auch... ;-) Wenn diese Art der Speicher-öberprÅfung denoch benîtigt wird, dann werde ich eben wieder so eine nette Sache einbauen... ;-) ˜ Die Funktion nkc_gconv wurde in nkc_gem2n, die Funktion nkc_tconv in nkc_tos2n umbenannt. Damit alte Sourcen nicht angefaût werden mÅssen, werden Åber Makros die alten in die neuen Namen Åbersetzt. ˜ ACSpro verwendet nun nicht mehr direkt die NKCC-Routinen, sondern die von Christian Felsch Åberarbeitete Version aus der CF-Lib. Da dort die Funktionen nkc_n2gem, nkc_gem2n, nkc_cmp und nkc_kstate nicht enthalten sind, wurden diese in C entsprechend nachprogrammiert. ˜ Neu dazu gekommen sind die Funktionen nkc_gemks2n, nkc_n2gemks und nkc_n2kstate. 12.07.2000 ACS.LIB ˜ Die Modul-Schnittstelle wurde nun komplett Åberarbeitet. In Zukunft sollten also abwÑrtskompatible Erweiterungen wesentlich leichter zu realisieren sein. Da es bestimmt einige Module gibt, die nicht mehr weitergepflegt werden, habe ich mich entschlossen, hier zu tricksen und etwas mehr Aufwand zu treiben: wird eine alte Modul-Schnittstelle erkannt (also von ACSpro 2.3x bzw. 2.3.x), so werden die Daten vor dem Weiterreichen an die Anwendung konvertiert. Damit kînnen auch Module von ACSpro 2.3x/2.3.x geladen werden und scheinen zu funktionieren - jedenfalls soweit ich sie habe und testen kann... Da das nicht jeder benîtigt, gibt es nun drei Bibliotheken, von denen genau eine zusÑtzlich zur Bibliothek ACS.LIB in Projekte eingebunden werden muû: ACSMODNO.LIB Die Funktion Ash_module existiert nur als Dummy-Funktion. Module werden nicht geladen, eine Schnittstelle wird nicht zur VerfÅgung gestellt. Durch Verwendung dieser Bibliothek werden nun von der Anwendung nicht benîtigte Routinen vom Linker nicht mehr eingebunden, die andernfalls nur wegen der Modul- Schnittstelle denoch hinzugelinkt wÅrden.. ACSMOD01.LIB Die Modul-Schnittstelle Version 1 (neue Versionierung der Schnittstelle unabhÑngig von der ACSpro-Version) wird zur VerfÅgung gestellt. Die Funktion Ash_module lÑdt nur die neuen Module nach, die mit dieser Schnittstellen-Version erstellt wurden. ACSMOD.LIB Die Modul-Schnittstelle steht in abwÑrtskompatibler Form zur VerfÅgung. Es werden auch die Module der ACSpro-Versionen 2.30, 2.31, 2.32, 2.3.3 und 2.3.4 geladen und gestartet. In der Schnittstelle stehen fÅr die Erweiterungen der Strukturen Awindows und AUSERBLK entsprechende Konvertierungsroutinen bereit, die vîllig unbemerkt fÅr die KompatibilitÑt sorgen. 09.07.2000 ACS.LIB ˜ Die Modul-Schnittstelle ist nun in eine eigenstÑndige Bibliothek ausgelagert worden. Die neue Bibliothek ACSMOD01.LIB muû zusÑtzlich zur Bibliothek ACS.LIB in Projekte eingebunden werden. FÅr Anwendungen, die keine Modulschnittstelle benîtigen, existiert die Bibliothek ACSMODNO.LIB, die eine leere Schnittstelle enthÑlt. Damit bindet der Linker auch nur die wirklich benîtigten ACSpro-Funktionen ein. Dank an Rainer Mannigel fÅr diese Anregung! 08.07.2000 ACS.LIB ˜ Anwendungen, die mit ACSpro entwickelt werden, brauchen nun nicht mehr die Line-A-Bibliothek von Pure-C - auûer wenn der Entwickler selbst irgendetwas davon benîtigt, wovon allerdings dringendst abgeraten wird. ACSpro verwendet hier nur die sog. "Initialisierung" ($A000) zur Ermittelung der Line-A-Variablen. Diese werden nun Åber eine eigene "Mini- Funktion" beschafft. Benîtigt werden die Line-A-Variablen nur in Abp_start und Abp_end. Diese beiden Routinen sollten sowie so nur verwendet werden, wenn alle anderen Stricke reiûen... (siehe auch die Dokumentation der beiden Funktionen ;-) 06.07.2000 ACS.LIB ˜ Interne AufrÑumarbeiten in Af_select und Af_first_fsel... 02.07.2000 GUI-Editor ˜ Der GUI-Editor verwendet nun den Startup-Code von Stefan Kuhr @ OS. Vielen Dank, Stefan! Bisher wurde der Startup- Code von Behne&Behne verwendet. Beide Startup-Codes sind an PowerMacs unter MagiCMac angepaût und liegen ACSpro bei. Die Original-Archive der Startup-Codes sind u.a. in der Maus LL im Gruppenprogrammteil Maus.Computer.Atari.Programmieren zu finden. Hier ein kleiner Vergleich (unvollstÑndig und natÅrlich subjektiv!) der beiden Startup-Codes: Der Startup-Code von Stefan Kuhr unterstÅtzt: - Quoting (Komandozeilenparameter mit Leerzeichen) - ARGV (Komandozeilenparameter mit mehr als 125 Zeichen werden im Environment Åbergeben) - erweitertes ARGV (öbergabe von leeren Parametern) - Workaround fÅr PATH - Shared Text (Programm mehrfach starten, dessen Text- Segment aber nur einmal im Speicher liegt) - keine FPU-Initialisierung Der Startup-Code von Behne&Behne unterstÅtzt: - Quoting (Komandozeilenparameter mit Leerzeichen) - ARGV (Komandozeilenparameter mit mehr als 125 Zeichen werden im Environment Åbergeben) - keine FPU-Initialisierung 26.06.2000 ACS.LIB ˜ Die Funktion Ax_memCheck prÅft, ob ein Speicherbereich les- und/oder beschreibbar ist. Da bei den diversen Protokollen diese Funktion verwendet wird, sollten ACSpro und alle mittels ACSpro entwickelten Anwendungen nicht mehr abstÅrzen, wenn der Kommunikationspartner bei eingeschaltetem Speicherschutz den "Transfer-Speicher" nicht global alloziert hat. Dank an Thomas Binder fÅr die geniale Routine im MausNet in der Gruppe Maus.Computer.Atari.Programmieren! 26.06.2000 ACSGEM.LIB, PCGEM.LIB ˜ Fehler bei appl_search korrigiert, die RÅckgabewerte wurden nicht ordentlich gesetzt. Damit klappte die Kommunikation per XAcc-Protokoll etc. nicht mehr... ;-/ ˜ Die PDLG-Routinen von WDialog wurden nun ebenfalls implementiert. 25.06.2000 ACSGEM.LIB, PCGEM.LIB ˜ In die Bibliothek wurden die LBOX-Funktionen fÅr WDialog aufgenommen. 23.06.2000 ACS.LIB ˜ Neue Funktionen, die fÅr den Umgang mit NVDI nÅtzlich sind, wurden implementiert. Es handelt sich um Ash_NVDICookie, Ash_CallEdDI, Ash_NVDIVersion und Ash_NVDIDatum. 23.06.2000 ACSGEM.LIB, PCGEM.LIB ˜ Die Bibliothek wurde noch etwas Åberarbeitet. Die EdDI- Funktionen v_opnbm, v_clsbm und vq_scrninfo wurden in die Bibliothek aufgenommen. ˜ In die Bibliothek wurden die FNTS-Funktionen fÅr WDialog aufgenommen. ˜ In die Bibliothek wurden die FSLX-Funktionen fÅr WDialog aufgenommen. 22.06.2000 ACS.LIB ˜ Der Fenster-Editor erlaubt nun auch das Setzen des Fenster-Elementes HOTCLOSEBOX, das in MagiC ab Version 1.0 und in KAOS 1.4.2 (auûerdem ab PC-GEM 2) vorhanden ist. Damit wird das Schlieûen des Fensters bereits beim Anklicken der Schlieûbox und nicht erst beim Loslassen ausgelîst. 18.06.2000 ACS.LIB, GUI-Editor ˜ Ash_getcookie verwendet nun Ssystem zum Lesen der Cookies - falls die Funktion verfÅgbar ist. ˜ Der Editor des Cycle-Button hatte einen kleinen Bug, der nun behoben ist. Wenn als "Cycle-Zeichen" ein Zeichen grîûer 127 gewÑhlt wurde, wurde der Parameter-Wert des Userdef falsch gesetzt - d.h. das Vorzeichen des char wurde auf den long Åbertragen... ;-) 13.06.2000 PCTOS.LIB ˜ In der Bibliothek PCTOS.LIB hatte sich fÅr Mshrink ein Fehler eingeschlichen, der Parameter zero war nicht vorhanden. Auswirkungen hatte dies natÅrlich bei allen Anwendungen, die diese Bibliothek verwenden, u.a. im GUI- Editor beim Laden von Modulen. 02.06.2000 GUI-Editor ˜ Der GUI-Editor hat fÅr Pure-Pascal die Texte des Hauptmoduls nicht exportiert (Der Bug war eigentlich immer schon so drin, das hat noch nie richtig funktioniert... ;- /). Damit stÅrzten Programme ab, wenn per Ash_error oder Awi_alert eine Meldung ausgegeben werden sollte, ohne daû alert_name gesetzt war. 19.05.2000 Bibliothek ACS.LIB ˜ Die Konstanten-Definitionen der MiNTLib fÅr Cookies wurden in ACSpro Åbernommen. Damit stehen die sprechenderen "Namen" der Cookies auch unter GNU-C und Pure-Pascal zur VerfÅgung. ˜ Kleineren Bug behoben: Die Funktion Awi_ontop() lieferte nach der Nachricht WM_ONTOP fÑlschlicherweise das Root- Fenster zurÅck... ;-/ 18.05.2000 Bibliothek ACS.LIB, GUI-Editor ˜ Die Versionsnummern wurden nun umbenannt. Aus V3.00 ist V3.0.0 geworden. Damit kann ich auch nun auch mehr als 9 BugFixes durchfÅhren... ;-) 11.05.2000 Bibliothek ACS.LIB ˜ Die unterstÅtzten GEMScript-Kommandos wurden um die Kommandos 'KeyPress' und 'GetAllCommands' erweitert. Hier wird ein Tastendruck simuliert bzw. eine alphabetisch sortierte Liste aller unterstÅtzten GEMScript-Kommandos ausgegeben. Genaueres ist in der Dokumentation der GEMScript-Funktionen Aev_GEMScript und Awi_gemscript zu finden. 11.05.2000 Bibliothek ACSTOS.LIB, PCTOS.LIB ˜ Weitere Fehlerkorrekturen in der TOS-Bibliothek ˜ Die Bibliothek ACSTOS.LIB gibt es nun auch als kompatiblen Ersatz der Pure-C Bibliothek. Die neue Bibliothek PCTOS.LIB sollte zur bisherigen Pure-C Bibliothek kompatibel sein, aber alle mir bekannten BIOS-, XBIOS- und GEMDOS-Funktionen enthalten. ˜ Die ACSTOS.LIB gibt es ferner als kompatible Bibliothek, die zu 100% kompatibel zur von CAT verwendeten Bibliothek ist - eine kleinere "Spielerei", diese Variante, ich gebe es zu... ;-) 04.04.2000 Bibliothek ACS.LIB ˜ Die Routine Awi_doform warf Bîmbchen, wenn das Erzeugen des Fensters nicht funktioniert hat und auf A_dialog ausgewichen werden muûte. 12.03.2000 GUI-Editor ˜ Im allgemeinen USERDEF-Editor (also Klick mit Ctrl auf "Objekt-Editor) gab es einen Absturz, wenn die Strings fÅr BubbleGEM und das Context-Popup nicht leer waren. 12.03.2000 Bibliothek ACS.LIB ˜ In Ast_ltrim - und damit auch in Ast_alltrim - war noch ein Bug, der das Ende des korrigierten Strings falsch setzte. 05.03.2000 Bibliothek ACS.LIB ˜ Die Funktion Awi_obchange funktionierte bei einem Wechsel des Objekt-Status von DISABLED auf ENABLED nicht richtig. Das Objekt war zwar enabled, wurde aber z.T disabled gezeichnet. Meine Untersuchungen haben ein etwas merkwÅrdiges Verhalten von objc_change ergeben. Das Problem wurde durch einen Workaround umschifft. 13.02.2000 Bibliothek ACS.LIB ˜ Im Dialog "Allgemein" des Module-Fensters funktionierte die Einstellung "Kopiere Bildteil" nicht richtig. Wenn die Option umgestellt wurde, wurde stets das Gegenteil durchgefÅhrt. Wenn die Option in der Default-Einstellung belassen wurde, klappte alles wie es sollte. Dies ist nun korrigiert! Die Einstellungen in diesem Dialog sollten daher nochmals kontrolliert werden. 31.01.2000 GUI-Editor ˜ Bei Hauptmodulen wurde fÅr Pure-Pascal in der Komponente acc_reg ein Char zuviel ausgegeben. Dies ist nun korrigiert! 25.01.2000 Bibliothek ACS.LIB ˜ Die Funktion Af_readdir - und damit auch Af_first und Af_next - funktionierte nicht korrekt, wenn Dxreaddir und Dreaddir (MagiC bzw. MiNT) nicht vorhanden sind und intern Fsfirst/Fsnext verwendet wurde. Die Dateinamen wurden mit "*.*" aufgeblÑht: Laufwerk:\ORDNER1\...\*.*\DATEI.XYZ Das Problem ist nun behoben! 05.01.2000 Bibliothek ACSTOS.LIB, PCGEM.LIB, ACSGEM.LIB ˜ Diverse Optimierungen in den Bibliotheken fÅr BIOS, XBIOS, GEMDOS, VDI & AES. 23.12.1999 Bibliothek ACS.LIB ˜ Das Backdropping wird nun in der Version 3.0.0 noch nicht Åber einen Zeiger in der Struktur Awindow aufgerufen, sondern noch automatisch und nicht beeinfluûbar. Dies wird sich nach der Version 3.0.0 allerdings Ñndern (steht schon auf der ToDo-Liste (siehe "ToDo-Liste")). 16.12.1999 GUI-Editor ˜ Die Objekt-Editoren (3D-Button-Dialog, Checkbox-/ Radiobutton-Dialog, etc.) rufen nun die ST-Guide-Hilfe ebenfalls Åber die neue Schnittstelle auf. ˜ Der Objektbaum-Editor hat nun ebenso wie der Popup-Editor und der MenÅ-Editor eine Hilfe-Seite erhalten. 14.12.1999 GUI-Editor ˜ Der Fenster-Editor ist nun komplett mit BubbleGEM- Informationen ausgerÅstet worden. 10.12.1999 Neue Bibliotheken ACSGEM.LIB und PCGEM.LIB ˜ ACSpro ist nun auch um eine eigene GEM-Bibliothek ergÑnzt worden. Diese deckt zunÑchst alle VDI- und AES-Funktionen bis zum TT-TOS ab. Weitere werden allerdings noch "nachgerÅstet". Diese Bibliothek ersetzt die Pure-C- Bibliothek PCGEMLIB.LIB vollstÑndig und sollte vîllig kompatibel (aber bei wind_get/wind_set sauberer ;-) sein. Diese Bibliothek gibt es demnÑchst auch in einer fÅr ACSpro optimierten und multithreading-festen Form. ˜ Damit wird es auch demnÑchst (also dann, wenn ich einmal dazu komme ;-)) zwei Versionen der ACS-Bibliothek geben. Die eine baut wie bisher auf der Pure-C-Bibliothek PCGEMLIB.LIB (bzw. wahlweise auf der Ersatzbibliothek PCGEM.LIB) auf, die andere ist fÅr die Bibliothek ACSGEM.LIB optimiert, enthÑlt also zum Teil wesentlich weniger Overhead. 08.09.1999 Bibliothek ACS.LIB ˜ Bei mehr als 256 Farben sollte zumindest kein PixelmÅll kommen. Bei Checkboxen oder Radiobuttons wird allerdings die Schwarz-Weiû-Darstellung verwendet - ein kleiner Kompromis, bis ich eine vernÅnftige Lîsung gefunden habe ... 30.08.1999 GUI-Editor ˜ Der GUI-Editor fÅgt nun selbsttÑtig zwei fÅhrende Leerzeichen beim Accessory-MenÅeintrag ein, damit dieser im MenÅ richtig positioniert wird. Bei der Anzeige werden diese fÅhrenden Leerzeichen wieder entfernt. Man muû also nicht mehr selbst darauf aufpassen, daû dieser MenÅeintrag richtig dargestellt wird. 19.08.1999 Bibliothek ACS.LIB ˜ Die Konfigurationsdatei fÅr den GUI-Editor wurde erweitert, die Seriennummer und der SchlÅssel sind nun auf 10 Zeichen erweitert worden. Ebenso ist der (Fenster-)Dialog entsprechend erweitert worden. 08.08.1999 Bibliothek ACS.LIB ˜ Die ACSpro-eigenen Checkbox- und Radio-Button-Userdefs waren im Zustand disabled noch nicht an die Checkbox- und Radio-Button-Objekte von MagiC 6 angepaût. Die Darstellung wurde korrigiert und weiter angeglichen. Ferner wird nun im Zustand disabled auch der Beschriftungstext hell gezeichnet, wie es bei MagiC 6 der Fall ist. Die Checkbox kann nun nicht mehr fÅr ein Tri-State-Objekt verwendet werden, dafÅr ist die vîllige MagiC-Anpassung erreicht. Bei mehr als 256 Farben sowie bei proportionalen SystemzeichensÑtzen gibt es jedoch leider immer noch Probleme mit den Chechbox- und Radio-Buttons. 01.08.1999 Bibliothek ACS.LIB ˜ Das GEMScript-Protokoll wurde nun passiv in der ersten Stufe implementiert. Damit funktioniert nun die Fernsteuerung von ACS-Applikationen! Die AufnahmefÑhigkeit sowie die aktive Ansteuerung anderer Applikationen ist noch nicht implementiert, beides wird jedoch noch "nachgerÅstet". Bislang werden nur ein paar Standard-GS-Kommandos unterstÅtzt, die Liste wird aber noch wachsen. Die Standard-Funktion fÅr allgemeine GEMScript-Kommandos heiût Aev_GEMScript, fÅr GEMScript-Kommandos mit Bezug auf Fenster wird die in Awindow.gemscript eingetragene Funktion aufgerufen - Default-Funktion ist hier Awi_gemscript. 24.07.1999 Bibliothek ACS.LIB, GUI-Editor ˜ FÅr jedes Fenster kann nun der Hilfe-Titel fÅr die ST- Guide-Hilfe direkt im GUI-Editor eingetragen werden. Dem Fenster wird durch die Nachricht AS_ASK_STGUIDE Gelegenheit gegeben, das Hilfethema zu verÑndern. Falls noch nichts selekiert wurde, so selektiert zum Beispiel das Editor-Fenster das Wort unter dem Cursor. Als Hilfe-Thema wird der selektierten Bereich verwendet. 22.07.1999 Bibliothek ACS.LIB, GUI-Editor ˜ Vîllig analog zur BubbleGEM-Hilfe kann nun bereits im GUI- Editor fÅr jedes ACSpro-Userdef, das eine Service-Routine besitzt, das Kontext-MenÅ angegeben werden. ˜ Alle Daten, die das Hauptmodul betreffen, sind nun ein einem neuen Fensterdialog zusammengefaût. Der bisherige Verhalten-Dialog wurde damit wesentlich Åbersichtlicher gestaltet. In diesen neuen Fensterdialog gelangt man, indem man das neue Icon HAUPTMODUL links neben dem bisherigen Icon VERHALTEN auswÑhlt. ˜ Der Verhalten-Dialog wurde zusammen mit seinem Icon in "Eigenschaft" umbenannt und ist nun fÅr die Eigenschaften wie z.B. die Programmiersprache jeder ACSpro-Datei zustÑndig, wÑhrend die Daten des Hauptmoduls getrennt davon im Hauptmodul-Dialog zusammengefaût sind. ˜ Neu ist die Struktur Aconfig. In ihr werden vom GUI-Editor wichtige Konfigurationsdaten des Hauptmoduls exportiert und in der globalen Variable ACSconfig dem Compiler bzw. Linker zur VerfÅgung gestellt. Dies sind z.B. die verschiedenen Funktionszeiger, die von ACSpro in die Struktur Ablk, auf die ACSblk verweist, eingetragen werden. ˜ Die wichtigen Funktionszeiger in der Struktur Ablk kînnen nun bereits im GUI-Editor belegt werden. ˜ Ferner kann nun auch die Funktion ACSinit einen anderen Namen tragen. Der Default-Name ist ACSinit, ein abweichender Name kann im Hauptmodul-Dialog vorgegeben werden. 22.07.1999 Bibliothek ACS.LIB ˜ Analog zur BubbleGEM-Hilfe wurde ein Kontext-MenÅ realisiert. ACSpro unterscheidet zwischen langen und kurzen Klicks mit der rechten Maustaste. Bei kurzen Klicks erscheint die BubbleGEM-Hilfe, bei langen Klicks das Kontext-MenÅ. Das Kontext-MenÅ kann vom Userdef und vom Fenster kontrolliert werden. ˜ Die Strategie zur Behandlung von Klicks mit der rechten Maustaste ist nun wie folgt: 1. Falls nach einer Zeit von im Moment festen 250 msec. die rechte Maustaste noch gedrÅckt ist, handelt es sich um einen langen Klick, andernfalls um einen kurzen Klick. 2. Bei einem kurzen Klick wird die BubbleGEM-Hilfe aufgerufen, andernfalls das Kontext-MenÅ. 3. Falls keine BubbleGEM-Hilfe verfÅgbar war, wird das Kontext-MenÅ verwendet. 4. Falls kein Kontext-MenÅ verfÅgbar war, wird nach der Wartezeit zur Ermittlung eines langen Klicks (s.o.) die BubbleGEM-Hilfe angezeigt. ˜ Es wurden zwei neue Funktionen implementiert, Aob_state und Aob_flags. Sie dienen zur einfachen Manipulation der Komponenten ob_state bzw. ob_flags der Struktur OBJECT in einem Objektbaum (Workobjekt oder Toolbar) eines Fensters. 20.07.1999 GUI-Editor ˜ Die Texte fÅr BubbleGEM kînnen nun fÅr jedes ACS-Userdef, das eine Service-Routine besitzt, komfortabel bereits im GUI-Editor angegeben werden. Als besonderes Feature kînnen die BubbleGEM-Strings am Beispiel-Objekt in der linken oberen Ecke direkt beim Editieren ausprobiert werden, es wird sofort der eingegebene Text verwendet. 27.06.1999 Bibliotheken ACS.LIB & ACSPLUS.LIB, GUI-Editor ˜ Die Struktur Awindow wurde erweitert: 1. Es sind zwei Funktionszeiger hinzugekommen, die fÅr Iconify benîtigt werden. Die Default-Routinen sind Awi_iconify und Awi_uniconify. 2. FÅr die ST-Guide-UnterstÅtzung sind ferner zwei neue Strings vorhanden. Hier kann das Hilfe-Thema fÅr dieses Fenster sowie ggf. der Dateiname des Hypertextes angegeben werden. 3. Zur UnterstÅtzung des GEMScript-Protokolles ist ein Funktionszeiger definiert, der auf die GEMScript- Routine des Fensters zeigt. Default-Funktion ist hier Awi_gemscript. Im Moment macht diese Routine noch nichts, aber das Ñndert sich bald... ;-) ˜ Die Struktur AUSERBLK der Userdefs wurde um folgende Komponenten erweitert: 1. Ein neuer String enthÑlt den ggf. zu verwendenden Text fÅr eine BubbleGEM-Hilfe. 2. Ein weiterer String steht fÅr ein kontextsensitives Popup zur VerfÅgung. ˜ Ebenso hat die Struktur AUSER_DEF ebenfalls zwei neue Zeiger bekommen, einen fÅr die BubbleGEM-Hilfe, einen fÅr das Kontext-Popup. Damit mÅssen alle vorhandenen Editoren an diese énderung angepaût werden - sorry! 27.06.1999 GUI-Editor ˜ Das Dateiformat ist nun umgestellt worden. Der GUI-Editor liest weiterhin alle alten Formate und konvertiert sie in das neue Format, allerdings werden diese nach der Umwandlung als verÑndert gekennzeichnet. Daraufhin wird beim Beenden des GUI-Editor gefragt, ob die ACSpro-Datei gesichert werden soll. Alle ACSpro-Dateien im alten Format mÅssen aufgrund der neuen Komponenten in den Strukturen Awindow und AUSERBLK umgestellt werden. Andernfalls drohen AbstÅrze (zwei oder drei Bîmbchen) unter anderem bei der ST-Guide-Hilfe, Iconify und GEMScript. 17.06.1999 Bibliothek ACSPLUS.LIB & GUI-Editor ˜ Das Editor-Fenster und der GUI-Editor senden nun nach dem Speichern per Aev_OlgaUpdate eine entsprechende Message an den OLGA-Manager. Damit kann z.B. der GUI-Editor mit Hilfe des integrierten Editor-Fensters als OLGA-fÑhiger Texteditor eingesetzt werden - das habe ich natÅrlich gleich ausprobieren mÅssen... ;-) 17.06.1999 Bibliothek ACS.LIB ˜ Das OLGA-Protokoll wird nun als OLGA-Server unterstÅtzt. Das Nachstarten des OLGA-Managers sowie das An- und Abmelden am OLGA-Manager funktionieren vollautomatisch. Die Funktionen Aev_OlgaUpdate, Aev_OlgaRename und Aev_OlgaBreaklink stehen bereits zur VerfÅgung und arbeiten korrekt. Eine komfortablere Variante ist in GrundzÅgen bereits implementiert und wird gerade ausgebaut. Wesentliche Teile der OLGA-Client-Seite sind ebenfalls fertig, allerdings wird hier noch gefeilt... ;-) Die volle OLGA-UnterstÅtzung auch als Client wird in der Version 3.0.0 noch nicht zur VerfÅgung stehen. Sie ist jedoch in Arbeit und steht auch weiterhin auf der ToDo- Liste. 30.05.1999 Bibliothek ACS.LIB ˜ Das komplette PureC-Hilfe-Protokoll steht nun zur VerfÅgung. Allerdings habe ich bei den diversen Tests festgestellt, daû PC_HELP.ACC die RÅckmeldung stets an die Applikation 0 meldet. In Multitasking-Systemen geht dies dann "daneben". Dies ist ein Bug in PC_HELP.ACC und kann von ACSpro nicht umgangen werden. Wenn der ST-Guide Åber dieses Protokoll angesteuert wird, funktioniert alles reibungslos! ˜ Der ST-Guide von Holger Weets kann nicht nur Åber das PureC-Hilfe-Protokoll angesteuert werden, sondern versteht auch das AV-Protokoll. Die Funktion Aev_STGuideHelp stellt das komfortable Inferface fÅr die Ansteuerung des ST-Guide dar. Der ST-Guide scheint nach der Nachricht VA_START die Antwort VA_STARTED an den AV-Server zu senden und nicht an die absendende Anwendung. Damit ist keine Mîglichkeit gegeben, komfortable RÅckmeldungen zu bekommen. Zum GlÅck klappt mit dem PureC-Hilfe-Protokoll alles bestens... ;-) Dies ist ein Bug im ST-Guide und kann von ACSpro nicht umgangen werden. FÅr beide Varianten, die Online-Hilfe anzusprechen, habe ich entsprechende Workarounds implementiert. ACSpro ist also auf dieses "besondere Verhalten" beider Hilfe-Accessories vorbereitet und sollte richtig darauf reagieren... ;-) ˜ Die Strategie, um den AV-Server zu finden, wurde etwas geÑndert. Zuerst wird die Environment-Variable AVSERVER ausgewertet. Falls diese nicht existiert oder der dort angegebene AV-Server nicht gefunden werden kann, werden (in dieser Reihenfolge) jinnee, Gemini, AVServer und MagxDesk als AV-Server versucht. 18.05.1999 Bibliothek ACS.LIB ˜ Neue Funktion Awi_ontop liefert das oberste Fenster. Dies wird auch behalten, wenn ACSpro-Anwendungen in den Hintergrund treten. ˜ Wenn ACSpro in Multitasking-Systemen wieder nach vorne kam, wurde direkt ein Maus-Klick ausgelîst. Dies ist nun abgestellt! 08.05.1999 Bibliothek ACS.LIB ˜ Iconify in allen Varianten wird nun direkt vom ACSpro- System erledigt. Die Realisierung Åber die Service-Routine ist somit hinfÑllig. DemnÑchst werden bei der sowieso anstehenden énderung der Awindow-Struktur entsprechende Funktionszeiger fÅr die Nachrichten WM_ICONIFY, WM_ALLICONIFY und WM_UNICONIFY aufgenommen werden. 04.05.1999 Bibliothek ACS.LIB ˜ Die XAcc-Empfangsroutinen wurden komplett Åberarbeitet und diverse kleinere Bugs ausgebaut. 04.05.1999 Bibliothek ACS.LIB ˜ Durch die Nachricht AS_ACC_ACK wird mitgeteilt, daû ein von ACSpro ausgelîster XAcc-Transfer abgeschlossen wurde. Zugleich wird der Status des Transfers mitgeteilt (Erfolg/Miûerfolg). Das Fenster kann dann geeignet darauf reagieren (etwa nach einiger Zeit einen neuen Transfer versuchen o.Ñ.). Die auslîsenden Routinen werden demnÑchst (Allerdings noch nicht in Version 3.0.0) in ACSpro zur VerfÅgung stehen, so daû dann auch der "aktive Datentransfer" per XAcc-Protokoll direkt unterstÅtzt wird. 02.05.1999 Bibliothek ACS.LIB ˜ Beim Lîschen einer linearen Liste gab es einen Crash. Die Routine stÅrzte ab, wenn ACSpro beendet wird und dabei Alu_delete aufgerufen wurde. Der Bug ist behoben. ˜ Optimierung: Umstellen der ACS-internen Message- Verarbeitung auf BinÑrsuche. Damit ist die ErweiterungsfÑhigkeit fÅr GEMScript, OLGA, BubbleGEM o.Ñ. (siehe ToDo-Liste) gegeben, da sich bei diesen vielen Nachrichten, auf die es zu reagieren gilt, die Vergleiche bis zur Identifikation der Nachricht drastisch reduzieren. Bei 61 Nachrichten (Stand 17.04.2001) wÑren es nach dem bis einschl. Version 2.3.x verwendeten Verfahren im Mittel 30 Vergleiche, jetzt sind es maximal nur 7 Vergleiche, bis die Nachricht einwandfrei identifiziert ist. Die Funktionen fÅr die Drag&Drop-Protokolle werden allerdings noch komplett Åberarbeitet, damit ACSpro nicht nur den eher "passiven Empfang", sondern auch das "aktive Senden" in gewohntem Komfort beherrscht. 14.04.1999 Bibliothek ACS.LIB ˜ Die Routine ACSinit0 wird nun vor der Initialisierung der XAcc-Daten und dem Anmelden bei den diversen Protokollen (XAcc, VA, etc.) aufgerufen. 8.3 énderungen Version V2.3.3 auf V2.3.4 ========================================= Hier sind die énderungen und Erweiterungen von V2.3.3 zur V2.3.4 in umgekehrter chronologischer Reihenfolge aufgelistet. Hinweis: Die Version 2.3.4 enthÑlt nur wichtige Korrekturen von Fehlern der Version 2.3.3. Hinweis: énderungen an den C-Bibliotheken betreffen stets auch die Pascal-Bibliothek. Von Bugfixes und Erweiterungen in den Bibliotheken hat stets auch der GUI-Editor profitiert, da dieser ja mittels ACSpro entwickelt wurde. Stand der Liste ist der 01.01.2001. 01.01.2001 ACS.LIB, GUI-Editor ˜ Anpassung der Jahreszahl-Daten im Copyright. ˜ Erstellung des Releases 2.3.4, d.h. entfernen aller "Beta-Angaben" in den Versionsnummern. 01.01.2001 ACS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Im Standard-AboutMe-Dialog von ACSpro wird nun das Datum der Version "ordentlich" als "tt.mm.jjjj" (deutsch) bzw. "mm-tt-jjjj"(englisch) dargestellt. Die "elende KrÅcke" mit der AbkÅrzung des Monatsnamens als "Oct" oder "Dec" hat also ein Ende... ;-) 02.11.2000 GUI-Editor ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Bei der direkten Positionseingabe fÅr ein Objekt im Objekt-Editor konnten zu groûe oder zu kleine Werte fÅr die Zeichen- und Pixel-Komponenten eingegeben werden. Die Zeichenkoordinaten sind auf 0..255, die Pixel-Korrekturen auf -128..127 festgelegt. Grîûere oder kleinere Werte werden passend auf den Rand des Intervalls gesetzt. 30.10.2000 PCGEM.LIB, ACSGEM.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Die GEM-Bibliotheken sind nun aus ACSpro ausgegliedert worden und laufen ab jetzt als eigenstÑndige Projekte. Sie erhalten eine eigene History und entfallen ab jetzt in dieser Liste komplett. Die GEM-Bibliotheken sind Freeware und wie ACSpro auch in der Maus LL und auf dem Internet verfÅgbar. Alle "Bestandteile" von ACSpro der Version 2.x.x sind ab jetzt immer mit der jeweils neuesten Bibliothek PCGEM.LIB compiliert bzw. gelinkt. 25.10.2000 PCTOS.LIB, ACSTOS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Die TOS-Bibliotheken sind nun aus ACSpro ausgegliedert worden und laufen ab jetzt als eigenstÑndige Projekte. Sie erhalten eine eigene History und entfallen ab jetzt in dieser Liste komplett. Die TOS-Bibliotheken sind Freeware und wie ACSpro auch in der Maus LL und auf dem Internet verfÅgbar. Alle "Bestandteile" von ACSpro der Version 2.x.x sind ab jetzt immer mit der jeweils neuesten Bibliothek PCTOS.LIB compiliert bzw. gelinkt. 16.10.2000 PCGEM.LIB, ACSGEM.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Aus der N.AES-Entwickler-Dokumentation sind einige N.AES-spezifische Funktionen in die Bibliotheken eingeflossen, wie z.B. appl_control, wind_draw, shel_help, objc_xfind etc. 16.10.2000 ACS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Die Utility-Funktionen Aob_flags, Aob_state, Aob_service und Awi_observice sind nun ganz analog zu V3.0.0 auch in der Version V2.3.4 vorhanden. Schlieûlich muû ein gewisser Komfort sein... ;-) 08.10.2000 GUI-Editor ˜ Nachdem ich in KÅrze umziehen werde, ist nun im GUI- Editor beim Info-Dialog, der auf die Shareware- EinschÑnkung hinweist, bereits meine neue Adresse enthalten. 08.10.2000 ACS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Die Bibliothek ACS.LIB enthÑlt nun auch die beiden Bibliotheken PCTOS.LIB und PCGEM.LIB. Das Einbinden der Bibliotheken PCTOS.LIB, PCTOSLIB.LIB, PCGEM.LIB oder PCGEMLIB.LIB entfÑllt somit vîllig und ist nicht mehr notwendig. Bisher muûte die Bibliothek PCTOS.LIB im Projekt enthalten sein. Falls dies vergessen wurde und eine die Bibliothek ACSTOS.LIB verwendet wurde, kam es zu AbstÅrzen, da ACSpro in Version 2.3.3 noch nicht die optimierten Aufrufe aus ACSTOS.LIB verwendet. 17.09.2000 GUI-Editor ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Der GUI-Editor kam nicht so recht mit langen Dateinamen klar. Besonders problematisch waren Dateinamen mit Leerzeichen darin. Der GUI-Editor versteht nun korrekt gequote Dateinamen sowohl beim Start in der Kommandozeile als auch per AV-Protokoll per VA_START Åbergebene. ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Die Dateinamen wurden stets in Groûbuchstaben umgewandelt. Das ist etwas lÑstig, besonders bei casesensitiven Filesystemen. Die Dateinamen werden nun nicht mehr umgewandelt, sondern bleiben so, wie sie sind - sowohl beim ôffnen von Dateien als auch beim Neuanlegen von Dateien. ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Der (Builder) kann beim Start Åbergebene Optionen der Form "-..." bzw. "/.." erkennen, wobei nach den Zeichen '-' bzw. '/' beliebig viel folgen kann. Bisher wurde versucht, diesen Parameter als Datei zu îffnen. Nachdem der GUI-Editor (noch;-) keine Optionen kennt, werden diese Argumente schlichtweg ignoriert. 03.09.2000 ACSGEM.LIB, PCGEM.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Das VDI-Binding wurde Åberarbeitet. Die auf dem Stack angelegten öbergabe-Arrays sind nun etwas grîûer dimensioniert - evtl. waren sie einfach zu klein, so daû es beim Aufruf "krachte". 03.09.2000 ACS.PPU ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Bei der Pure-Pascal-Unit wurde kein Environment an ACSpro Åbergeben. Damit lieferte die Funktion Ash_getenv natÅrlich nur "KÑse" ;-) Dies ist jetzt korrigiert, so daû nun alle Environment-Variablen unter Pure-Pascal zur VerfÅgung stehen... 12.07.2000 ACS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Da es bestimmt einige Module gibt, die nicht mehr weitergepflegt werden, habe ich mich entschlossen, bei der Modul-Schnittstelle zu tricksen und etwas mehr Aufwand zu treiben: wird eine alte Modul-Schnittstelle erkannt (also von ACSpro 2.30 oder 2.31), so werden die Daten vor dem Weiterreichen an die Anwendung konvertiert. Die Erweiterung war relativ einfach zu machen - wenn man den notwendigen Trick heraus bekommen hat... Damit kînnen auch Module von ACSpro 2.3x/2.3.3 geladen werden und scheinen zu funktionieren - jedenfalls soweit ich sie habe und testen kann... Hinweis: Die Versionsnummer der Modul-Schnittstelle wurde fÅr ACSpro 2.31 fÑlschlicherweise nicht angepaût, obwohl die Funktionen Af_first und Af_next inkompatibel erweitert wurden. Dies geschah leider erst in der ACSpro 2.31. ACSpro geht in der Version 2.3.4 nun davon aus, daû Module, die die Ñltere der beiden Modul-Schnittstellen benîtigen, die "alten" Aufrufe von Af_first und Af_next machen und paût diese an. Sollten also Module mit ACSpro 2.31 entwickelt worden sein, so sollten diese mit Version 2.3.4 sicherheitshalber recompiliert werden. 08.07.2000 ACS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Anwendungen, die mit ACSpro entwickelt werden, brauchen nun nicht mehr die Line-A-Bibliothek von Pure-C - auûer wenn der Entwickler selbst irgendetwas davon benîtigt, wovon allerdings dringend abgeraten wird. ACSpro verwendet hier nur die sog. "Initialisierung" ($A000) zur Ermittelung der Line-A-Variablen. Diese werden nun Åber eine eigene "Mini-Funktion" beschafft. Benîtigt werden die Line-A-Variablen nur in Abp_start und Abp_end. Diese beiden Routinen sollten sowie so nur verwendet werden, wenn alle anderen Stricke reiûen... (siehe Dokumentation der beiden Funktionen ;-) 06.07.2000 ACS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Interne AufrÑumarbeiten in Af_select und Af_first_fsel... 02.07.2000 GUI-Editor ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Der GUI-Editor verwendet nun den Startup-Code von Stefan Kuhr @ OS. Vielen Dank, Stefan! Beide Startup-Codes sind an PowerMacs unter MagiCMac angepaût und liegen ACSpro bei. Die Original-Archive der Startup-Codes sind in der Maus LL im Gruppenprogrammteil Maus.Computer.Atari.Programmieren zu finden. Hier ein kleiner Vergleich (unvollstÑndig!) der Startup- Codes: Der Startup-Code von Stefan Kuhr unterstÅtzt: - Quoting (Komandozeilenparameter mit Leerzeichen) - ARGV (Komandozeilenparameter mit mehr als 125 Zeichen werden im Environment Åbergeben) - erweitertes ARGV (öbergabe von leeren Parametern) - Workaround fÅr PATH - Shared Text (Programm mehrfach starten, dessen Text-Segment aber nur einmal im Speicher liegt) - keine FPU-Initialisierung Der Startup-Code von Behne&Behne unterstÅtzt: - Quoting (Komandozeilenparameter mit Leerzeichen) - ARGV (Komandozeilenparameter mit mehr als 125 Zeichen werden im Environment Åbergeben) - keine FPU-Initialisierung ˜ Nachgezogene Korrektur fÅr V2.3.3 (analog zu V3.0.0): Der Editor des Cycle-Button hatte einen kleinen Bug, der nun behoben ist. Wenn als "Cycle-Zeichen" ein Zeichen grîûer 127 gewÑhlt wurde, wurde der Parameter- Wert des Userdef falsch gesetzt - d.h. das Vorzeichen des char wurde auf den long Åbertragen... ;-) 02.07.2000 ACS.LIB ˜ Nachgezogene énderung fÅr V2.3.3 (analog zu V3.0.0): Ash_getcookie verwendet nun Ssystem zum Lesen der Cookies - falls die Funktion verfÅgbar ist. ˜ Die Korrektur fÅr die Funktion Awi_obchange war nicht ganz so richtig, da ist mir ein "Hund" beim Nachziehen der Korrektur von V3.0.0 fÅr die V2.3.3 hineingerutscht... ;-/ Jetzt sollte die Funktion wieder korrekt arbeiten. 8.4 énderungen Version V2.32 auf V2.3.3 ======================================== Hier sind die énderungen und Erweiterungen von V2.32 zur V2.3.3 in umgekehrter chronologischer Reihenfolge aufgelistet. Hinweis: Die Version 2.3.3 enthÑlt nur wichtige Korrekturen von Fehlern der Version 2.32. Hinweis: énderungen an den C-Bibliotheken betreffen stets auch die Pascal-Bibliothek. Von Bugfixes und Erweiterungen in den Bibliotheken hat stets auch der GUI-Editor profitiert, da dieser ja mittels ACSpro entwickelt wurde. Stand der Liste ist der 13.06.2000. 13.06.2000 PCTOS.LIB ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): In der Bibliothek PCTOS.LIB hatte sich fÅr Mshrink ein Fehler eingeschlichen, der Parameter zero war nicht vorhanden. Auswirkungen hatte dies natÅrlich bei allen Anwendungen, die diese Bibliothek verwenden, u.a. im GUI-Editor beim Laden von Modulen. 09.06.2000 GUI-Editor ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Beim Lîschen einer linearen Liste gab es einen Crash. Die Routine stÅrzte ab, wenn ACSpro beendet wird und dabei Alu_delete aufgerufen wurde. Der Bug ist behoben. ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Kleineren Bug behoben: Die Funktion Awi_ontop() lieferte nach der Nachricht WM_ONTOP fÑlschlicherweise das Root- Fenster zurÅck... ;-/ 02.06.2000 GUI-Editor ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Der GUI-Editor hat fÅr Pure-Pascal die Texte des Hauptmoduls nicht exportiert (Der Bug war eigentlich immer schon so drin, das hat noch nie richtig funktioniert... ;-/). Damit stÅrzten Programme ab, wenn per Ash_error oder Awi_alert Meldungen ausgegeben werden sollte, ohne daû alert_name gesetzt war. 18.05.2000 Bibliothek ACS.LIB, GUI-Editor ˜ Die Versionsnummern wurden nun umbenannt. Aus V2.33 ist V2.3.3 geworden. 04.04.2000 Bibliothek ACS.LIB ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Die Routine Awi_doform warf Bîmbchen, wenn das Erzeugen des Fensters nicht funktioniert hat und auf A_dialog ausgewichen werden muûte. 29.03.2000 Bibliothek ACS.LIB ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Die Funktion Awi_obchange funktionierte bei einem Wechsel des Objekt-Status von DISABLED auf ENABLED nicht richtig. Das Objekt war zwar enabled, wurde aber z.T disabled gezeichnet. Meine Untersuchungen haben ein etwas merkwÅrdiges Verhalten von objc_change ergeben. Das Problem wurde durch einen Workaround umschifft. ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): In Ast_ltrim - und damit auch in Ast_alltrim - war noch ein Bug, der das Ende des korrigierten Strings falsch setzte. 13.02.2000 Bibliothek ACS.LIB ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Wenn ACSpro in Multitasking-Systemen wieder nach vorne kam, wurde direkt ein Maus-Klick ausgelîst. Dies ist nun abgestellt! ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Im Dialog "Allgemein" des Module-Fensters funktionierte die Einstellung "Kopiere Bildteil" nicht richtig. Wenn die Option umgestellt wurde, wurde stets das Gegenteil durchgefÅhrt. Wenn die Option in der Default-Einstellung belassen wurde, klappte alles wie es sollte. Dies ist nun korrigiert! Die Einstellungen in diesem Dialog sollten daher nochmals kontrolliert werden. 25.01.2000 Bibliothek ACS.LIB ˜ Nachgezogene Korrektur fÅr V2.32 (analog zu V3.0.0): Die Funktion Af_readdir - und damit auch Af_first und Af_next - funktionierte nicht korrekt, wenn Dxreaddir und Dreaddirr (MagiC bzw. MiNT) nicht vorhanden sind und intern Fsfirst/Fsnext verwendet wurde. Die Dateinamen wurden mit "*.*" aufgeblÑht: Laufwerk:\ORDNER1\...\*.*\DATEI.XYZ Das Problem ist nun behoben! 8.5 énderungen Version V2.31 auf V2.32 ======================================= Hier sind die énderungen und Erweiterungen von V2.31 zur V2.32 in umgekehrter chronologischer Reihenfolge aufgelistet. Zwei Probleme existieren noch (siehe "ToDo-Liste"): ACSpro hat noch Schwierigkeiten mit mehr als 256 Farben und mit einem proportionalen Systemzeichensatz. Beides sind etwas aufwendigere Korrekturen, die ich aus diesem Grunde nach hinten verschoben habe. énderungen an den C-Bibliotheken betreffen stets auch die Pascal- Bibliothek. Von Bugfixes und Erweiterungen in den Bibliotheken hat stets auch der GUI-Editor profitiert, da dieser ja mittels ACSpro entwickelt wurde. Stand der Liste ist der 09.04.1999. 09.04.1999 ACSpro-GUI-Editor ˜ Im Fenster-Editor konnten die Grenzen zwischen den verschiedenen Fenterelementen verschwinden. Bei kleinerem Rahmen stand unter MultiTOS kein Text mehr in den Elementen. Die gesamte Darstellung der Fensterelemente ist nun vîllig Åberarbeitet worden. 09.04.1999 Bibliothek ACS.LIB & ACS_LOAD.O ˜ Die Modul-Schnittstelle enthÑlt nun auch alle neuen Funktionen. Sie ist abwÑrtskompatibel erweitert und optimiert worden. 09.04.1999 Bibliothek ACS.LIB ˜ Interne Optimierungen in der Event-Schleife und beim Draggen der Auswahlliste. 01.04.1999 Bibliothek ACSPLUS.LIB ˜ Der Desktop PUR_DESK hat unter gewissen UmstÑnden die internen Flags "verpfuscht". Damit ist das Flag Smart- Redraw wieder ausgeschaltet worden. Ein bedauerliches Versehen, welches nun korrigiert ist. 29.03.1999 Bibliothek ACS.LIB & GUI-Editor ˜ Das Backdropping von angemeldeten Fenstern wird nun automatisch erledigt, die entsprechenden Fenster mÅssen im GUI-Editor mit Backdrop-Element angemeldet sein. Bei Systemen ohne Backdrop-Funktion werden die Fenster automatisch ohne dieses Fensterelement angelegt. Bei modalen Fenster-Dialogen wird bei angemeldetem Backdrop das Fenster natÅrlich nicht in den Hintergrund gelegt (Ich suche noch nach einer Mîglichkeit, bei modalen Fenstern nicht das Fenster, sondern die Anwendung in den Hintergrund zu bringen.). Bei Fenster, die den Backdrop-Button nicht angemeldet haben, wird der Button unter MagiC hinzugefÅgt und von MagiC bedient. In diesem Fall kann ein modaler Fenster- Dialog in den Hintergrund geklickt werden. Bevor allerdings ein anderes Fenster getoppt werden kann, wird automatisch wieder der modale Fenster-Dialog nach vorne gebracht - ein unschînes Flackern ist die Folge. In der Version 3.0 wird es hier eine Erweiterung der Awindow-Struktur geben, in der auch das Backdropping berÅcksichtigt ist! Es ist dringendst anzuraten, die Backdrop-Komponente fÅr alle Fenster anzumelden, da dann ACSpro bzw. die Anwendung die Kontrolle Åber das Verhalten beim Backdrop hat. 27.03.1999 Bibliothek ACS.LIB ˜ Die ACSpro-eigenen Checkbox- und Radio-Button-Userdefs wurden vom Aussehen her an die Checkbox- und Radio- Button-Objekte von MagiC 6 angepaût. Das Aussehen der Userdefs entspricht nun sowohl im 3D-Modus als auch im 2D-Modus genau den MagiC-Objekten. Bei mehr als 256 Farben gibt es jedoch leider immer noch Probleme mit den Chechbox- und Radio-Buttons. 26.03.1999 Bibliothek ACS.LIB ˜ Ein kleiner Bug war noch in Af_readdir: die Root- Verzeichnisse wurden nicht korrekt behandelt (ein '\' zuviel hinten abgeschnitten). Das ist nun behoben. 24.03.1999 Bibliothek ACS.LIB ˜ Der Vergleich der Dateiextension beim Laden der (Autostart-)Module wurde intern von strcmp auf die Funktion Ast_icmp umgestellt, damit spielt die Groû-/ Kleinschreibung der Extension beim Laden der Module keine Rolle mehr! Das Laden von Modulen sollte nun auch auf casesensitiven Systemen (MiNT mit MinixFS) funktionieren. 19.03.1999 Bibliothek ACS.LIB ˜ Die Funktion Af_readdir zum Einlesen eines kompletten Verzeichnisinhaltes wurde komplett neu programmiert und optimiert. Sie benutzt nun nicht mehr die beiden archaischen Funktionen Af_first und Af_next und sollte gegenÅber diesen beiden auch bevorzugt werden! ˜ Die Funktionen Af_first und Af_next wurden komplett neu programmiert und nutzen jetzt die Funktion Af_readdir. Hinweis: Af_first und Af_next sind nur zu KompatibilitÑtszwecken noch vorhanden und werden wahrscheinlich (wenn sich kein zu groûer Widerspruch regt ;-) in einer der nÑchsten Versionen wegfallen. 14.02.1999 Bibliothek ACS.LIB ˜ Die UnterstÅtzung von Konfigurationsdateien im ASCII- Format wurde implementiert - der Datentyp UConfig mit einigen Funktionen zur Bearbeitung. Diese ASCII-Dateien besitzen einen Aufbau analog zu den bekannten INI-Dateien in der Windows-Welt. Ab der Version 2.4 von ACSpro werden diese von mir Konfigurations-Strings (oder Config- Strings, Cfg-Strings) genannten Konfigurationsmîglichkeiten vollkommen transparent in ACSpro integriert sein und vom GUI-Editor mit den zugehîrigen Initialisierungsdaten versehen werden kînnen. Noch ist dies nicht der Fall, dafÅr mÅûte ich das Format der *.ACS-Dateien inkompatibel Ñndern. Das wird erst in V2.4 (incl. automatischer Konversion natÅrlich!) geschehen. 01.02.1999 Bibliothek ACS.LIB ˜ Es wurden einige nÅtzliche Funktionen fÅr den Umgang mit Strings implementiert. Diese sind: Ach_tolower Buchstaben in Kleinbuchstaben wandeln - Umlaute werden korrekt berÅcksichtigt Ach_toupper Buchstaben in Groûbuchstaben wandeln - Umlaute werden korrekt berÅcksichtigt Ach_isWhite Zeichen auf "Blank" (Leerzeichen, Tabulator, Carriage-Return, Line-Feed) ÅberprÅfen Ast_cmp Zwei Strings vergleichen, Groû-/ Kleinschreibung wird nicht berÅcksichtigt, die Umlaute werden korrekt behandelt Ast_icmp Zwei Strings vergleichen, Groû-/ Kleinschreibung wird berÅcksichtigt, die Umlaute werden korrekt behandelt Ast_isEmpty PrÅfen, ob ein String nur Blanks (bestimmt durch Ach_isWhite) enthÑlt, also eigentlich "leer" ist Ast_add Strings hintereinanderhÑngen und auf bestimmte LÑnge mit Leerzeichen auffÅllen Ast_adl String linksbÅndig mit Leerzeichen auffÅllen Ast_adr String rechtsbÅndig mit Leerzeichen auffÅllen Ast_adc String zentriert mit Leerzeichen auffÅllen Ast_filter "Nicht erlaubte" Zeichen aus String herausnehmen Ast_count HÑufigkeit von Zeichen im String zÑhlen Ast_fcmp Dateinamen vergleichen, der erste darf die Åblichen Wildcards '*' und '?' enthalten (Der zweite Dateiname darf keine Wildcards enthalten, evtl. werde ich diese aber doch noch einbauen, 'mal sehen... ;-)) 31.01.1999 Bibliothek ACS.LIB ˜ Die Service-Funktionen der unsortierten, linearen Liste ULinListe sind nun nur noch Åber die Zeiger der Struktur ULinListe verfÅgbar. Sie sind dem direkten Zugriff durch die Realisierung als static-Funktionen verborgen worden. Dies schÅtzt vor fÑlschlichem Gebrauch der Funktionen und schÅtzt einmal entwickelten Code vor Arbeiten an der Liste und den Service-Funktionen. 28.01.1999 Bibliothek ACS.LIB ˜ Die Funktion Ast_ltrim wurde implementiert. Sie entfernt fÅhrende Leerzeichen, d.h. entfernt Leerzeichen links vom "eigentlichen String". ˜ Die Funktion Ast_rtrim entfernt analog abschlieûende Leerzeichen, d.h. Leerzeichen, d.h. entfernt Leerzeichen rechts vom "eigentlichen String". ˜ Die Funktion Ast_alltrim ist die Kombination der beiden Funktionen Ast_ltrim und Ast_rtrim und entfernt fÅhrende und abschlieûende Leerzeichen eines Strings. 21.01.1999 Bibliothek ACS.LIB ˜ Das "Shaden" der Fenster unter WINX und MagiC funktioniert nun. Hier gab es Fehler mit den Maus-Formen. War z.B. im obersten Fenster ein editierbares Objekt, so wurde die Maus-Form auch dann noch auf den "Cursor" gesetzt, wenn das Fenster unter MagiC per Doppelklick zusammengeklappt wurde. ACSpro kann nun mit dem Shaded-Zustand umgehen. Die Meldungen WM_SHADED und WM_UNSHADED werden ausgewertet. Der neue Fenster-Zustand AWS_SHADED gibt Auskunft darÅber, ob das Fenster zusammengeklappt wurde. Ferner werden dem Fenster die (neuen) Nachrichten AS_SHADED und AS_UNSHADED gesandt, um es davon zu informieren. ˜ Das Flag AB_SMARTREDRAW wird nun beim Initialisieren gesetzt. In ACSinit0 oder durch das Modul Ab_Cfg kann es wieder abgeschaltet werden. Unter MagiC (MagiCMac, MagiCPC) und N.AES werden so Redraw-Fehler vermieden, da hier meist das sog. Smart-Redraw aktiviert ist. Unter MagiC kînnte zwar abgefragt werden, ob es eingeschaltet ist, aber diese Lîsung ist auf MagiC beschrÑnkt. In Zukunft wird u.a. das Konfigurieren der Flags wesentlich einfacher gestaltet, ich bin bereits am tÅfteln und programmieren... ;-) 21.01.1999 ACSpro-GUI-Editor ˜ Optimierung: Der GUI-Editor hatte beim Start Einstellungen gesetzt, die beim Start bereits von den Routinen der ACS.LIB durchgefÅhrt wurden. 19.01.1999 Bibliotheken ACS.LIB und ACSPLUS.LIB, ACSpro-GUI-Editor ˜ Die Optik der Dialoge und Fenster wurde etwas Åberarbeitet und vereinheitlicht. Dies betrifft besonders die als "Untergrund" eingesetzten 3D-Buttons, die nun ein durchgÑngigeres Aussehen haben. 15.01.1999 Der ACSpro-GUI-Editor ˜ Der GUI-Editor besitzt nun in der freigeschalteten Version einen eigenen Info-Dialog. Dieser wird per Awi_doform dargestellt. Durch Weiterverzweigen in Unterdialoge kann die Versionsnummer sowie Kurz- Informationen zum Update bzw. Upgrade - u.a. die Stellen zum Download - angezeigt werden. 15.01.1999 Bibliothek ACS.LIB ˜ Es wurde die neue Funktion Awi_doform implementiert. Die Funktion verwendet Awi_dialog. Falls kein Fenster erstellt werden kann, wird automatisch A_dialog verwendet. Das verwendete Fenster wird ohne Fuller und Sizer dargestellt. Die Scrollbalken fÅr vertikales und horizontales Scrollen werden nur dann verwendet, wenn der Dialog nicht komplett angezeigt werden kann. 02.01.1999 Bibliothek ACS.LIB ˜ ACSpro verwendet nun die NKCC-Bibliothek (von Harald Siegmund) in der Version 2.94 vom 21.09.1998. 22.10.1998 Bibliothek ACSPLUS.LIB ˜ Der pure Desktop sucht und schreibt seine Konfigurationsdatei nun mit Kleinbuchstaben, d.h. sie wird als "pdesk.cfg" gesucht. Damit sollte der pure Desktop seine Konfigurationsdatei auch unter casesensitiven Dateisystemen (unter MiNT auf MinixFS) finden. 11.10.1998 Bibliothek ACS.LIB ˜ Neue String-Funktion Ast_toupper und Ast_tolower zur Konversion von Strings implementiert. 8.6 énderungen Version V2.3 auf V2.31 ====================================== Hier sind die énderungen und Erweiterungen von V2.3 zur V2.31 in umgekehrter chronologischer Reihenfolge aufgelistet. Momentan sieht es noch nach recht wenig aus, doch muû hier auch ein gutes StÅck Einarbeitungszeit in die Sourcen von ACSpro einkalkuliert werden. Da der Atari-Sektor recht klein geworden ist, muû ich anderweitig Geld verdienen, so daû ACSpro - leider - nur mein Hobby ist. Hier sind also die énderungen! énderungen an den C-Bibliotheken betreffen stets auch die Pascal-Bibliothek. Von Bugfixes und Erweiterungen in den Bibliotheken hat stets auch der GUI-Editor profitiert, da dieser ja mittels ACSpro entwickelt wurde. Stand der Liste ist der 30.09.1998. 30.09.1998 Bibliothek ACS.LIB ˜ Die neue Funktion Awi_diaabort kann als Click-Routine in einem der modalen Fensterdialogen eingesetzt werden. Sie setzt das Flag ACSblk->dia_abort auf TRUE und tut sonst nichts weiter. Auch kurze Meldungen, die in einem Fenster mit einem OK-Button dargestellt werden, kînnen diese Routine einsetzen. Sie wird beispielsweise in der Info-Box eingesetzt, die jedes mittels ACSpro erstellte Programm defaultmÑûig anzeigt - sofern die in ACSblk->ACSaboutme eingetragene Routine nicht Åberschrieben wird. Der hier verwendete 3D-Button im Hintergrund hat das Flag TOUCHEXIT gesetzt und als Click-Routine Awi_diaabort eingetragen bekommen. 31.08.1998 GUI-Editor ˜ Die Text-Eingabe im GUI-Editor zur Eingabe von Texten/freien Strings nimmt nun auch Sonderzeichen (speziell <32) an. Damit sind z.B. das Ordner-Symbol sowie die Pfeil-Symbole mîglich. (fÅr énderungen an MenÅ-EintrÑgen sehr nÅtzlich ;-) 28.08.1998 Bibliothek ACS.LIB ˜ Die Routine Awi_topped beachtet fÅr modale Fenster- Dialoge nun die Flags AB_CENTERDIALOG und AB_ACUSTIC. Damit verhalten sich modale Fenster-Dialoge (Awi_dialog) so wie die modalen Dialoge (A_dialog): Ein Klick neben den Dialog bringt bei gelîschtem AB_CENTERDIALOG den Dialog an die Mausposititon, bei gesetztem AB_CENTERDIALOG wird ein "Pling" Bconin(2,7) ausgegeben, falls auch AB_ACUSTIC gesetzt ist, 27.08.1998 Bibliothek ACS.LIB ˜ Die unsortierte, lineare und doppelt verkettete Liste ULinListe mit einigen netten Funktionen ist dazugekommen. Das Objekt hat keine visuelle Komponente (wozu auch) und stellt die FunktionalitÑt einer dynamischen, linearen, unsortierten Liste zur VerfÅgung. Die Liste verwaltet Zeiger auf Daten (in Pure- C: void *, in Pure-Pascal: Pointer). ZusÑtzlich sind einige nÅtzliche Funktionen enthalten, die man im Zusammenhang mit linearen Listen immer wieder einmal benîtigt. 21.08.1998 Bibliothek ACS.LIB ˜ Die Funktion Awi_keys wurde in Awi_keysend umbenannt. ˜ Es gibt eine neue Routine Awi_keys, die den RÅckgabewert -2 nicht mehr liefert. Da intern Awi_keysend aufgerufen wird, stellt Awi_keys die gewohnte FunktionalitÑt zur VerfÅgung. Allerdings werden TastendrÅcke nicht mehr an den AV-Server weitergemeldet. Wer dies unbedingt mîchte, sollte auf Awi_keysend zurÅckgreifen. ˜ Awi_nokey liefert nun stets den RÅckgabewert -1 (zuvor war es -2) und leitet damit die TastendrÅcke nicht mehr an den AV-Server weiter. ˜ Die neue Routine Awi_sendkey liefert nun stets den RÅckgabewert -2 und veranlaût damit, daû TastendrÅcke an den AV-Server weitergeleitet werden. Es gibt damit vier Key-Routinen fÅr Fenster: Awi_keys, Awi_keysend, Awi_sendkey und Awi_nokey. Kurz zur Namensgebung der vier Routinen: Awi_keys Key auswerten Awi_keysend Zuerst Key auswerten, dann ggf. weitersenden Awi_sendkey Sende den Key sofort weiter Awi_nokey Key "schlucken" und ignorieren ˜ Redraw-Probleme in der Toolbar beim Smart-Redraw unter MagiC auf "drastische" Weise behoben (ggf. Neuzeichnen des Fensters). Zuvor blieben evtl. Streifen des Toolbar- Randes stehen. 02.08.1998 Bibliothek ACS.LIB ˜ Die Funktion Dxreaddir aus ACS.LIB herausgenommen. Der ACSpro-GUI-Editor verwendet nun die Bibliothek ACSTOS.LIB. Dort sind alle BIOS-, XBIOS- und GEMDOS- Aufrufe abgelegt, die ich im Profibuch und im Compendium gefunden habe. Die MagiC-spezifischen Funktionen fehlen noch, werden aber noch nachgerÅstet! ˜ Af_first und Af_next sowie Af_readdir lieferten etwas dÅrftige Informationen Åber die Dateien, es war gerade einmal der Name. Da innerhalb dieser Funktionen die Daten sowieso zur VerfÅgung stehen, werden nun alle interessanten Daten der gefundenen Dateien geliefert. Hierzu wurde die Struktur A_FileList um eine Komponente vom Datentyp XATTR erweitert, in der die Dateiattribute, Grîûe, etc. zu finden sind. Die Werte werden per Dxreaddir bzw. Dreaddir/Fxattr bestimmt. Falls diese Funktionen nicht zur VerfÅgung stehen (z.B. unter TOS), werden die Daten der DTA nach den Aufrufen von Fsfirst/Fsnext in diese Struktur kopiert. Die XATTR-Struktur wurde zwar hinten an A_FileList angefÅgt, da jedoch Af_first und Af_next nun einen Zeiger auf eine A_FileList-Struktur oder NULL erwarten, um dort diese Daten einzutragen, mÅûten alte Module trotzdem neu compiliert werden, sorry! 31.07.1998 Bibliothek ACS.LIB ˜ Bug behoben, durch den ab ca. dem 100-ten Eintrag eines Popups keine Subpopups mehr geîffnet wurden. ˜ Fehlverhalten von Ame_strpopup korrigiert. Es wurde evtl. ein falscher Teilstring geliefert. Beim Popup-String "Test 1|Test 2|Test" wurde beim Klick auf "Test" der Teilstring "Test 1|Test 2|Test" geliefert, also die erste Fundstelle des gewÑhlten Teilstrings. Jetzt wird - wie es sein soll - "Test" geliefert. 8.7 énderungen bis zur Version V2.3 ==================================== Dies sind Korrekturen und Erweiterungen, die noch von Oliver Michalak gemacht wurden. Hier eine Auflistung der Korrekturen innerhalb diverser Module von ACSpro. Das Datum der énderung und das betroffene Modul werden aufgelistet. Korrekturen an ACS.LIB oder ACSPLUS.LIB betreffen immer auch die Pascal-Library. ˜ 20.8.96 ACSPLUS.LIB: Der EDITOR verkraftet nun eine andere Toolbar. Auûerdem kann sein Dateipfad per Nachricht ermittelt werden. Die Cursorposition oder Blockausmaûe werden angezeigt. ˜ 12.8.96 purer Desktop: Unter SingleTOS wird nun ein blau-gemusterter Hintergrund angemeldet. Auûerdem beendet sich der Desktop nur noch, wenn 'appexit' auf TRUE steht. ˜ 6.8.96 ACS.LIB: Das letzte nicht-3-dimensionale Objekt A_cycle enthÑlt nun Paramater, die eine 3D-Optik ermîglichen, dazu wurde ein neuer A_cycle-Editor entworfen. Dementsprechend wird das Popup wenn mîglich nun ebenfalls 3-dimensional dargestellt. Dies hat unmittelbare Auswirkungen auf Ame_strpopup dessen sich die Click-Routine von Aus_cycle bedient. Weiterhin kann das Cycle- Zeichen nun frei gewÑhlt werden. ACSPLUS.LIB: Es wurde die neue Fensterklasse LIST-Window implementiert. Diese verwaltet dynamisch viele, frei definierbare Datentypen einer festen Grîûe. öber Callback- Routinen kann der Erzeuger die einzelnen Datenstrukturen editieren, einsortieren, per Drag&Drop bedienen lassen u.v.a.m. - inklusive von Blockfunktionen. Ungeîffnet erlaubt das Fenster Åber einige Nachrichten, Elemente aus der intern verwalteten Liste zu extrahieren, neue Elemente hinzuzufÅgen, etc. Davon profitiert zunÑchst der EDITOR, der nun eine freie Funktionstastenbelegung anbietet. Auf bis zu 40 F-Tasten kann nun ein Text gelegt werden, der intuitiv per Listen- Fenster zu verarbeiten ist. Hinzu kamen weitere Feinheiten: Control-BS/-DEL beachtet nun die Worttrenner SHIFT-BS/-DEL lîscht bis zum Zeilenanfang/- ende freie Online-Hilfe manuelle Optionen-Sicherung Cursorpositionsanzeige Gleichzeitig wurde der Fehler eliminiert, das in einem einzeiligen Text per Aed_selall nichts selektiert wurde. Aufgrund interner Umstellungen ist auch die A_editor- Nachricht AUO_EDPUTINFO weggefallen. DafÅr kann der EDITOR per AS_EDGETFNAME gefragt werden, wie der Dateiname fÅr den aktuellen Text lautet. ˜ 29.7.96 ACS-Doku: Die Dokumentation wurde um die letzten Erweiterungen ergÑnzt -zusÑtzlich sind nun die Strukturen der ACS-PLUS- Library dokumentiert. ACS.LIB: Bei Popups konnte die Maus busy bleiben - dieser Fehler ist behoben. ZusÑtzlich gibt es nun analog zu der Popup- Bedienung Nachrichten wÑhrend der MenÅbedienung. ˜ 22.7.96 ACS-Builder: Ganz selten wurden Prototypen in der Referenzliste angelegt, wo kein ersichtlicher Bezug zu existierte (vor allem bei A_arrows). ˜ 21.7.96 ACS-Builder: Tasten lernen funktionierte nicht sauber. ZusÑtzlich konnte man nicht korrekt Objekte verschieben. Schlieûlich konnten manche den Hinweistext im Informationsdialog der unregistrierten Version nicht lesen. ACS.LIB: Fehlerhafte Auswertung der Indizees bei Sub-Popups mit Tastatursteuerung. ˜ 17.7.96 ACS.LIB: In Awi_dialog wurde nach dem Setzen von dia_abort nicht ein eventuell gedrÅckter Button-Index zurÅckgegeben. Zudem wurde ein Edit-Feld- Wechsel per Maus nicht von der Nachricht AS_FOCUSCHG begleitet. ˜ 11.7.96 ACS-Builder: Es konnte kurzfristig kein Objekt kopiert (wohl aber dupliziert) werden. Im Icon-Editor hat der Farbpinsel bei mehr als 16 Farben die aktuelle Farbe nicht dargestellt. OBJECTs kînnen nun auch mit allen Komponenten dupliziert werden, so daû Teile des OBJECTs nicht mehr referenziert werden. ˜ 1.7.96 ACSpro hat einen neuen Status. ˜ 30.6.96 ACS.LIB: Ein Objektbaum mit defautable-Objekten, der kein Default enthÑlt, konnte bei Control-Tab ACS zum abstÅrzen bringen. ˜ 21.6.96 ACS.LIB: In einigen (N)VDI-Versionen erscheint die Textselektion im A_boxed- Objekt zumindest bei der Verwendung von 256 Farben als schwarzes Rechteck, ohne daû der darunter liegende Text invers dargestellt wird. Trotz einiger Versuche, diesen Fehler zu umschiffen, habe ich ad hoc keine Lîsung gefunden. ˜ 13.6.96 ACS.LIB: Es konnte kurzfristig per MultiDateiAuswahl nicht mehr als eine Datei eingelesen werden. Ist AB_LAZYEVAL gesetzt, wird in Ash_prog nicht mehr der Standardpfad selber gesetzt. Auûerdem konnte es in Awi_alert vorkommen, daû die Maus dauerhaft als Biene angezeigt wurde. ˜ 3.6.96 ACS-Builder: Die Minimal- und Maximalrechtecke beim VerÑndern der Objektgrîûe konnten insbesondere beim Popup-Editor mit Sub-Popups merkwÅrdige Ausmaûe annehmen. öbrigens: Mit der rechten Maustaste kann man das "Aufziehen" abbrechen. purer Desktop: Wenn sich die Anordnung der Fenstericons im Module-Fenster Ñnderte, wurden die Stati der Icons nicht mitverschoben, woduch plîtzlich Icons nicht mehr als Ghost erschienen oder umgekehrt. ˜ 30.5.96 ACS-Builder: FÅr Pascal wurde eine fehlerhafte OberflÑche exportiert (kein ob_len). ˜ 28.5.96 ACS-Builder: Eine Tastendruck im Icon-Editor fÅhrte zum Absturz. ˜ 26.5.96 ACS-Builder: Einstellungen um SchlÅsselregistrierung erweitert. ˜ 22.5.96 purer Desktop: Ein Icon-Fenster konnte nicht per MenÅpunkt "ôffnen" geîffnet werden. ˜ 16.5.96 ACS.LIB: Ein Fehler im MagiCMac-OS lief darauf hinaus, daû ein ikonifiziertes Fenster ohne Anmeldung wieder normal dargestellt wurde. ACS versucht dies nun abzufangen. Bei A_boxed wurde der Cursor nicht immer in den sichtbaren Bereich verschoben. ˜ 13.5.96 ACS.LIB: A_boxed-Click-Routine fÅr Fenster mit Slidern korrigiert. Es versteht nun diverse Datum- und Zeitformate. Peinliche Debug-Printf-Ausgaben unterbunden. ˜ 9.5.96 ACS.PAS: Korrekturen in einigen Definitionen. ˜ 8.5.96 ACS.LIB: Farbicons wurden unter MagiC nicht automatisch farbig dargestellt, entweder man setzt AB_NOTRANSICON manuell oder nimmt die neue Library.