•  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 VDI-Workstation                                   TOS

Bei den Aufrufen xfsl_input und xfsl_init kann jeweils das Handle 
einer vom Aufrufer bereits geöffneten virtuellen VDI-Workstation 
übergeben werden. Davon, ob man tatsächlich ein Handle einer 
Workstation oder einfach eine Null übergibt, hängt das weitere 
Verhalten des Fontselektors ab:

Übergibt man ein gültiges Handle, so wird der Fontselektor versuchen, 
den auf der entsprechenden Workstation gerade aktuellen Font zu er- 
mitteln und diesen dann - sofern er zu den übergebenen Fontflags paßt 
- auch einstellen und zur Auswahl anbieten. Paßt der aktuelle Font 
nicht zu den Fontflags (wenn z.B. nur Vektorfonts angeboten werden 
sollen, der aktuelle Font aber ein Bitmapfont ist), so wird der 
Fontselektor einen Font aus den tatsächlich angebotenen auswählen und 
als aktuellen Font präsentieren.

Wählt der Anwender nun einen Font aus und beendet den Fontselektor mit 
"OK", so wird dieser Font auch gleich auf der übergebenen Workstation 
eingestellt, so daß das aufrufende Programm dies nicht mehr übernehmen 
muß.

Dabei gilt es zu beachten, daß der Fontselektor ebenfalls eine eigene 
VDI-Workstation öffnet und diese intern und zur Auswahl der Fonts 
verwendet. U.a. wird er für diese Workstation auch vst_load_fonts() 
aufrufen (sofern ein GDOS installiert ist). Dies kann zu unerwarteten 
Resultaten führen, wenn auf der übergebenen Workstation noch kein 
vst_load_fonts() aufgerufen wurde und der Anwender im Fontselektor 
einen Font auswählt, der erst nach einem vst_load_fonts()-Aufruf zur 
Verfügung steht!


Statt eines Workstation-Handles kann man aber auch einfach eine Null 
übergeben. Der Fontselektor wird den aktuellen Font dann aus den 
übergebenen Parametern (beim xfsl_input-Aufruf) bzw. aus der 
xFSL_PAR-Struktur (beim xfsl_init-Aufruf) ermitteln.

Der ausgewählte Font wird dann (logischerweise) auch nur in den 
Parametern bzw. der xFSL_PAR-Struktur zurückgegeben und der Aufrufer 
muß ihn dann selbst einstellen.