Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
siamo interessati (si veda la tabella 2). Quando si verifica<br />
uno di questi eventi, Intuition invia un messaggio (strut-<br />
tura IntuiMsg) alla porta associata alla finestra; vedremo<br />
fra poco come ricevere e interpretare questi messaggi.<br />
I Jag difinestra, al contrario, segnalano a Intuition alcuni<br />
particolari sulle proprietà della finestra; spesso ci sono<br />
corrispondenze precise fra Jag di finestra e Jag IDCMP<br />
per esempio, se il Jag difinestra chiede che venga dise-<br />
gnato il gadget di chiusura, il Jag IDCMP dovrà chiedere<br />
che venga spedito il messaggio relativo quando l'utente<br />
preme il gadget, a meno di non volere un gadget di chiu-<br />
sura che non funziona!<br />
I1 titolo è, semplicemente, il titolo della finestra, sotto for-<br />
ma di stringa, mentre schermo e flag di schermo indicano<br />
su quale schermo essa dovrà aprirsi: se Jag di schermo<br />
vale CUSTOMSCREEN (15), la finestra si aprirà sullo<br />
schermo indicato (questo puntatore può essere ottenuto<br />
da OpenS( ) o dalle tradizionali funzioni di Intuition), al-<br />
trimenti il valore WBENCHSCREEN (1) farà sì che la fine-<br />
stra si apra sullo schermo del Workbench, o sullo scher-<br />
mo pubblico di default, e in tal caso il parametro scher-<br />
mo sarà ignorato.<br />
Rimane il parametro gadget, che però vedremo in seguito<br />
quando parleremo della funzione Gadget( ), e la taglist<br />
che può essere utile per specificare ulteriori parametri.<br />
i1 valore ritornato da OpenW( ) è un puntatore alla fine-<br />
stra di Intuition (PTR T0 window), che può essere usato<br />
con le normali funzioni di <strong>Amiga</strong>OS, oppure NIL in caso<br />
di fallimento. Inutile dire che la finestra può essere chiu-<br />
sa con la funzione:<br />
analogamente a quanto abbiamo visto per gli schermi.<br />
Le funzioni di disegno<br />
Una volta aperto uno schermo o finestra, è possibile usa-<br />
re le funzioni di disegno che E mette a disposizione. Tut-<br />
te queste funzioni fanno riferimento a una variabile pre-<br />
definita di nome stdrast, che contiene un puntatore a<br />
un'area di disegno (struttura RastPort della graphics.li-<br />
brary); sia OpenS( ) che OpenW( ) impostano stdrast alla<br />
RastPort dello schermo o della finestra appena aperta, ed<br />
è quindi sufficiente aprire uno schermo o finestra perché<br />
sia subito possibile disegnare al loro interno (di conver-<br />
so, le funzioni di chiusura impostano stdrast a NIL, per<br />
cui non è più possibile disegnare alcunché).<br />
La prima, e più semplice, di queste funzioni è la:<br />
che traccia un singolo punto alle coordinate x, y con il<br />
colore indicato (il numero massimo di colori dipende dal-<br />
lo schermo su cui si disegna). Similmente, la funzione:<br />
traccia una linea dal punto xl, yl al punto x2, y2 nel co-<br />
lore indicato, mentre la:<br />
traccia un rettangolo (pieno) con gli estremi indicati. L'ul-<br />
tima funzione di tracciamento è la:<br />
in cui il formato e gli (eventuali) argomenti sono simili a<br />
quelli di WriteF( ) ma che, a differenza di questa, "stam-<br />
pa" la stringa risultante alle coordinate x, y della stdrast.<br />
I1 font usato per questa stringa sarà quello di default, a<br />
meno che non venga modificato tramite le funzioni della<br />
graphics.library o la funzione di E:<br />
che imposta (ovviamente) il font Topaz nella dimensione<br />
punti (attenzione: l'uso di questa funzione è sconsigliato,<br />
poiché non tiene conto delle preferenze dell'utente); il<br />
font Topaz è sempre disponibile nelle versioni a 8 e 9<br />
punti (sono entrambe in ROM), altre dimensioni possono<br />
essere presenti su disco o prodotte scalando opportuna-<br />
mente una di quelle disponibili.<br />
La gestione dei colori è affidata a due funzioni, la prima<br />
è:<br />
la quale, limitatamente allo schermo indicato,che deve es-<br />
sere uno schermo custom, eventualmente aperto con<br />
OpenS( ), imposta il colore numero reg ai valori RGB in-<br />
dicati. I colori sono espressi su 24 bit, 8 bit per compo-<br />
nente, per cui 255, 255, 255 rappresenta il bianco puro,<br />
mentre 128, 128, O è un giallo a mezza intensità; la fun-<br />
zione provvede ad "adattare" il colore richiesto alle possi-<br />
bilità della macchina disponibile (per gli <strong>Amiga</strong> ECS, so-<br />
no possibili soltanto 4.096 colori, contro gli oltre 16 mi-<br />
lioni degli <strong>Amiga</strong> AGA).<br />
La seconda funzione è: