Nach 5 Jahren Pause (KITT und die Zeitmaschine waren schuld) hab ich es nun endlich geschafft, wieder an SymbOS weiterzuarbeiten. Nachdem ich im Spätsommer zur Eingewöhnung eine neue App (Conways Game of Life) dafür programmiert hatte, geht's mit dem Betriebssystem wieder vorran. Irgendwie hatte ich mich früher immer an einem Multiline-Texteingabe-Widget für die GUI vorbeigemogelt. Dabei ist das eigentlich ein recht wichtiger Bestandteil, denn nur damit kann man mehrzeilige Texteingaben tätigen. In modernen Betriebssystemen sind diese Elemente nichts anderes als vollständige kleine Texteditoren, und sowas sollte in SymbOS eigentlich auch nicht fehlen. Der Grund, warum ich das solange nicht implementiert hatte, ist der, daß es eindeutig das umfangreichste GUI-Widget ist und somit auch am meisten Speicher kostet. Das mußte ich dadurch lösen, daß Teile des Desktop-Managers nun in die zweite 64K-Ram Bank verlagert werden. Da hier kein direkter und damit schneller Zugriff mehr auf Anwendungsdaten möglich ist, werden dort nur Routinen für Benutzerinteraktionen reingelegt (der User ist eh lahm ).
Wie dem auch sei, nach einem Monat Rumgecode gibt es schonmal einen Zwischenstand:
http://www.youtube.com/watch?v=JfeIJmwv7QM
Die meisten Funktionen sind nun implementiert:
- Auto-Wordwrapping (entweder am Fensterrand oder an einer definierbaren Position)
- unbegrenzte Zeilenlängen, korrekte Beachtung von Zeilenvorschüben
- Cursor-Navigation (CTRL+Pfeiltasten zum schnellen Springen zwischen Wörtern und Textabschnitten)
- Textmarkierung (SHIFT+Pfeiltasten)
- Cut/Copy/Paste/Delete/Select all (CTRL+X/C/V/A)
- volle Mausunterstützung (Cursor setzen, Textmarkieren inklusive Scrollen, Context-Menü zum Bearbeiten, Mausrad-Unterstützung)
Außer Undo-Funktion und Wort-Markierung durch Doppelklick arbeitet das Widget nun eigentlich 100%ig genau wie die heutigen Textboxen aktueller Benutzeroberflächen. Es bleibt allerdings ein GUI-Widget und keine Textverarbeitung, d.h. es sind schon ein paar Abstriche da. So ist die Textgröße derzeit auf 16KB und 8000 Zeilen beschränkt. Es muß noch die Möglichkeit implementiert werden, alternative Fonts zu nutzen, damit z.B. auch Quelltext-ähnliche Texte mit festen Zeichenbreiten vernünftig angezeigt werden können. Ein paar Bugs gilt es auch noch zu fixen.
Ich hoffe jedenfalls mal, daß ich Ende Dezember wieder eine neue SymbOS-Preview-Version (2.1) releasen kann.
CU,
Prodatron