home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Global Amiga Experience
/
globalamigaexperience.iso
/
compressed
/
development
/
clusterdemo.dms
/
clusterdemo.adf
/
Modules.lha
/
modules
/
txt
/
GfxText.def
< prev
next >
Wrap
Text File
|
1994-05-25
|
10KB
|
193 lines
|##########|
|#MAGIC #|CLABLMID
|#PROJECT #|""
|#PATHS #|"StdProject"
|#FLAGS #|xx---x--x---xxx-----------------
|#USERSW #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx---xxxxx------
|##########|
DEFINITION MODULE GfxText;
FROM GfxScreen IMPORT Screen;
TYPE
(*----------------------------------------------------------------------------*
* Font : Zugriff auf einen Systemzeichensatz *
* *
* Styles : Stilrichtungen eines Fonts *
* - underlined : Die Zeichen werden unterstrichen *
* - bold : Die Zeichen werden fett dargestellt *
* - italic : Die Zeichen werden kursiv *
* - extended : ??? *
* StyleSet: Menge der möglichen Stilarten *
*----------------------------------------------------------------------------*)
Font = HIDDEN;
Styles = (underlined,bold,italic,extended);
StyleSet = SET OF Styles;
CharPtr = POINTER TO CHAR;
(*----------------------------------------------------------------------------*
* AUFGABE : Öffnet einen Font zur Benutzung *
* PARAMETER : font => Zugriff auf Font *
* name <= Namen des Fonts *
* height<= gewünschte Höhe *
* BEMERKUNGEN : Falls der gewünschte Font nicht geladen werden konnte, *
* wird ein Laufzeitfehler erzeugt *
*----------------------------------------------------------------------------*)
PROCEDURE OpenFont(VAR font : Font;REF name : STRING;height : INTEGER);
(*----------------------------------------------------------------------------*
* AUFGABE : Schliest einen Font wieder *
* PARAMETER : font <> Zugriff auf Font *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE CloseFont(VAR font : Font);
(*----------------------------------------------------------------------------*
* AUFGABE : Setzt den Font für die angegeben Screen *
* PARAMETER : s <= Zugriff auf Screen *
* font <= Zugriff auf Font *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE SetFont(s : Screen;font : Font);
(*----------------------------------------------------------------------------*
* AUFGABE : Holt den aktuellen Font eines Screens *
* PARAMETER : s <= Zugriff auf Screen *
* => Zugriff auf Font *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE GetFont(s : Screen):Font;
(*----------------------------------------------------------------------------*
* AUFGABE : Ermittelt die Höhe eines Fonts in Pixel *
* PARAMETER : font <= Zugriff auf Zeichensatz *
* => Höhe in Pixel *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE FontHeight(font : Font):INTEGER;
(*----------------------------------------------------------------------------*
* AUFGABE : Ermittelt die Breite eines Fonts in Pixel *
* PARAMETER : font <= Zugriff auf Font *
* => Breite in Pixel *
* BEMERKUNGEN : Funktioniert nur bei nicht proportionalen Fonts *
*----------------------------------------------------------------------------*)
PROCEDURE FontWidht(font : Font):INTEGER;
(*----------------------------------------------------------------------------*
* AUFGABE : Liefert die Breite eines Zeichens in diesem Font *
* PARAMETER : font <= Zugriff auf Font *
* c <= Zeichen, dessen Breite ermittelt werden soll *
* => Breite in Pixeln *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE CharWidth(font : Font;c : CHAR):INTEGER;
(*----------------------------------------------------------------------------*
* AUFGABE : Stellt fest, ob ein Font proportional ist *
* PARAMETER : font <= Zugriff auf Font *
* => TRUE, wenn Font proportional ist *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE IsProportional(font : Font):BOOLEAN;
(*----------------------------------------------------------------------------*
* AUFGABE : Setzt die Stilart des Font für die Ausgabe *
* PARAMETER : s <= Zugriff auf den Screen *
* style <= Stile, die ab jetzt gelten sollen *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
GROUP
FontGrp = Screen,Font,OpenFont,CloseFont,SetFont,GetFont,FontHeight,
FontWidht,CharWidth,IsProportional;
PROCEDURE SetStyle(s : Screen;style : StyleSet);
(*----------------------------------------------------------------------------*
* AUFGABE : Löscht eine Stilart *
* PARAMETER : s <= Zugriff auf den Screen *
* style <= Stil, der gelöscht werden soll *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE SubStyle(s : Screen;style : Styles);
(*----------------------------------------------------------------------------*
* AUFGABE : Setzt eine Stilart *
* PARAMETER : s <= Zugriff auf den Screen *
* style <= Stil, der gesetzt werden soll *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE AddStyle(s : Screen;style : Styles);
(*----------------------------------------------------------------------------*
* AUFGABE : Schreibt ein Zeichen an eine Bildschirmposition *
* PARAMETER : s <= Zugriff auf Screen *
* x,y <= Koordinaten *
* c <= auszugebendes Zeichen *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
GROUP
StyleGrp = Styles,StyleSet,SetStyle,SubStyle,AddStyle;
PROCEDURE WriteAt(s : Screen;x,y : INTEGER;c : CHAR);
(*----------------------------------------------------------------------------*
* AUFGABE : Schreibt eine Zeichenkette an eine Bildschirmposition *
* PARAMETER : s <= Zugriff auf den Screen *
* x,y <= Koordinaten *
* str <= auszugebende Zeichenkette *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE WriteStringAt(s : Screen;x,y : INTEGER;REF str : STRING);
(*----------------------------------------------------------------------------*
* AUFGABE : Schreibt eine Zeichenkette an eine Bildschirmposition *
* PARAMETER : s <= Zugriff auf den Screen *
* x,y <= Koordinaten *
* len <= Länge der Zeichenkette *
* pos <= Startposition im Speicher *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE WriteCharsAt(s : Screen;x,y,len : INTEGER;pos : CharPtr);
GROUP
WriteGrp = WriteAt,WriteStringAt,WriteCharsAt,CharPtr;
GROUP
All = FontGrp,StyleGrp,WriteGrp;
END GfxText.