Display

5.6.6

Principio di funzionamento generale

Questa sezione raccoglie tutte le funzioni che permettono di stampare del testo.
Easyhand usa due tipi font face : uno nativo cross/platform e uno legato alla piattaforma.

Le origini

Quello nativo era nato in DOS e quindi con forti limitazioni; il DOS non prevedeva grafica vettoriali, ma solo in una modalita carattere 80 colonne x 25 righe.
Quando si operava in modalità grafica CGA/VGA, l'unico supporto era il BIOS che conteneva la mappa di caratteri a larghezza fissa (8px x 8px).
Easyhand sfruttava una serie di files che erano in windows 3.1 e contenevano i bitmap monocromatici delle lettere già renderizzati, in diverse altezze di carattere e ogni lettera aveva larghezza differente.
Probabilmente questi file, permettevano al windows dell'epoca, di stampare scritte, prima dell'attivazione del sistema vettoriale.
Ogni file conteneva il nome del font (Es. SMALL F) e diverse serie di bitmap monocromatici con diverse altezze: 5,7,12,14 pixel ad esempio.
Con questi files era difficile impostare delle funzioni che contenessero l'indicazione dell'altezza del carattere, quindi le istruzioni di stampa contengono:


Esistono quindi un sotto insieme di funzioni (tutte quelle che contengono la lettera f) che richiedono questi due parametri.
All'avvio questi files venivano allocati in una tabella in memoria e potevano essere usati nelle funzioni di testo, indicando l'handle della memoria diretto per velocizzare la stampa.
I nomi dei fonts disponibili sono: SMALL F, SMALL E, VGASYS, VGAFIX, 8514SYS, 8514FIX, COURIER, SANS SERIF F, SANS SERIF E.

L'evoluzione

Con l'introduzione di piattaforme più elaborate cone supporto GDI, come Windows, si è creata in Easyhand una struttura per mantenere la compatibilità con le vecchie applicazioni ma che nel contempo permettesse di usare le nuove risorse.

I file che contenevano i fonts non vengono più usati, ma easyhand fa una "emulazione" dei font originali, sostituendoli con i font di sistema.
Segue struttura di conversione

EH_FONT_OLD arFontOldStyle[]={
{"VGASYS","Tahoma","16",STYLE_BOLD},
{"SMALL F","Tahoma","7,9,11,13,14",STYLE_NORMAL},
{"8514FIX","Terminal","20",STYLE_BOLD},
{"8514SYS","Arial","19",STYLE_BOLD},
{"COURIER E","Courier","13,16,20",STYLE_NORMAL},
{"COURIER F","Courier","16,20,25",STYLE_NORMAL},
{"SANS SERIF E","Times New Roman","13,16,19,21,27,35",STYLE_NORMAL},
{"SANS SERIF F","Times New Roman","16,20,23,27,33,43",STYLE_NORMAL},
{"SMALL E","Tahoma","8,10,11,10,11",STYLE_NORMAL},
{"VGAFIX","Fixedsys","15",STYLE_BOLD},
{NULL}};
 

La struttura contiene nell'ordine: il nome del vecchio font, il nome del font in sostituzione, le altezze disponibili per nfi, e lo stile.

Se si desidera usare un font in TrueType direttamente gestito dalla piattaforma, basterà comunque indicare il font preceduto da un cancelletto: Es. "#Arial" e seguito dalla sua altezza in pixel.

Es. Tdispf(DExt->px+1,DExt->py+1,0, -1,STYLE_BOLD,"#Arial",16,objCalled->text);


Tuttavia, è molto utile nei form di dialogo e negli oggetti (si mantiene la compatibilità multi-piattaforma), usare il metodo nativo, non preoccupandosi quindi di quale nome di font usare e di quale altezza usare.
Normalmente si usa SMALL F, 3 per i bottoni, liste, scroll, menu e VGASYS,0 per i campi di input.

Lo stile

Easyhand tende a semplificare al massimo l'uso dei font, senza però perdere le caratteristiche più importanti.
Lo stile è un parametro sempre presente all'interno delle funzioni che permette come si può intuire, di determinare lo stile di stampa.
Il valore può essere STYLE_NORMAL una o più delle seguenti macro.


Il dbase in memoria

Per velocizzare al massimo le performance di easyhand, i font vengono memorizzati in memoria in un dbase.
Il sistema di memorizzazione è automatico, e se lo si desidera Easyhand ritorna un handle del font che può essere usato in tutte le funzione che contegono "_h".

Altri stili o caratteristiche speciali non vengono fornite dalle API di Easyhand, quindi è necessario usare quelle native della piattaforma.

Per ulteriori informazioni vedi la sezione Fonts.
See also:
Easyhand C/C++: Display | Last modified: 13/01/2011 10.09.58 Europe/Rome | #1.466
P.. 735
Easyhand C/C++
Una mano alle tue idee.
|
Privacy Policy