Le principe des skins est de remplacer les dessins succints des boutons par
des images, ce qui permet de personnaliser l'interface.
Comme les boutons et autres cadres peuvent avoir des tailles variables, il
faut leur appliquer non pas une image fixe, mais un motif qui permettra de
les recouvrir entierement quelque soit leur taille. Apres avoir applique ce
motif de base, une icone (de taille fixe cette fois-ci) pourra aussi etre
collee sur le bouton.
Pour que l'aspect des boutons soit realiste, il est necessaire que les coins
et les bords aient un aspect different du motif central. C'est pour cela qu'on
va utiliser des images decoupees en 9 parties:
Les coins (1, 3, 7 et 9) ne seront affiches qu'une fois sur le bouton. Les
autres parties seront repetees autant de fois que necessaire pour combler
l'espace entre les coins. 2 et 8 sont repetees horizontalement, 4 et 6
verticalement, et 5 est repetee dans les deux directions. Si le bouton est
plus petit que l'image formee par les quatre coins reunis, ces coins sont
tronques a partir du centre pour qu'ils rentrent dans le bouton.
Elements d'une skin
Dans l'interface, on peut distinguer deux coloris differents, utilises pour
bien sepaerer les menus et boutons. Ces coloris sont dits primaires et
secondaire. Le coloris primaire de l'interface non skine est gris, et le
secondaire est gris-bleu.
Dans chacun de ces coloris, il y a trois types de motifs: les boutons, les
champs de texte et les cadres. Les premiers sont tres nettement en relief,
les deuxiemes sont evides et accueillent du texte (editable) a l'interieur,
et les troisiemes servent de fond.
Chacun de ces motifs peuvent avoir trois etats: normal, selectionne et grise.
Il est donc possible de redefinir 2x3x3 = 18 motifs differents pour etre
exhaustif. Cependant on n'est pas oblige de redefinir tous les motifs. De
plus, les motifs grises sont tres peu utilises et peuvent etre generes
automatiquement par le Graoumf Tracker.
Mais il n'y a pas que les motifs. Il y a egalement toutes les icones et
dessins qui parsement l'interface. La aussi, ils peuvent etre dans trois
etats: normal, selectionne ou grise. Notons que contrairement aux motifs,
ces etats ne sont pas tous utilises par chaque icone, ce qui limite le
travail de redefinition. Toutes les icones redefinissables sont dans le
repertoire gfx/ du Graoumf Tracker, ainsi que dans ses
sous-repertoires.
Toutes les elements graphiques sont en 256 couleurs. Une palette est donc
necessaire pour les dessins. Les 128 premieres couleurs sont reservees mais
peuvent etre utilisees. Les 127 suivantes peuvent etre librement redefinies
par l'utilisateur. Enfin la couleur 255 est transparente: les pixels dessines
avec ne sont pas affiches. Cette couleur est utile pour les icones, car elle
permet de laisser le motif des boutons apparaitre sous le dessin de
l'icone.
Les couleurs 16 a 31 sont des couleurs standard. Elles sont utilisees pour
afficher les textes, le dessin des boutons et cadres en mode non-skine, etc.
Comme il se peut que les couleurs de votre skin soient completement
differentes des couleurs standard, il est souhaitable que les textes
apparaissent d'une couleur plus adaptee a votre skin. Il sera donc necessaire
de "mapper" ces couleurs standard sur vos couleurs personnelles.
Le fichier de configuration
Chaque skin devra occuper un repertoire. Dans ce repertoire, un fichier nomme
skin.inf donnera toutes les informations necessaires sur la skin. Les
graphiques redefinis seront places et nommes dans ce repertoire de la meme
facon qu'ils le sont dans gfx/. Surtout ne modifiez pas ce dernier
repertoire ! Graoumf Tracker ira chercher dedans tous les dessins que vous
n'avez pas redefinis.
Toutes les images doivent etre au format PCX version 5 (256 couleurs). La
palette officielle est situee dans le fichier
gfx/default_palette.pcx.
Le fichier font.pcx peut egalement egalement etre redefini. Il contient
tous les caracteres ASCII (0 a 255) au format 8x12, ranges les uns a cotes des
autres par lignes de 32 caracteres. Le fond est de couleur 0 et les caracteres
de couleur 255.
Format general
Le fichier de configuration est un fichier ASCII, contenant un certain nombre
de cles. Chaque cles peut a son tour contenir d'autres cles, et ainsi de
suite. Une cle peut avoir un nom, place a gauche d'un signe '=' (ex: path =
"truc\machin"), ou etre anonyme.
De plus, la valeur d'une cle peut etre soit:
une chaine simple (encadree par des guillement si elle contient des espaces, virgules ou
accolades)
ou alors une liste de cles. Les listes sont encadrees par des accolades.
Vous pouvez mettre des commentaires dans le fichier. Ils commencent par // et
se terminent a la fin de la ligne.
Informations sur la skin
Deux cles obligatoires permettent d'obtenir des renseignement sur la skin:
skin_name = valeur_chaine
C'est le nom de votre skin, tel qu'il apparait dans le menu Pref du Graoumf
Tracker.
skin_copyright = valeur_chaine
Il s'agit d'informations complementaires sur votre skin.
Les couleurs
Ces cles vous permettent de redefinir vos couleurs.
color_change =
{
nom_de_fichier couleur_de_debut couleur_de_fin
}
Cette cle indique dans quel fichier graphique se trouve la palette redefinie,
et quelle est la plage des couleurs qu'il doit prendre en compte dans cette
palette. Ces couleurs peuvent etre comprises entre 128 et 254.
color_map =
{
couleur_16 couleur_17 couleur_18 ...
}
Indique quelles couleurs vont etre utilisees a la place des couleurs 16 a ...
Si vous ne voulez pas mapper une certaine couleur, laissez son numero
d'origine (ex: 18 a la place de couleur_18). Notez que vous pouvez
mapper autant de couleurs que vous desirez. Cependand, l'aspect de l'interface
dependant des couleurs 16 a 31, ce sont ces index que vous aurez a redefinir.
Vous trouverz plus bas la liste precise de ces couleurs, avec leur utilisation
standard.
Les motifs
default_primaryou/etdefault_secondary =
{
frameou/etbutton =
{
normalou/etselectedou/etdisable =
{
pic = nom_de_fichier tile = { x y largeur hauteur }
}
} ou/ettext_field =
{
normalou/etselectedou/etdisable =
{
pic = nom_de_fichier tile = { x y largeur hauteur } center = { x y largeur hauteur }
}
}
}
Toutes ces cles sont optionnelles (sauf les cles internes a normal,
selected et disable). default_primary et
default_secondary designent les types de couleurs. frame
designe les cadres, button les boutons et text_field les
champs de texte. Chacun de ces objets peut avoir des images differentes
pour normal, selected et disable. Au sein de ces
cles, on retrouve deux cles communes et obligatoires:
pic: C'est le nom du fichier contenant l'image qui est associe
a cet etat.
tile:
Indique les coordonnees et dimensions du bloc numero 5
au sein de l'image. Il est important de signaler que chacun des blocs doit
etre present, donc x et y ne peuvent pas etre nuls, hauteur et largeur non
plis, et le bloc doit tenir completement dans l'image. Les positions sont
referencees a partir de (0, 0), qui designe le coin haut-gauche de
l'image.
On retrouve en plus dans les membres de text_field la cle
center. Elle fonctionne comme tile mais designe la position
reelle de la zone dans laquelle seront affiches les textes. Cette zone ne
correspond pas forcement a la zone 5, elle peut etre plus grande, ce qui
permet de faire des bords de motifs plus interessants.