•  Back 
  •  Titel 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
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