Hier sind die Änderungen und Erweiterungen von V2.32 zur
— noch nicht veröffentlichten — V3.0.0 in umgekehrter
chronologischer Reihenfolge aufgelistet.
Stand der Liste ist der 25. März 2008. Eine i.a. aktuellere
Liste kann über den Hilfe-Dämon der Maus LL abgerufen werden.
10.02.2008 | ACS.LIB
- 16-Bit-Grenze bei Ast_ncmp und Ast_incmp aufgehoben. Der
Parameter 'len' wird nun als 32-Bit-Wert übergeben und verwendet.
Alle Module, die bereits für ACS 3.0.0 compiliert wurden,
müssen neu compiliert und gelinkt werden - aber das das sollten
eigentlich die wenigsten sein.
|
29.01.2008 | ACS.LIB
Die Nachrichten AS_EXPORTFILE und AS_IMPORTFILE sind nun analog
AS_SAVEFILE als Standard-Nachricht für das Auslösen eines
Exportes in bzw. eines Importes aus einer Datei definiert worden. Eine
Unterstützung seitens der Funktion Awi_service ist nicht
vorgesehen. Die Nachricht muss also wie AS_SAVEFILE auch in eigenen
Service-Funktionen implementiert werden.
|
24.12.2007 | ACS.LIB, GUI-Editor
- Anpassung der Jahreszahl-Daten im Copyright auf 2008.
|
29.11.2007 | GUI-Editor
- Durch einen kleinen Bug konnte der GUI-Editor keine
neue ACS-Datei mehr anlegen. Dies ist nun behoben.
|
03.09.2007 | ACS.LIB
- Korrektur innerhalb Acfg_load beim Laden von
Konfigurations-Dateien größer als 64 kByte.
|
08.03.2007 | ACSMOD.LIB, ACSMOD01.LIB, ACS_LOAD.O
- Die neuen Funktionen Abp_createFromIconData und
Abp_createFromIconMask stehen auch in der Mpdul-Schnittstelle zur
Verfügung.
|
07.03.2007 | ACS.LIB
- Die Funktion Abp_create wurde um einen weiteren Parameter
erweitert, in dem die Anzahl der Planes angegeben wird - der Wert -1
signalisiert die aktuelle Auflösung. Sorry, es müssen alle
Module, die für ACS 3.0.0 erstellt wurden, neu compiliert werden.
Für die Module, die mit früheren ACS-Versionen erstellt
wurden, wird eine entsprechende Kompatibilitätsfunktion
verwendet.
- Korrektur eines Absturzes in der ACS.LIB bei der
ACS-Initialisierung der Check-/Radiobuttons. Es handelte sich um einen
Fehler bei Speicherzugriffen, wenn ACS bei mehr als 256 Farben
läuft. Der Crash trat bei mir allerdings nur unter MacARAnyM,
MiNT und XaAES bei mehr als 256 Farben auf, unter MagiCMacX lief alles
einwandfrei.
- Die neuen Funktionen Abp_createFromIconData erzeugt analog
Abp_create eine Backplane in Icon-Größe in der aktuellen
Auflösung, die die am besten passenden Bild-Daten des Icons
enthält.
- Die neuen Funktionen Abp_createFromIconMask erzeugt analog
Abp_create eine Monochrom-Backplane in Icon-Größe, die die
Maske des icons enthält. Bei den Nicht-Register Auflösungen
(mehr als 256 Farben) wird die Maske invertiert, da hier die Farbwerte
(0) codiert werden müssen anstelle des Farbregisters für
Schwarz (1).
|
26.12.2006 | ACS.LIB, GUI-Editor
- Die Copyright-Informationen wurden angepaßt.
|
14.09.2006 | ACS.LIB
- Korrektur der Standard-Funktion für ULinList.deleteFor,
falls keine Lösch-Funktion ULinList.freeElem eingetragen wurde.
Bislang gab es hier einen NULL-Pointer-Zugriff!
|
18.10.2005 | ACS.LIB
- ACSpro unterstützt nun auch das
XMessage-Protokoll, bei dem keine Zeiger auf globale daten wie Strings
ausgetauscht werden, sondern die Daten in einer überlangen
Message verpackt werden. Bei Antwort-Nachrichten, die nur durch einen
Zeiger eindeutig der Ursprungsnachricht zugeordnet werden können,
werden keine Rückmeldungen zurückgeschickt — es gibt
ja keinen Zeiger auf Daten, der sowohl für den Empfänger als
auch den Sender gültig wäre, da die Daten zusammen mit der
XMessage-Nachricht gesendet wurden.
|
11.07.2005 | ACSMOD.LIB, ACSMOD01.LIB, ACS_LOAD.O
- Die neue Funktion Awi_reposed steht über die
Modulschnittstelle zur Verfügung. Ferner werden Aufrufe von
Awi_sized und Awi_moved von Modulen auf Awi_reposed sowohl umgesetzt.
|
11.07.2005 | ACS.LIB
- Die neue Funktion Awi_reposed wurde als Kombination von
Awi_moved und Awi_sized implementiert. Die Funktionen Awi_sized und
Awi_moved sind nur noch zu Kompatibilitätszwecken vorhanden. Sie
sollten nicht mehr direkt verwendet werden. Sie rufen sofort die neue
Funktion Awi_reposed auf. Die Zeiger Awindow.sized und Awindow.moved
wurden aus Kompatibilitätsgründen beibehalten. Ein weiterer
Zeiger Awindow.reposed ist bei der nächsten größeren
Änderung, bei der Struktur-Änderungen auftreten werden,
geplant.
- Die Nachricht WM_REPOSED, die XaAES als Kombination von
WM_MOVED und WM_SIZED verschicken kann, wird nun voll
unterstützt. Es wird die Funktion aus Awindow.sized aufgerufen.
|
13.03.2005 | GUI-Editor
- Der GUI-Editor exportiert nun die Texte aller Sprachen
in die Dateien mit der Endung ".ST0" bis ".ST3".
Damit kann schnell heraus gefunden werden, welche Übersetzungen
noch notwendig sind.
|
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
— sowohl für den GUI-Editor als auch für die
Bibliotheken — 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 Anzahl
der 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-Konversion
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<n>" hervorgeht - <n> 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:
- 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.).
- Falls kein Dead-Key eingegeben wurde oder dieser gesperrt sein
sollte, so wird das Zeichen normal weitergereicht.
- 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.
- 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 = " <Neuer 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
- 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.
- 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.
- 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 | ACS.LIB, 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) 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:
- 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...
- 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:
- 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...
- 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.
- 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
|
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).
|
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:
- 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.
- Bei einem kurzen Klick wird die BubbleGEM-Hilfe aufgerufen,
andernfalls das Kontext-Menü.
- Falls keine BubbleGEM-Hilfe verfügbar war, wird das
Kontext-Menü verwendet.
- 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:
- Es sind zwei Funktionszeiger hinzugekommen, die für
Iconify benötigt werden. Die Default-Routinen sind Awi_iconify
und Awi_uniconify.
- 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.
- 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:
- Ein neuer String enthält den ggf. zu verwendenden Text
für eine BubbleGEM-Hilfe.
- 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.
|