Atarium - Der schrumpfende Bildschirm

Es ist manchmal schon seltsam, wie Hardware-Beschränkungen, die man längst ad acta gelegt hatte, plötzlich wieder aktuell werden. Die Zeiten von 320 * 200 Pixeln sind fast vergessen, und auch die mittlere ST-Auflösung wird nur halbherzig unterstützt (bei ihr passen zwar 80 Zeichen nebeneinander, aber der Systemzeichensatz hat noch eine ‘ungewohnte’ Größe). Und plötzlich kommt da MagicMac auf dem Macintosh SE/30 mit ‘Mickymausbildschirm’ daher: es stehen nur 512*384 Pixel zur Verfügung. Das Problem ist dabei weniger die Breite (etliche Programme kommen mit einem zu ‘schmalen’ Bildschirm klar), als vielmehr die Höhe. Verwendet man nämlich den Standardsystemzeichensatz, passen nur 24 Zeilen auf den Bildschirm, was für viele Dialogboxen nicht ganz reicht (sogar bei der niedrigen ST-Auflösung passen 25 Zeilen auf den Bildschirm!).

Abhilfe ist recht einfach: man sucht sich einen anderen Systemzeichensatz. Ein brauchbarer Kompromiß ist beispielsweise ‘Gemini Bold’ (aus den alten Gemini-Distributionen), der 7*14 Pixel mißt und mit dem der SE/30 immerhin schon 73 * 27 Zeichen auf den Bildschirm bringt. Ein noch schmalerer Font würde sogar 85 Zeichen liefern, wäre aber schlechter lesbar. Doch wenn diese Lösung nicht einige Schwierigkeiten nach sich ziehen würde, bräuchte ich mich wohl kaum hier damit zu beschäftigen, oder?

Die Schwierigkeiten

Die ersten Probleme, denen man begegnet, stellen Programme dar, die beim Start eine bestimmte Mindestgröße voraussetzen. Es ist sicherlich nichts dagegen einzuwenden, wenn ein Programm verlangt, daß es mindestens 80 Zeichen pro Zeile unterbringen kann (etwa wegen einer breiten Menüleiste). Nicht in Ordnung ist es aber, wenn auf ‘640 Pixel Breite’ anstelle von ‘Bildschirmbreite dividiert durch Systemzeichensatzbreite größer gleich 80’ abgeffagt wird.

Was müssen Programme tun, um mit solchen ‘unüblichen’ Zeichensatzgrößen zurechtzukommen? Eigentlich nicht viel, denn die rsrc-Routinen des AES kümmern sich ja beim Laden der Resource-Datei darum, daß alle Objekte passend skaliert werden. Schwieriger wird es dann schon, wenn ein Programm selbst mit dem ‘Standardzeichensatz’ ausgeben will.

Viele Programme benutzen nämlich einfach den Zeichensatz, den das VDI vorinitialisiert, ohne allerdings das VDI auch nach der genauen Größe zu fragen. Statt dessen werden einfach bekannte Größen oder Rückgabewerte des AES benutzt. Das AES benutzt aber einen anderen als den nach Öffnen der Workstation voreingestellten Font, und so sind Probleme vorprogrammiert. Beispiele für in dieser Hinsicht fehlerhafte Programme sind Wordplus (siehe Abbildung 1) sowie der Pure-Debugger (nicht aber neuere Versionen von Pure-C).

Wordplus benutzt den falschen Font im GEM-Fenster.

Noch etwas schwieriger wird es, wenn das Programm eigene Dialogroutinen benutzt und daher ermitteln muß, welchen Font das AES in Dialogen verwendet (graf_handle liefert ja bekanntlich nur die Größe der Zeichenzelle zurück). Neue AES-Versionen (seit 4.00) kennen eine Funktion, über die man diese Werte erfragen kann. Bei älteren AES-Versionen (MagiC 2.x oder ATARI-AES mit einem der dazu gebräuchlichen Autoordner-Patches) hingegen muß man sich mit einem etwas häßlichen Hack begnügen.

Und schließlich sollte man darauf achten, daß sich bei anderen Systemzeichensätzen das erwartete Größenverhältnis zwischen normalem und kleinen Systemzeichensatz verändern kann. Viele Resource Construction Sets machen aber Text Objekte gerade so breit, wie es bei einem Standardzeichensatz nötig ist. Ersetzt man dann die normale Schrift durch eine kleinere, werden unter Umständen Teile des Texts abgeschnitten. Einfache Abhilfe: Objekte mit ‘kleiner Schrift’ immer so breit wie möglich machen und mit den verschiedenen Ausrichtungsoptionen an die richtige Position bringen (siehe Abbildungen 2a, 2b und 2c).

Und hier nochmal eine Zusammenfassung:

(1) Wenn sich die Mindestbildschirmgröße aus den Ausmaßen von Dialogen oder Menüleisten ergibt, sollte man nie direkt die Anzahl der Bildpunkte abtesten, sondern dabei die Größe des Systemzeichensatzes in Betracht ziehen.

(2) Wenn man mit dem Standard-VDI-Font arbeiten will (also dem Zeichensatz, der nach dem Öffnen der Workstation voreingestellt ist), dann muß man dessen Größe auch über die dazugehörigen VDI-Funktionen erfragen. Denn: der Standard-VDI-Font muß nicht mit dem Systemzeichensatz übereinstimmen.

(3) Wenn man mit dem Standardsystemzeichensatz ausgeben will, muß man Grösse und N ummer erfragen. Ab AES 4.0 geht das Uber die appl_getinfo Op-codes 0 und 1, ansonsten muß man sich mi t einem Workaround behelfen (mehr dazu im nächsten Heft). MagiC 3 soll übrigens zu AES 4.0 kompatibel sein.

(4) In Dialogen sollten die Breiten von Objekten mit ‘kleinem’ Text möglichst großzügig eingestellt werden, damit bei einem anderen Breitenverhältnis (normal 8:6) nicht überflüssigerweise abgeschnitten wird.

MultiTOS erlaubt es übrigens sogar, proportionale Schriften als Systemzeichen-satz auszuwählen. Da sich die Objektbreiten allerdings nach dem breitesten Zeichen richten, sehen Dialoge mit solchen Schriften bestenfalls skurril aus.

Zum Schluß möchte ich noch darauf hinweisen, daß kleinere Systemzeichensätze nicht nur beim Mac-Mickymausbildschirm sinnvoll sind. Auch bei 640 * 400 oder 640 * 480 Pixeln (unter ATARI-Benutzem sicherlich sehr häufig benutzte Bildgrößen) liegen die Vorteile eines etwas kleineren Systemzeichensatzes auf der Hand: die Fensterränder werden schmaler, und es paßt mehr Information auf den Bildschirm.

Julian F. Reschke


Julian F. Reschke
Aus: ST-Computer 03 / 1995, Seite 67

Links

Copyright-Bestimmungen: siehe Über diese Seite