eXtended Universal FontSeLektor =============================== (c) 1994 RoSoft Stefan Rogel K”hlerweg 1 67661 Kaiserslautern Bankverbindung: Kreissparkasse Kaiserslautern BLZ 540 502 20 Kto. 100 807 577 eMail: Mausnetz: Stefan Rogel @ LU Sonst: Stefan_Rogel@lu.maus.de Der xUFSL ist Freeware und darf beliebig zusammen mit folgenden Dateien weitergegeben werden: XUFSL - XUFSL.PRG Der xUFSL selbst - XUFSL.CHG Versionshistorie des xUFSL - XUFSL.TXT Kurzanleitung zum xUFSL XUFC - XUFC.CPX Ein kleines CPX-Utility zur applikationsunabh„ngigen Konfigu- ration des xUFSL - XUFC.TXT Kurzanleitung zum xUFC Fr Programmierer sind sicherlich noch folgende Dateien interessant: - XUFSL.H Definitionen fr den xUFSL CALLUFSL - CALLUFSL.PRG Programm mit Quelltexten (PureC 1.1) zum Aufruf des xUFSL - CALLUFSL.C - CALLUFSL.RSC - CALLUFSL.H - CALLUFSL.HRD - CALLUFSL.PRJ COOKIE - COOKIE.C Teilweise um C-Aufrufe erweitere Routinen zur COOKIE-Verwal- - COOKIE.H tung. Die Originale sind von Arnd Beissner und in jeder gut - COOKIE.LIB sortierten Mailbox zu finden. - COOKIE.S FONTS - MONACOxx.FNT Ein unproportionaler "Mac-like"-Zeichensatz - CHICACxx.FNT Ein proportionaler "Max-like"-Zeichensatz Obwohl ich den xUFSL auch dann weiterentwickeln werde, wenn keine Reaktionen in Form von Spenden, Anregungen oder Fehlermeldungen kommen, w„re ich fr eben- solche (insbesondere erstere) sehr dankbar. Insbesondere wrde mich interessieren, ob und welche Programme von den erwei- terten Optionen des xUFSL Gebrauch machen. Fr die Implementierung des xUFSL-Aufrufes kann CALLUFSL.PRG mit den beiliegen- den Quelltexten zu rate gezogen werden. Dieses Programm ist zwar 'quick and dirty' geschrieben und nicht gerade ausfhrlich (soll heižen: gar nicht) kom- mentiert, sollte jedoch von jedem Entwickler verstanden werden. In XUFSL.H habe ich die verschiedenen M”glichkeiten des xUFSL fr Entwickler einigermažen aus- fhrlich erl„utert. Wieso noch ein Fontselektor? ============================ Die mir bekannten "Zeichensatzauswahldialoge" sind zwar ganz brauchbar, wer- den jedoch den steigenden Anforderungen, die sich mit Einfhrung der Multi- tasking-Betriebssysteme und des SpeedoGDOS ergeben haben, nicht mehr gerecht. Der "FONTSEL" von Holger Weets (1.00/11.5.94) ist bei mir (MagiC 2.0, Speedo 5.0a) nicht lauff„hig, da er sich nach der Installation bei jedem Aufrufversuch nur mit Bomben meldet... Die Urversion, der UFSL von Michael Th„nitz, l„uft zwar korrekt, bietet jedoch zu wenig Parametrierungen. Die Konsequenz? =============== Zun„chst dachte ich, um eine Neuprogrammierung herumzukommen und habe etliche Mailboxen durchwhlt, jedoch vergebens. Also habe ich mich schweren Herzens hingesetzt und einen neuen Fontselektor implementiert. Das Ergebnis ============ Herausgekommen ist, so meine ich, ein Progr„mmchen, das sich durchaus sehen lassen kann. Hier eine Kurzbeschreibung: - Kompatibel zum UFSL von Michael Th„nitz bis zur letzten Version 0.97 - xUFSL bietet wahlweise einen unmodalen Fensterdialog - Neben der Auswahl der Schrift - getrennt nach Fontname und -schnitt - kann der Aufrufer zus„tzlich folgende Parameter einstellen: . Schriftgr”že (bei skalierbaren Zeichens„tzen jede Zwischengr”že) . Schriftbreite inkl. Kerning-Informationen: Pair- und Track-Kerning (nur bei skalierbaren Zeichens„tzen) . Schriftneigung (ebenfalls nur bei skalierbaren Zeichens„tzen) . Schriftfarbe . Schriftattribute, wahlweise wird als zus„tzliches Attribut die invertierte Schrift untersttzt (TF_INVERS:=0x40). - Der xUFSL untersttzt ein konfigurierbares Popup: Mit EINEM Aufruf k”nnen mehrere Schriften fr verschiedene Zwecke abgefragt werden. - Der xUFSL bietet eine Verwaltung von 'Fontsets'. Damit besteht ein besonders schneller Zugriff auf bevorzugte und h„ufig ben”tigte Zeichens„tze. - Der Beispieltext kann durch Anklicken umgeschaltet werden, es stehen drei frei editierbare (!) Texte zur Verfgung. - Ansicht aller Zeichen eines Fonts. Damit ist der xUFSL ein vollwertiger Font- viewer. - Anzeige der aktuellen Font-ID. - Der Dialog ist komplett tastaturbedienbar. - Flexible Parametrierung, jede Funktion kann wahlweise abgschaltet werden. - Als besonderes Bonbon besteht die M”glichkeit, die Dialogzeichens„tze des xUFSL einzustellen. Es sind alle Bitmap-Zeichens„tze erlaubt, die 8 Punkte (kleiner Zeichensatz) bzw. 10 Punkte (grožer Zeichensatz) grož sind. Default- m„žig wird der Systemzeichensatz verwendet. Gut sieht z.B. der proportionale Chicago-Zeichensatz aus (siehe FONTS)! - S„mtliche Parameter k”nnen in Zusammenarbeit mit dem xUFC applikationsunab- h„ngig konfiguriert werden. - Ein kleiner Wermutstropfen: xUFSL ist mit ca. 58 KB relativ grož geraten, was allerdings in der heutigen Zeit keine allzu wichtige Rolle mehr spielen soll- te (unter Windoof gibt es kaum ein Programm, was nicht mindestens 5MB auf der Platte belegt, und das ist noch tief angesetzt ;-)). An diesem "Manko" werde ich in Zukunft dennoch arbeiten. Als Beispiel fr den Aufruf des xUFSL kann das im Quelltext beiliegende Pro- gramm CALLUFSL.PRG dienen. Dort kann man auch mit den verschiedenen Optionen "herumspielen". Ich habe xUFSL mit verschiedenen Programmen ausgetestet und dabei keine Fehler mehr feststellen k”nnen. Da ich leider keinen Farbmonitor besitze, konnte ich die Farbeinstellungen nicht austesten. Insbesondere hier w„re ich fr Erfah- rungen dankbar. Der xUFSL ben”tigt mindestens eine Aufl”sung von 640*400 Punk- ten. Verwendete Hardware =================== Meine Systemkonfiguration ist leider nicht mehr die aktuellste: Atari 520 ST+ von 1985 (...und l„uft und l„uft... seitdem ohne Defekte!), erweitert auf 4+1 MB mit - TOS 1.04 und MagiC 2.0 bzw. MultiTOS - Speedo bzw. NVDI - OverScan auf SM124 (auch noch von 1985!) Unter diesen Konfigurationen l„uft xUFSL einwandfrei. Verwendete Software =================== PureC 1.1 Leider immer noch, wann gibts endlich die Version 2.0? Bezglich des erzeugten Codes bleibts konkurrenzlos. Interface 2.32 Aus meiner Sicht das beste Programm zum "Designen" von Resourcen. Gemini 1.9999 Wird die 2.0 mal erreicht? Ease 3.5 Gef„llt mir in manchen Punkten besser als Gemini: - Doppelklick auf dem Desktop - Menpunkt fr Programme, bei Gemini nur ber Take-Off. - Bei Verwendung vieler Icons beim Fensteraufbau wesentlich schneller Speedo 5.0 Achtung: Bis Speedo 5.0b gibt es u.U. Probleme, siehe XUFSL.CHG! Abhilfe: Speedo 5.0c. NVDI 3.01 Subjektiv noch schneller als die Version 2.5, auf jeden Fall ein schneller Ersatz fr Speedo, allerdings noch nicht ganz fehlerfrei. Es gibt Probleme mit Kerning und Skewing. Installation ============ Die Installation des xUFSL kann entweder im AUTO-Ordner oder per Aufruf des XUFSL.PRG vom Desktop aus erfolgen. Der xUFSL installiert sich mit dem Cookie "UFSL", sofern dieser noch nicht be- legt ist. Zur Unterscheidung zu den bekannten Fontselektoren tr„gt er in der installierten Struktur die ID "xUFS" ein. Begriffe ======== GDOS: 'Graphics Device Operating System', u.a. zur Verwaltung von Ger„- tetreibern und Zeichens„tzen zust„ndig. Da das GDOS von ATARI lange stiefmtterlich behandelt wurde, konnte es sich nicht nen- nenswert verbreiten. Dies hat sich erst in der jngsten Zeit mit der Entwicklung des einigermažen leistungsf„higen SpeedoGDOS und der erfreulichen Tendenz zu standardisierten Applikationen grund- legend ge„ndert. Fontselektor: Ein Programm, das analog der im GEM integrierten Dateiauswahlbox die Wahl von installierten Schriften erm”glicht. Bitmap-Fonts: Zeichens„tze, deren Darstellung auf einer Pixelmatrix basiert. Solche Zeichens„tze waren bis zur Einfhrung des FSM-GDOS Stan- dard. Ein typisches Beispiel ist der Systemzeichensatz des ATARI. Nachteil: Fr jede Zeichengr”že muž eine eigene Matrix definiert werden, da eine algorithmische Matrixvergr”žerung ein h„žliches Schriftbild ('Treppchenbildung') ergibt. Vektorfonts: Im Gegensatz zu Bitmap-Fonts werden solche Zeichens„tze anhand von sog. Sttzpunkten definiert, durch die Kurven (Bezier-Kurven) gelegt werden. Solche Zeichens„tze k”nnen ohne Qualit„tsverluste in jeder beliebigen Gr”že dargestellt werden, sind also 'skalier- bar'. Kurzanleitung ============= Der xUFSL dient zur Zeichensatzauswahl fr alle Programme, die einen UFSL untersttzen. Je nach aufrufendem Programm und selektiertem Zeichensatz bietet er unterschiedliche M”glichkeiten. Bereich (Alt-B): Auswahl des Bereiches bzw. Fensters o.„., fr den der Zei- chensatz verwendet werden soll. Dieses Popup ist applika- tionsabh„ngig und evtl. nicht zu sehen. Font (Alt-F): Auswahl des Zeichensatzes. Durch Anklicken kann einer der installierten Zeichens„tze ber ein Popup ausgew„hlt werden. Je nach Stellung des Schalters "Set verwenden" werden folgen- de Zeichens„tze angeboten: Schalter aktiv: - Einfachklick: Zeichens„tze aus dem Fontset - Doppelklick: Alle Zeichens„tze Schalter inaktiv: - Einfachklick: Alle Zeichens„tze - Doppelklick: Zeichens„tze aus dem Fontset Schnitt (Alt-N): Auswahl der Schnitte des gew„hlten Zeichensatzes, nur fr Vektorfonts! Parameterbereich "Standard" (Alt-S) ----------------------------------- Die Einstellungen dieses Bereiches sind fr alle Zeichens„tze m”glich. Gr”že (Alt-G): Auswahl der Fontgr”že. Es werden alle installierten Gr”žen, wenn es die Applikation untersttzt, auch eine Default-Gr”že, angeboten. Bei skalierbaren Zeichens„tzen kann im Feld "Punkte" (Alt-P) eine beliebige Gr”že eingetragen werden. Farbe (Alt-R): Auswahl einer Schriftfarbe, im Popup werden die zur Verfgung stehenden Farben angeboten. Parameterbereich "Effekte" (Alt-E) ---------------------------------- Die Einstellungen dieses Bereiches sind ebenfalls fr alle Zeichens„tze m”g- lich, sollten jedoch nur fr Bitmap-Fonts angewendet werden, da fr Vektor- Fonts meist unterschiedliche Schriftschnitte vorhanden sind. Parameterbereich "Vektor" (Alt-V) --------------------------------- Die Einstellungen dieses Bereiches k”nnen nur bei Vektorzeichens„tzen ge„ndert werden. Breite (Alt-R): Auswahl der Schriftbreite analog der Gr”že. Zur Auswahl werden neben der Defaultbreite die viertel, halbe, ganze, doppelte und vierfache Breite angeboten. Diese M”glichkeit bieten nur skalierbare Zeichens„tze. Kerning-Infos: Die Breite des auszugebenden Textes kann bei Vektorzeichens„t- zen zus„tzlich ber das sog. 'Kerning', zu deutsch: 'Unter- schneiden', gesteuert werden. Mit dem Schalter "Paar-Kerning" (Alt-K) kann das Unterschneiden bestimmter Buchstabenpaare (z.B. 'Ve' oder 'Fa', je nach Zeichensatz) eingeschaltet wer- den. Dies hat zur Folge, daž die betroffenen Paare 'ineinan- dergeschoben' werden. Mit dem Schieberegler "Weite" kann der generelle Abstand zwi- schen den Zeichen ver„ndert werden. Ein h”herer Wert bewirkt ein n„heres Zusammenrcken der Buchstaben (Alt >/<, Ctrl >/<). Neigung: Definition der Neigung bei skalierbaren Zeichens„tzen (Alt +/-: 1 Grad Žnderung, Ctrl +/-: 10 Grad Žnderung). Die Neigung kann auch direkt eingegeben werden. Dafr muž das Neigungsfeld per Tastatur (TAB oder Pfeil unten) angew„hlt werden. Im Neigungsfeld ist allerdings der Cursor nicht posi- tionierbar, was jedoch keine Einschr„nkung bedeutet. Parameterbereich "Info" (Alt-I) ------------------------------- Anzeige einiger interessanter Informationen aus dem Fontheader. Leider nur fr Vektorfonts! Name: Kurzname/Schnitt Datum: Erstellungsdatum Form: Breite/Dicke/Neigungswinkel Kerning: Tracks/Paare Parameterbereich "Extra" (Alt-X) -------------------------------- Hier werden allgemeine Parametrierungen des xUFSL vorgenommen. Auto-Redraw: Wenn dieser Schalter gesetzt ist, erfolgt das Redraw des Text- (Alt-R) beispiels bei jeder Žnderung eines Zeichensatzparameters. Das kann u.U. bei Vektorzeichens„tzen "nervend" sein und ist daher abschaltbar. Ein Redraw kann jederzeit mit einem Doppelklick auf den Wechselpfeil im Textbeispiel erzwungen werden. Zentrieren: Der Dialog wird in der Bildschirmmitte zentriert. Andernfalls (Alt-Z) wird der Dialog in Mauszeigern„he dargestellt. Set verwenden: Bei der Zeichensatzauswahl wird das aktuelle Fontset verwen- (Alt-W) det. Ansonsten werden alle installierten Zeichens„tze angebo- ten. Dieser Knopf ist nur w„hlbar, wenn das Fontset nicht leer ist. Set sortieren: Das aktuelle Fontset wird nach Zeichensatznamen sortiert. Auch (Alt-T) dieser Knopf ist bei leerem Fontset nicht w„hlbar. Ok bernimmt: Bei der Wahl des "Ok"-Knopfes wird der ausgew„hlte Zeichen- (Alt-K) satz in das Fontset bernommen. Aužerdem ist das Fontset dann auf 8 Eintr„ge begrenzt. Im Zweifelsfall wird der erste Eintrag entfernt. Laden/Sichern: Laden eines Fontsets bzw. Speichern des aktuellen Fontsets. (Alt-L/N) Bei jedem Aufruf versucht der xUFSL, das Standard-Fontset XUFSL.SET zu laden, das dann sofort zur Verfgung steht. Dieses Fontset wird in dem Verzeichnis gesucht, aus dem der xUFSL gestartet wurde. Mit dem Fontset werden neben den Parametern auch die Textbeispiele gesichert. Textbeispiel ------------ Das Textbeispiel kann beliebig editiert werden. Mit der Taste UNDO wird das vorgegebene Beispiel zurckgeholt. Als Titel des Textbeispiels wird der Zeichensatztyp und seine ID angezeigt. Icon-Kn”pfe ----------- Mit den Icon-Kn”pfen rechts neben dem Textbeispiel k”nnen verschiedene Zusatz- funktionen ausgefhrt werden. Wechselpfeil: Mit einem Klick auf dieses Icon kann aus verschiedenen Text- (Alt-Y) beispielen ausgew„hlt werden. Info: Anzeige aller Zeichen des aktuell eingestellten Fonts in einer (Alt-Q) Maximalgr”že von 12 Punkten. Wenn der Mauszeiger ber eines der Zeichen bewegt wird, wird in der linken oberen Ecke dessen ASCII-Code angezeigt. Wahlweise kann der Cursor auch mit den Cursortasten bewegt werden. Mit RETURN, ENTER oder der linken Maustaste wird das aktuelle Zeichen in das Textbeispiel bernommen. Zeichen, die im Text- beispiel vorkommen, werden hell dargestellt. Die Anzeige wird mit ESC, UNDO oder der rechten Maustaste be- endet. Clipboard: Mit einem Klick auf das Clipboard-Symbol wird der eingestellte (Alt-C) Zeichensatz MIT ALLEN PARAMETERN in das Fontset bernommen. Ein leeres Clipboard zeigt an, daž der aktuelle Zeichensatz nicht im Set ist. Ein helles "F" bedeutet, daž er im Set ent- halten ist, jedoch mit anderen Attributen. Ein dunkles "F" schliežlich zeigt an, daž der Zeichensatz genauso im Fontset enthalten ist. Ein Fontset-Eintrag wird eindeutig durch den Zeichensatz und die Gr”že in Punkten charakterisiert. Aus diesem Grund ist es nicht m”glich, denselben Zeichensatz in derselben Gr”že mehr- fach im Fontset unterzubringen. Papierkorb: Der Zeichensatz wird, falls er im Fontset enthalten ist, da- (Alt-D) raus entfernt. Mit einem Doppelklick wird das ganze Fontset gel”scht. Info: Kurzinformation ber den xUFSL. Hilfe (Alt-H): Hilfefunktion der rufenden Applikation, sofern diese das untersttzt. Ok (Alt-O): šbernahme der gemachten Einstellungen. Abbruch (Alt-A): Verwerfen der Einstellungen. Alle Buttons k”nnen mit der Alternate-Taste in Verbindung mit dem unterstri- chenen Buchstaben per Tastatur erreicht werden. Wenn statt der Alternate- die Control-Taste verwendet wird, dann entspricht das einem Doppelklick. Der Cursor kann innerhalb von Eingabefeldern selbst dann mit der Maus posi- tioniert werden, wenn ein proportionaler Dialogzeichensatz gew„hlt wird. Aužerdem kann per +Ziffernblock ber den ASCII-Code jedes Zeichen er- reicht werden! Das ist besonders zur Anzeige von Sonderzeichen im Textbei- spiel interessant. Auch die Popups sind komplett mit der Tastatur bedienbar: Pfeiltasten: N„chster/vorheriger Eintrag Shift+Pfeiltasten: Seite unten/oben Control+Pfeiltasten: Erster/letzter Eintrag Return oder Enter: šbernahme des aktuellen Wertes ESC oder UNDO: Abbruch (auch mit rechter Maustaste) Mit dem Anfangsbuchstaben k”nnen zyklisch alle Eintr„ge gew„hlt werden, die mit diesem Buchstaben beginnen. Der FULLER des Fensters, sofern vorhanden, zentriert den Dialog, der CLOSER entspricht, sofern vorhanden, dem "Abbruch"-Knopf. Viele Applikationen, die SpeedoGDOS oder ein anderes GDOS nicht mit allen M”glichkeiten aktiv untersttzen, bieten nur die Einstellung des Zeichensatzes und der Schriftgr”že an. Ebenso werden u.U. nur die unproportionalen Fonts zur Auswahl angeboten. Danksagungen ============ Fr die Untersttzung bei der Fehlersuche und fr neue Anregungen m”chte ich, und wenns auch noch so abgedroschen klingt, namentlich folgenden Leuten danken (in alphabetischer Reihenfolge ;-): - Dirk Allard @ WI2 - Ralf Heckmann @ IZ - Gerhard H”lscher @ MS2 - Uwe Holtkamp @ DO2 - David Reitter @ WI2 - Ulrich Rossgoderer @ M ... und natrlich: - Dirk Haun @ WI2 (CALVINO-Autor), mit dem ich mich nach langen Diskussionen hoffentlich bald auf eine neue Selektor-Schnittstelle (xFSL) einigen werde. - Michael Th„nitz @ BI, von ihm stammt schliežlich die UFSL-Idee. - Holger Weets @ OL fr diverse Programme, u.a. ST-Guide und Fontsel. 14.09.1994 Stefan Rogel 23.09.1994 Anpassung an xUFSL 1.02 01.10.1994 Anpassung an xUFSL 1.03 25.10.1994 Anpassung an xUFSL 1.04 23.12.1994 Anpassung an xUFSL 1.05