XFwm4: XPM file
Il formato XPM è il formato standard dei pixmap gestiti da X Window.
XPM salva i dati dell’immagine in formato ASCII, formattandoli sottoforma di array di stringhe in formato Standard C. La comodità quindi, è di poter editare tale immagine con un comune text-editor.
Sintassi di un file XPM
Un file XPM deve essere strutturato secondo lo schema seguente:
/* XPM */ static char * <pixmap_name>[] = { <Values> <Colors> <Pixels> <Extensions> };
Un file XPM deve sempre cominciare con la stringa XPM delimitata dai token-comments di Standard C.
/* XPM */
Subito dopo il commento di identificazione del file XPM, troviamo la definizione dell’array, che conterrà i dati del pixmap, in formato stringa.
static char * <pixmap_name>[] = { ... };
All’interno dell’array, quindi, troviamo la definizione e i dati riguardando il pixmap.
<Values> <Colors> <Pixels> <Extensions>
– Values
La sezione
La sintassi della sezione
<width/columns> <height/rows> <numcolors> <cpp> [<x_hotspot><y_hotspot>] [XPMEXT]
dove:
[
[XPMEXT]: opzionale, indica che in fondo al file, vengono utilizzate informazioni sul pixmap supplementari.
– Colors
La sezione
Qui verranno definite tante stringhe, quanti saranno i colori utilizzati.
La sintassi per la definizione del colore è la seguente:
<character> { <key> <color> } { <key> <color> }
dove:
– m: Mono
– s: Symbolic name
– g4: 4 livelli di Scala di Grigio
– g: Sacla di Grigio (più di 4 livelli)
– c: Color
Il symbolic name specifica i colori in fase di caricamento e non verranno quindi generati all’interno del file.
Passare a
– Pixels
La sezione
Ogni
In sostanza viene rappresentata l’immagine tramite caratteri.
– Extensions
La sezione
Ogni Extensions supplementare si dichiara a fine file con la seguente sintassi:
XPMEXT <extension-name> <extension-data>
oppure si indica il nome della extension e nella sottosezione, si indicano le multiple extension-data:
XPMEXT <extension-name> <extension-data-1> <extension-data-2>
terminata la definizione delle extensions, si deve aggiungere la stringa di fine sezione:
XPMENDEXT
un esempio di chiusura sezione:
"XPMEXT extension-1 data-1", "XPMEXT extension-2", "data-2_1", "data-2_2", "XPMENDEXT" };
Esempio
Di seguito un pixmap di un tema Xfwm4 (Greybird), per la precisione il file XPM del bottone di chiusura della titlebar:
/* XPM */ static char * close_prelight_xpm[] = { "20 24 8 1", " c None", ". c #939393", "+ c #FFFFFF", "@ c #DEDEDE s active_color_2", "# c #4B4B4B", "$ c #666666", "% c #E5E5E5", "& c #8B8B8B", "....................", "++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@##@@@@##@@@@@@", "@@@@@@$$#@@#$$@@@@@@", "@@@@@@%$$##$$%@@@@@@", "@@@@@@@%$$$$%@@@@@@@", "@@@@@@@@&$$&@@@@@@@@", "@@@@@@@#$$$$#@@@@@@@", "@@@@@@#$$%%$$#@@@@@@", "@@@@@@$$%@@%$$@@@@@@", "@@@@@@%%@@@@%%@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@"};
Vediamo una sezione alla volta:
/* XPM */
il commento di identificazione del file XPM
static char * close_prelight_xpm[] = { ... };
definizione dell’array
"20 24 8 1",
sezione
" c None", ". c #939393", "+ c #FFFFFF", "@ c #DEDEDE s active_color_2", "# c #4B4B4B", "$ c #666666", "% c #E5E5E5", "& c #8B8B8B",
Questa è la sezione
lo schema è
se prendiamo il carattere “@” che fa da sfondo alla croce (la x di chiusura della titlebar), come si nota
"@ c #DEDEDE s active_color_2",
tramite la
infine:
"....................", "++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@##@@@@##@@@@@@", "@@@@@@$$#@@#$$@@@@@@", "@@@@@@%$$##$$%@@@@@@", "@@@@@@@%$$$$%@@@@@@@", "@@@@@@@@&$$&@@@@@@@@", "@@@@@@@#$$$$#@@@@@@@", "@@@@@@#$$%%$$#@@@@@@", "@@@@@@$$%@@%$$@@@@@@", "@@@@@@%%@@@@%%@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@"};
questa è la rappresentazione via carattere, del nostro simbolo.
Ad ogni carattere corrisponde un colore da noi definito e come si nota, l’area è precisamente quella definita nella sezione
Commenti recenti