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.13.3.1.3 Die xFSL_PAR-Struktur TOS Über diese Struktur haben Sie weitgehenden Einfluß auf das Verhalten des Fontselektors und die Art der dargestellten Fonts. Daher fällt die Beschreibung der Möglichkeiten auch etwas länger aus ... typedef struct { int par_size; /* Größe der xFSL_PAR-Struktur */ int pfi_size; /* Größe der PFONTINFO-Struktur */ unsigned long control; /* Kontrollflags */ const char *headline; /* Überschrift oder 0L */ const char *example; /* Beispieltext oder 0L */ const char *helptext; /* Text des Hilfe-Buttons od. 0L */ PFONTINFO *font; /* Zeiger auf Fontinfo-Struktur */ unsigned int fontflags; /* erlaubte Fontarten */ const char *poptext; /* Text vor dem Popup oder 0L */ int num_entries; /* Anzahl der Einträge (0..n) */ int sel_entry; /* Selektierter Eintrag (0..n-1) */ xFSL_PENTRY *popup; /* Zeiger auf ein Popup oder 0L */ char *helpinfo; /* Zeiger auf Hilfedatei/-seite */ } xFSL_PAR; Trotz der Vielzahl der Einträge ist eigentlich alles ganz einfach, zumal Sie Felder, die Sie nicht benötigen oder deren Bedeutung Ihnen noch nicht klar ist, einfach mit Null ausfüllen können, worauf der Fontselektor dann sinnvolle Defaultwerte annehmen wird. Die Felder im einzelnen: par_size Dieses Feld darf nicht auf Null gesetzt werden, hier wird die Größe der xFSL_PAR-Struktur in Bytes eingetragen, weshalb man in C einfach schreiben kann xpar.par_size=sizeof(xFSL_PAR); Die Größe der Struktur beträgt z.Z. 42 Bytes. Sollte die Struktur erweitert werden, kann der Fontselektor an der Größenangabe erkennen, ob er es mit einer neuen oder einer alten Struktur zu tun hat. pfi_size Auch dieses Feld darf nicht Null sein, hier muß die Größe der PFONTINFO-Struktur eingetragen werden, also xpar.pfi_size=sizeof(PFONTINFO); Die aktuelle Größe der PFONTINFO-Struktur beträgt 38 Bytes und könnte ebenfalls in Zukunft erweitert werden. control Dies sind die sogenannten Kontrollflags, über die das Verhalten des Fontselektors beeinflußt werden kann (z.B. ob er als Fenster oder als Dialog erscheinen soll). Diesen Flags wurde ein eigener Abschnitt gewidmet. headline Dies ist, wie schon vom einfachen Aufruf her bekannt, ein Zeiger auf eine Überschrift für den Fontselektor. Fehlt diese (d.h. `headline' enthält Null), dann wird der Fontselektor eine Default-Überschrift einsetzen. Die Länge der Überschrift sollte sich in dem noch vom UFSL vorgegebenen Rahmen (34 Zeichen) bewegen, der Fontselektor wird längere Überschriften aber ggfs. kürzen. example Ein Zeiger auf einen Beispieltext. Der Fontselektor zeigt für den jeweils eingestellten Font ein Schriftbeispiel an, dessen Text hiermit vorgegeben werden kann. Fehlt dieser Text (d.h. `example' enthält Null), wird der Fontselektor einen Defaulttext anzeigen (z.B. den Namen des jeweiligen Zeichensatzes). helptext Dies ist der Text für einen Button, der links unten im Fontselektor eingeblendet werden kann. Im Normalfall wird man dort einen Button mit der Aufschrift "Hilfe" oder "Help" einblenden wollen, um dem Anwender die Funktion des Fontselektors zu erklären, und wofür der ausgewählte Font verwendet wird. Fehlt dieser Text (d.h. `helptext' enthält Null), wird auch kein Hilfe-Button eingeblendet. Dann wird xfsl_event auch nicht den Rückgabewert xFS_HELP liefern. Man sollte einen kurzen Text wählen (etwa 8 Zeichen), der Fontselektor wird längere Texte aber ggfs. kürzen. font Dies ist ein Zeiger auf eine Struktur (PFONTINFO), die einen Font beschreibt. Die Struktur wird sowohl zur Über- gabe von Werten an den Fontselektor als auch zur Rückgabe des ausgewählten Fonts verwendet. Auch dieser Struktur ist ein eigener Abschnitt gewidmet. fontflags Dies sind wieder die vom einfachen Aufruf bekannten Font- flags, mit denen Sie die zur Auswahl gestellten Fonts beeinflußen können. poptext, num_entries, sel_entry, popup: Mit diesen vier Parametern können Sie ein zusätzliches Popup in den Fontselektor einblenden lassen. Wegen der vielfältigen Möglichkeiten gibt's dafür auch wieder einen eigenen Abschnitt. Wollen Sie kein Popup, so setzen Sie diese vier Werte einfach auf Null. helpinfo Dies ist ein reiner Ausgabeparameter: Wenn der Hilfe- Button angewählt wurde (sofern vorhanden, siehe `help- text'), dann steht hier ein Zeiger auf einen Dateinamen einer Hilfedatei und den Namen einer Seite, die angezeigt werden kann. Der Dateiname wird ohne Pfad und Extension angegeben, der Seitenname folgt direkt dahinter, durch ein Komma getrennt. Der String darf nur gelesen, aber nicht ver- ändert werden! Wenn Sie bei xFS_HELP nicht selbst eine Hilfe anzeigen wollen, dann können Sie mit diesen Informationen ein Hilfesystem (z.B. ST-Guide) aufrufen. Beispiel: xfsl_event gibt xFS_HELP zurück, in `helpinfo' findet sich ein Zeiger auf den String toll,Der tollste Fontselektor aller Zeiten Daraus läßt sich dann folgender Aufruf für ST-Guide erstellen: *:\toll.hyp Der tollste Fontselektor aller Zeiten Man hängt also an den Dateinamen die Extension für das jeweilige Hilfesystem an und übergibt den Teil nach dem ersten Komma als Seitenname. Um es nochmals zu betonen: Felder, die sie nicht benötigen oder noch nicht verstehen, können Sie zunächst einfach auf Null setzen. Aus- nahmen sind nur ∙ `par_size', die Größe der xFSL_PAR-Struktur selbst ∙ `pfi_size', die Größe der PFONTINFO-Struktur ∙ `font', der Zeiger auf die PFONTINFO-Struktur