|
ACSpro
History & ToDo-Liste
Hier habe ich alle bislang geplanten Korrekturen und Erweiterungen
in ihrer bisher bewerteten Priorität (Je wichtiger ein Punkt
ist, umso weiter steht er oben) aufgelistet.
Stand der Liste ist der 25. März 2008. Eine i.a. aktuellere
Liste kann über den Hilfe-Dämon der Maus LL abgerufen werden.
- ACSpro und ACSpro-"Erzeugnisse"
sollen auch unter Memory Protection laufen. (U. Kaiser)
ACSpro sollte hier eigentlich laufen, bislang gab es bei
den Tests noch keine Probleme unter MultiTOS. Ich bitte hier um
weitere Tests unter N.AES und Milan-MultiOS (die habe ich beide nicht
zur Verfügung) sowie Rückmeldung der Ergebnisse - Danke!
- Transparente und komfortable Unterstützung bereits im
ACSpro-GUI-Editor (soweit möglich und sinnvoll)
und in den Bibliotheken von allen modernen Protokolle wie z.B. AV-
& XAcc-Protokoll (komplett, nicht nur rudimentär wie bisher),
OLGA, GEMScript, ST-Guide, PureC-Hilfe-Protokoll, DHST-Protokoll,
SE-Protokoll, Menü-Protokoll, SSP, etc. (M. Elsässer)
Ein Großteil der genannten Protokolle wird bereits passiv
von ACSpro unterstützt, d.h. die entsprechenden
Nachrichten werden empfangen und verarbeitet. Die aktive
Unterstützung ist in Vorbereitung und wird in einer der Versionen
nach der V3.0.0 realisiert werden.
- Als Compiler soll auch der GCC verwendet werden können.
(U. Kaiser)
Eine Portierung auf GNU-C ist mit der Version 3.0.0 geplant und in
Arbeit.
- Bei mehr als 256 Farben erhält man entweder
schwarz/weiß Icons oder Pixelmüll. (H. Achilles)
- Wenn ACSpro-eigene UserDefs über den allgemeinen
UserDef-Editor mit einer anderen Service-Routine versehen werden, wird
diese wieder durch die Standard-Routine ersetzt, wenn man den
Userdef-Objekt-Editor mit 'OK' verläßt. Eine eigene
Service-Routine sollte vom Userdef-Objekt-Editor erhalten bleiben oder
sogar darin eingetragen werden können!
- Das Backdropping wird bislang automatisch durch MagiC
(Backdrop des Fensters nicht angemeldet) bzw. durch ACSpro
(Backdrop des Fensters angemeldet) erledigt und ist nicht
beeinflußbar. (M. Elsässer)
In einer der nächsten Versionen wird die Struktur Awindow um
einen Zeiger für das Backdropping erweitert, so daß man
hier auch eigene Routinen hinterlegen kann.
- Die Nachricht WM_MOUSEWHEEL wird empfangen und durch Scrollen
des Fensters umgesetzt. Hier sollte ein optimiertes Scrollen erfolgen,
indem ggf. unter der Maus befindliche Objekte gescrollt werden
sollten.
Dies wird in einer der nächsten Versionen optimiert
unterstützt werden, d.h. daß bei Aktionen des Mausrades
Edit-Felder, Cycle-Buttons, Popups, etc. gescrollt werden.
- Eine Unterstützung der WDIALOG-Druckdialoge, des
(MagiC-)Font-Selectors und des (MagiC-)Fileselectors jeweils als
Fenster-Dialog und modaler Dialog sollte ACSpro in gewohntem
Komfort komplett zur Verfügung stellen.
Der (MagiC-)Fileselector sowie der (MagiC-)Font-Selector werden in
der Version 3.0.0 in vollem Umfang in allen möglichen (und
unmöglichen ;-) Varianten unterstützt. Der
WDIALOG-Druckdialog wird in Version 3.0.0 unterstützt, allerdings
kann der Druckdialog noch nicht durch eigene Objektbäume
erweitert werden. Das Einbinden eigener Objektbäume in den
Druckdialog wird in einer der nächsten Versionen enthalten sein.
- Die einzelnen Konfigurationsdateien, die es im Moment gibt,
sind zum großen Teil binär abgelegt.
Es ist geplant, alle Konfigurationsdateien durch entsprechende
Cfg-Strings zu ersetzen. Das Laden von anwendungseigenen Cfg-Strings
erfolgt bereits automatisch. Die Steuerung über die Struktur
CfgInfo in ACSconfig soll über den GUI-Editor im
Hauptmodul geschehen.
Alle Module sollen ihre Daten aus dieser einen Cfg-Datei laden.
Die Idee ist hierbei, pro ACS-Modul eine Cfg-Gruppe zu verwenden.
Daher sind die Gruppennamen, die mit "ACS-" beginnen,
für ACSpro reserviert! Erst wenn die modul-eigene Gruppe
nicht vorhanden ist, sollte das Modul auf eigene Cfg-Strings
zurückgreifen und diese in die Cfg-Strings der Anwendung
übertragen. Diese Übertragung wird von ACSpro
unterstützt werden, sobald die Cfg-Strings von allen ACS-Modulen
verwendet werden.
- Die vom GUI-Editor generierte Struktur Aconfig
enthält noch Dummy-Werte für die Komponenten CfgInfo und
basename.
Die hier abgelegten Werte sollen für das Hauptmodul ebenso
komfortabel im GUI-Editor eingegeben werden können, wie
die anderen Werte der Struktur.
- In die Struktur Aconfig sollten alle wichtigen
Initialisierungs-Daten aufgenommen werden — z.B. fehlt die
Angabe der freigeschalteten Dead-Keys, die nun neu hinzugekommen ist.
Alle diese Intialisierungs-Werte sollen vom GUI-Editor aus
verwaltet werden können.
- Nach der linearen unsortierten Liste fehlen noch so nette
Dinge wie die lineare sortierte Liste, Stack, Binärbäume,
AB-Bäume, Hashtables, etc.
- ACSpro und mittels ACSpro entwickelte
Anwendungen sollen problemlos unter MagiC 6 und N.AES mit jeweils
proportionalen AES-Font laufen. (U. Kaiser)
- Für Pure-Pascal-Output sollten die Forward-Deklarationen
ebenfalls ausgegeben werden. (K. Kroll)
- Der Icon-Editor sollte überarbeitet, am Besten komplett
neu geschrieben werden. Z.B. sollten bei 256 Farben auch die Icons
für 16, 4 und 2 Farben bearbeitet werden können...
- Die implementierten Cfg-Strings sollten nach Vorhandensein
eines Binärbaumes oder einer Hashtable umgestellt werden, um eine
wesentlich bessere Performance als mit der bisherigen linearen Suche
zu erzielen.
- Routinen zur Bearbeitung und Auswertung von Objektbäumen
wie z.B. Ausschnitte von Bäumen kopieren, Objekte im Baum
zählen etc. (H. Achilles)
- In ACSpro sollten auch Submenüs implementiert
werden. Derzeit sind ja leider nur Subpopups möglich. (D.
König)
- Um Eingaben möglichst sofort plausibilisieren zu
können, ist einiges an Programmieraufwand notwendig, besonders
wenn Eingabefelder voneinander abhängen. Hier soll ACSpro
einen Mechanismus bieten, der ohne großen Aufwand auch komplexe
Plausibilisierungen ermöglicht.
- Bessere Unterstützung der Mehrsprachigkeit! Bisher
muß jede ACS-Datei im ACSpro-GUI-Editor
geöffnet und auf die neue Sprache umgestellt werden. Nach einem
Generieren der Compiler-Sourcen muß erneut compiliert werden.
(M. Elsässer)
Hier wird ACSpro in Zukunft alle Sprach-Varianten
exportieren. Durch Compiler-Macros wird dann die gewünschte
eingebunden, man muß z.B. in Pure-C nur das passende
Sprach-Makro definieren. Wie dies allerdings in Pure Pascal
funktionieren wird, muß ich erst noch "erforschen"...
;-/
Als weitere Variante können die Strings natürlich aus
der Anwendung ausgelagert werden. Wie dann allerdings aus vielen
Modulen bestehende Anwendungen zu einer "Text-Ressource"
kommen, ist leider noch nicht ganz klar. Diese letzte Methode wird
favorisiert und in einer der Versionen nach V3.0.0 realisiert werden,
da hierdurch auch unabhängige Übersetzer Anwendungen in
andere Sprachen übersetzen können.
- Beim Kopieren von Objekten im GUI-Editor (Shift-Taste
beim Draggen gedrückt) werden abhängige Objekte (meist
Strings) nur referenziert. Durch zusätzliches Drücken der
Control-Taste werden diese dann auch kopiert. Diese momentane
Standard-Einstellung der ausschließlichen Referenzierung beim
Kopieren von Objekten im GUI-Editor sollte umgekehrt durch
Control aktivierbar sein, da die Referenzierung eher als Sonderfall
von Nutzen ist.
Im Normalfall zieht man ein z.B. Button-Objekt aus dem
Teile-Fenste und stellt die Größe, Farbe etc. ein. Wenn man
nun z.B. 10 von diesen Objekten benötigt, konnte man früher
die Anzahl von Kopien anlegen und danach die unterschiedlichen
Boxtexte eingeben. Nun jedoch muß dieser Arbeitsgang für
jedes einzelne Objekt erneut ausgeführt werden. Das ist ein
erheblicher Mehraufwand und spart auch nicht ein Byte an redundantem
Code. Völlig identische Objekte sind hingegen nur selten gefragt.
(D. König)
- Moderne AES können im Menü eine ansprechende
Trennlinie zeichnen. Diese sollte gegenüber der
ACSpro-Lösung eines UserDef vorgezogen werden. (U.
Kaiser)
In ACSpro 3.0.0 ist nun das Aussehen der Menüs an die
unter MagiC bei proportionalem Systemzeichensatz dargestellten
3D-Menüs angepaßt worden. Der 3D-Look der Menüs ist
allerdings unabhängig vom proportionalen Systemzeichensatz. Der
3D-Look der Menüs kann ebenso abgeschaltet werden.
- Im Sinne eines einheitlichen und damit wirklich
benutzerfreundlichen GUI sollte sich der Look von
ACSpro-Anwendungen unbedingt an den gängigen Look
anpassen. (U. Kaiser)
Dies sollte im Großen und Ganzen für magiC bereits
realisiert sein. Noch fehlende Punkte möchte ich natürlich
noch anpassen. ACSpro-Anwendungen sollten von der Optik her
wie andere moderne Anwendungen auch erscheinen — dies ist auch
unter älteren TOS-Versionen so.
Allerdings möchte ich optional die ACS-Userdefs in
entsprechende GEM-Objekte wandeln, falls diese zur Verfügung
stehen, z.B. sollten die Checkboxen in MagiC-Checkboxen umgewandelt
werden. Allerdings ist hier zunächst aufgrund der
ACS-Funktionalität über Service-Routinen noch konzeptionelle
Arbeit notwendig.
- ACSpro soll entweder die MT_AES.LIB oder ein eigenes
(optimiertes?) Multithreading-festes Binding verwenden. Ferner sind
komfortable Möglichkeiten für Threads nützlich. (H.
Achilles)
ACSpro enthält nun ein eigenes TOS- und GEM-Binding.
Das verwendete GEM-Binding ist allerdings noch nicht die für
ACSpro optimierte, multithreadingfeste Version.
- Das Cycle-Objekt liefert leider bei Aufruf von identischen
Text-Einträgen mittels AUO_CYGETINDEX immer nur den Index des
ersten vorkommenden Eintrags. Das ist nicht WYSIWYG. Wenn ich z.B. 10
mal "Test|" als String übergebe und auf den 10. Eintrag
klicke, darf nicht der Index 0 zurückgegeben werden. Hier
müßte der Such-Algorithmus die Position im Objektbaum
ermitteln und nicht die erste String-Position im Popupstring.
Ähnliches Fehlverhalten ist bei Subpopups zu bemängeln.
Vorerst muß man also darauf achten, daß keine identischen
Strings in den Popups vorkommen. Eine lästige Einschränkung.
(D. König)
- Die Funktion Ame_strpopup öffnet bei Übergabe des
Pointers chk das Popup mit der Maus über diesem
Popup-Objekt. Leider trifft das nicht zu, wenn das gewünschte
Objekt in einem Subpopup vorkommt. Die Routine könnte so
umprogrammiert werden, daß in diesem Fall die Subpopups
automatisch aufgeklappt werden und die Maus dann auch über diesem
gewünschten Objekt steht. Das sieht erheblich professioneller aus
und man muß sich nicht jedesmal mit der Maus zu diesem
"Ausgangspunkt" hindurchhangeln, wenn man innerhalb einer
"Gruppe" von Sub(subsub)popups etwas auswählen will.
(D. König)
Copyright © Martin Elsässer (E-Mailadressen)
Letzte Aktualisierung am 25. März 2008
|