12.06.2013 Views

1 - Amiga Magazine Online

1 - Amiga Magazine Online

1 - Amiga Magazine Online

SHOW MORE
SHOW LESS

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 è:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!