Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File15.5 Font-Protokoll TOS Beschreibung des Font-Protokolls, Revision 5 Eine minimale Unterstützung dieses Protokolls besteht in der Auswer- tung der Nachricht FONT_CHANGED. Programme, die eines der (GDOS-) At- tribute Textwinkel, -breite, -kerning, -neigung oder die Angabe der Textgröße in 1/65536 Punkt unterstützen, sollten auch die Nachricht XFONT_CHANGED, die zusätzliche Informationen anbietet, unterstützen. Über die Nachricht FONT_SELECT kann der Fontselektor auch von der Applikation aufgerufen werden. Dabei können auch die aktuell einge- stellten Attribute übergeben werden. Unterstützt die Anwendung auch das XAcc-2-Protokoll, so kann sie auch leicht die Unterstützung der Bestätigungsnachricht FONT_ACK offenlegen und ohne Environment-Variable nach Fontselektoren im Speicher suchen. ∙ FONT_CHANGED-Nachricht: Nachricht des Fontselektors an eine Applikation, daß der Zeichensatz und/oder die Zeichenattribute (Größe, Farbe und Effekte) in einem oder mehreren Fenstern der Applikation gewechselt werden sollen. Besitzt die Zielapplikation im erweiterten XAcc-Namen die Kennung "XFontAck", so muß diese Nachricht mit der Nachricht FONT_ACK beantwortet werden. Ansonsten ist die Unterstützung dieser Nachricht optional. Negative Werte in msg[6/7] bzw. Null in msg[4/5] stehen für keine Veränderung msg[0] = FONT_CHANGED (0x7a18) msg[1] = apID msg[2] = 0 msg[3] = Fenster-Handle oder negativer Wert, falls Font in allen Fenstern gewechselt werden soll msg[4] = Font-ID oder Null msg[5] = Font-Größe in Punkt (>0) oder Pixel (<0) bzw. Null für keine Veränderung msg[6] = Font-Farbe msg[7] = Effekte: Bit 0: Fett Bit 1: Hell Bit 2: Kursiv Bit 3: Unterstrichen Bit 4: Umrandet Bit 5: Schattiert Bit 6: Invers Bit 12: 1=Font ist monospaced; 0=unbekannt (restliche Bits sind reserviert) Bit 12 ist mit der Revision 5 eingeführt worden. ∙ XFONT_CHANGED-Nachricht: Erweiterte (GDOS-)Attribute übermitteln. Diese Nachricht ist op- tional und wird vor der Nachricht FONT_CHANGED verschickt, d.h. erst wenn die Nachricht FONT_CHANGED eintrifft und den gleichen Absender (msg[1] vergleichen!) hat, sollten diese Werte gesetzt werden! Dadurch werden doppelte Redraws und/oder Fehler vermie- den. Die Nachricht FONT_CHANGED enthält die auf Punkt gerundete Größe, d.h. Programme, die XFONT_CHANGED nicht unterstützen, können diesen Wert benutzen. Fontselektoren versenden idR diese Nachricht nur, wenn eines der übermittelten Attribute vom Normalwert abweicht! msg[0] = XFONT_CHANGED (0x7a1b) msg[1] = apID msg[2] = 0 msg[3/4] = Größe in 1/65536-Punkt (fix31) msg[5] = Rotationswinkel in 1/10-Grad (0-3599) msg[6] = Neigung in 1/10-Grad (-1800 - 1800) msg[7] = Breite und Kerning: Bit 15: Paar-(!nolink [Kerning]) Bit 13/14: Track-Kerningmodus (0-3) Bit 0-12: Breite in Punkt in C: typedef struct { unsigned int pair : 1; unsigned int track : 2; unsigned int width : 13; } VECTOR_INFO; ∙ FONT_SELECT-Nachricht: Mit dieser Nachricht kann ein im Speicher vorhandener Fontselektor, der im erweiterten XAcc-Namen die Kennung "XFontSelect" besitzt, aufgerufen werden. Unterstützt die Anwen- dung und/oder der Fontselektor kein XAcc-2-Protokoll, so kann noch nach dem Inhalt der (AES-)Environment-Variablen "FONTSELECT" gesucht werden. Diese Variable kann gegebenenfalls auch mehrere Namen (getrennt durch Semikolon) enthalten, wobei die Namen optional auch Pfad und Dateierweiterung besitzen können, so daß man den Fontselektor unter Multitasking bei Bedarf parallel nachladen kann. Beispiele: setenv FONTSELECT=FONT_PAL;FONT_SEL setenv FONTSELECT=C:\FONTSEL\FONT_SEL.APP;C:\FONTSEL\FONT_PAL.APP Zur passiven Unterstützung des Font-Protokolls genügt aber die Auswertung der o.g. Nachrichten FONT_CHANGED und XFONT_CHANGED. Negative Werte in msg[6/7] oder eine Null msg[4/5] bedeuten, daß dieser Parameter nicht benötigt wird, nicht eingestellt werden soll oder noch nicht gesetzt wurde msg[0] = FONT_SELECT (0x7a19) msg[1] = apID msg[2] = 0 msg[3] = Handle des Fensters, dessen Zeichensatz ein- gestellt werden soll, oder ein negativer Wert, wenn der Zeichensatz in allen Fenstern der Applikation gewechselt werden soll msg[4] = Font-ID oder Null msg[5] = Font-Größe in Punkt (>0) oder Pixel (<0) bzw. Null, falls der Parameter nicht benötigt wird (s.o.) msg[6] = Farbe msg[7] = Effekte (s.o.) ∙ FONT_ACK-Nachricht: Fontselektor darüber informieren, ob die FONT_CHANGED-Nachricht ausgewertet bzw. die Zeichensatz-Attribute eingestellt werden konnten msg[0] = FONT_ACK (0x7a1a) msg[1] = apID msg[2] = 0 msg[3] = TRUE (1): Nachricht wurde ausgewertet FALSE (0): Nachricht wurde ignoriert msg[4-7] = 0 (reserviert) Querverweis: xFSL-Schnittstelle Zeichensatzauswahl von MagiC