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-File8.22.45 TEDINFO TOSDie TEDINFO-Struktur wird benutzt um ein Textobjekt näher zu
beschreiben, und ist wie folgt definiert:
typedef struct
{
int8_t *te_ptext; /* Zeiger auf einen String */
int8_t *te_ptmplt; /* Zeiger auf die Stringmaske */
int8_t *te_pvalid; /* Zeiger auf den Gültigkeitsstring */
int16_t te_font; /* Zeichensatz */
int16_t te_fontid; /* GDOS Font-ID */
int16_t te_just; /* Justierung des Textes:
0 = linksbündig
1 = rechtsbündig
2 = zentriert */
int16_t te_color; /* Farbe */
int16_t te_fontsize; /* GDOS Font-Größe in Punkten */
int16_t te_thickness; /* Rahmenbreite */
int16_t te_txtlen; /* Maximale Länge des Textes */
int16_t te_tmplen; /* Länge der Stringmaske */
} TEDINFO;
Dabei gilt es, die folgenden Einzelheiten zu beachten:
∙ te_ptext: Wenn das erste Zeichen ein Klammeraffe (!) ist, werden
alle folgenden Zeichen als Platzhalter angesehen, und der
zunächst ausgegebene String besteht aus Leerzeichen. Folge: Der
Klammeraffe kann niemals am Anfang eines Edit-Feldes stehen!
∙ te_ptmplt: Schablone (template). Sie wird nur bei G_FTEXT und
G_FBOXTEXT verwendet, d.h. bei G_TEXT und G_BOXTEXT kann hier ein
Null-Zeiger stehen. Bei der Ausgabe werden alle '_' Zeichen in
der Schablone sukzessive durch die Zeichen in te_ptext ersetzt,
d.h. es wird eine Misch-Zeichenkette gebildet. I.A. wird die
Schablone also soviele '_' Zeichen enthalten, wie der Puffer für
te_ptext lang ist (ohne abschließendes Nullbyte).
∙ te_pvalid: String, der für jedes Zeichen in te_ptext eine
Zeichenkette enthält, die über die Gültigkeit verschiedener
Zeichen an dieser Stringposition Auskunft gibt. Es gilt:
Zeichen Bedeutung
1 - 9 Accept any digit from 0 to that number. This is handy
for doing octal ('7') or binary ('1') validation.
(Geneva)
9 nur Ziffern
A nur Großbuchstaben/Leerzeichen
a nur Buchstaben/Leerzeichen
N Großbuchstaben, Ziffern, Leerzeichen
n Buchstaben, Ziffern, Leerzeichen
F alle Zeichen, die zu einem Dateinamen gehören und '*',
'?' und ':'.
f alle Zeichen, die zu einem Dateinamen, ohne '*', '?'
und ':'.
h Hexadezimale Zeichen. (Geneva)
H Hexadezimal Zeichen. Kleinbuchstaben a - f werden in
Großbuchstaben A - F umgewandelt. (Geneva)
P alle Zeichen, die zu einem Pfadnamen gehören
p analog 'P', aber ohne die Zeichen '?' und '*'
m alle Zeichen, die für einen langen Dateinamen gültig
sind; d.h. alle Zeichen außer Steuerzeichen (ASCII <
32), sowie außer ':' und '\'. Dieser Code wird z.Zt.
nur von MagiC unterstützt.
X alle Zeichen
x alle Zeichen, Kleinbuchstaben werden automatisch in
Großbuchstaben umgewandelt. (Geneva)
∙ te_font: 3 = normal
5 = kleiner Zeichensatz
Für weiters siehe unten.
∙ te_fontid: Für weiters siehe unten.
∙ te_color: Für die Farbe des begrenzenden Rechteckes gilt die
folgende Belegung:
Bit Bedeutung
12..15 Rahmenfarbe (0..15)
08..11 Textfarbe (0..15)
7 Text (0 = transparent, 1 = deckend)
4.. 6 Intensität
0 = hohl
1..6 = ansteigende Intensität
7 = solide Fläche
0.. 3 Innenfarbe (0..15)
∙ te_thickness: Für den Rahmen sind folgende Werte gültig:
Wert Bedeutung
0 kein Rahmen
1.. 128 Rand liegt 1 bis 128 Pixel im Inneren
-1..-127 Rand liegt 1 bis 127 Pixel außerhalb des Objektes
Hinweis: Die Komponenten te_fontid und te_fontsize waren bisher
reserviert. Ab AES-Version 4.1 ist es möglich, beliebige GDOS-Fonts
für TEDINFO-Objekte zu benutzen.
Dazu ist über die Komponente te_font die Art des Zeichensatzes zu
spezifizieren:
te_font Bedeutung
0 SpeedoGDOS Font
1 SpeedoGDOS Font (monospaced)
2 GDOS Bitmap-Font
3 System-Zeichensatz
5 kleiner System-Zeichensatz
Für Werte im Bereich 0..2 von te_font kann dann über die Komponenten
te_fontid bzw. te_fontsize der gewünschte Zeichensatz und die
gewünschte Punktgröße eingestellt werden.
Das Vorhandensein der neuen Möglichkeiten kann am einfachsten per
appl_getinfo (Opcode 13) ermittelt werden.
Querverweis: AESGEMOBJECTXTEDScrollende Eingabefelder