Envi(e) de participer ? Inscrivez-vous
[TUTO] Comment créer un skin pour CList Modern (anglais)

 
Ce forum est verrouillé, vous ne pouvez pas poster, ni répondre, ni éditer les sujets.   Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.    Index du forum -> Tutoriaux
 Auteur
a7
"O_o"



Inscrit le: 01 Jan 1970
Messages: 906



Posté le : Sam Jan 21, 2006 18:42 MessageSujet: [TUTO] Comment créer un skin pour CList Modern (anglais)
Répondre en citant

Modern Contact List Layered
Skin development guide (13-sep-2005).

Based on version clist_modern.dll v.0.3.1.198

Common definitions

Skin engine is based on next definitions and concepts:

  • Object – component of skin. All skin objects are created during module loading.
  • Objects describes what and how is need to paint as reply to Request. Glyph –  Some image.
  • Now time are supported BMP, JPG and PNG (with transpaancy, imagedecoder.dll library is needed for).
  • Size of glyph is defined by image size.
  • Glyph picture loads to memory only at first attempt to paint it and is kept in memory till module unloading or other skin loading.
  • Rule – rule which Object is correspond to Request
  • Request – request from module (this or other) to paint one of corresponding objects at specific place and size.

Work Algorithm

Skin engine sequence is next:

  • Module generate request string as soon as it needs to paint something and give it to skin engine.
  • Skin engine try to find first rule that correspond to given request and select an object that pointed by this rule.
  • If selected object is Solid type: The requested area is painted by corresponding color with specified alpha.
  • If selected object is a Image: such image is transformed to requested region size and paints

Rules and Request.

Rule consists of:

  1. Number
  2. Name of object to point
  3. Couple of parameters delimited by ‘,’.

Each parameter is a union of:

  • Parameter’s name (first parameter has name ‘Module’ and that always skipped).
  • Condition (= - ‘is equal’, ^ - ‘is not equal’)
  • Parameter value.

Request has the same part as rule except number.

The rule corresponds to the request if:

    • Request contains all the rule’s parameters. (also request can contain the parameter that is not mention in rule)
    • All values of common parameters are the same if rule’s parameters condition is ‘equal’ and not the same if rules condition is ‘not equal’.
    • Rule parameter values can contain wildcards ‘*’ and ‘?’.

Rule parameter’s names and values can contain up to 24 chars.
Values can not contain ‘,’ (comma) all commas are replaced by ‘.’ (dots)
Names and values are CASE SENSITIVE.
First parameter name should be skipped when points.

Glyph transformation

Example: We need to paint glyph with sizes 70х70 at the rectangle size 100х100.

Define for margins: Left, Top, Right, Bottom.
These margins divide glyph at 9 areas:

  1. 4 corners
  2. 4 edges
  3. center

Transformation rules:

  • Corner areas of glyph are painted as-it-is at the destination corners without any resizing.
  • Edge parts transforms in direction along their nearest edges and keeping perpendicular to edge size as is.
  •  Center area transforms in both directions

 
After transformation (StretchBoth mode)

There is 4 transformation modes:

  1. StretchBoth – stretch at both directions
  2. TileHorz – Tile horizontal, but stretch vertical
  3. TileVert – Tile vertical but stretch horizontal
  4. TileBoth – Tile at both directions

Skin definition

Skin is union of skin description file (*.msf) and folder with graphic resources.
Folder name should be the same as the name of descriptor file (without extension). All files inside descriptor should be referenced without path

Descriptor file is the common ini file with changed extension. All keys imports to DB during skin loading. File formats is next:

[db_section_name]
; comments
Key=#Value
Key2=#Value2

Here  «#»  is placeholder for one of key type data marks. They can be one of following

  1. «b» - BYTE
  2. «w» - WORD
  3. «d» -  DWORD
  4. «s» - STRING

All modern skin objects and rules are kept in [ModernSkin] section with string type value. So in this section all keys have ‘s’ after ‘=’ e.g.:
$hotopengroup=sGlyph,Image,hotopengroup.png,StretchBoth,2,2,2,2,250
@0=s$window:Main,ID=Background

Spaces inside are not allowed (only for string parameters like …,Name=First Name,…).

Objects description.

 

So skin consists from several parts. One of they describes Objects.

Objects are described in next way:

$object_name=sGlyph,object_type,parameters,…

Here    object_name – object name used to point from rules
            object_type – one of types Image or Solid
параметры,… –parameters.

for Solid type:
$object_name =sGlyph,Solid,RedValue,GreenValue,BlueValue,AlphaValue

for Image:
$object_name =sGlyph,Image,File_Name,Fit_Mode,Left,Top,Right,Bottom,AlphaValue

here : RedValue, GreenValue, BlueValue, AlphaValue – Red,Green,Blue and alpha transparency values.
File_Name –glyph image file name.
Fit_Mode – transform mode: StretchBoth, TileHorz, TileVert, TileBoth.
Left, Top, Right, Bottom – transform margins.

Examples:
$window=sGlyph,Image,back.bmp,TileBoth,1,1,1,1,150
$closed_miranda_group=sGlyph,Solid,0,0,255,200

Rule description

Next part describes Rules

Rules are described in next way:

@rule_number=s$object_name:Module_parameter_value,param_name=value,parameter_name^value,…

Here: rule_number – number. Numbers should starts from zero and be in sequence without skipping.

Example:
  @0=s$window:Main,ID=Background
  @1=s$closed_miranda_group:CL,ID=Row,Type=Group,Open^True,Name=Mir*a*

For this example object $window (image back.bmp) will be painted if request contain first parameter value «Main» and parameter «ID» value will be «Background».
Object $closed_miranda_group (fill it with blue and alpha 200) will be painted if request will contain first parameter «CL»,  and «ID» equal to «Row», «Type» equal «Group», parameter «Open» NOT equal to «True» and «Name» like «Mir*a*» (e.g Miranda-IM).

Buttons description

Next part describes Buttons

Buttons can be placed in any area of window (but prefer on margins, otherwise they will be covered by frames.

Buttons can be to types Push and Switch.

Push button description is:

#name=sPush,ServiceNameToCall,fromLeft,fromTop,fromRight,fromBottom,Flags,MinWindowWidth,MinWindowHeigh,HintText

Switch button description is:

#name=sSwitch,ServiceNameToCall,StateDBKey,ValueTypeandDefault,fromLeft,-->

<-- fromTop,fromRight,fromBottom,Flags,MinWindowWidth,MinWindowHeigh,HintText

Here is ServiceNameToCall – name of service to be called on key pressure
StateDBKey – name of key to be quoted in request to draw.
ValueTypeandDefault – type of parameter (first char (b,w,d or s) ) and default value
FromLeft,FromTop – position of left-top corner relativity to specified in flags
FromRight,FromBottom – position of right-bottom corner relative to specified in flags
Flags – relativity and behaviour flags is sequence of chars in next order:‘ABCDE’: A-relativity of left edge, B- top edge, C-right edge, D-from bottom  ( value is ‘R’-from right (for A and C), ‘B’ from bottom (for B and D), or ‘-‘ from left (A&C) and top (B&D)), E– can be ‘I’ immediately cal service as user press button, or ‘-‘ wait till he release it.
MinWindowWidth, MinWindowHeigh – minimal window size to show button, (otherwise hide it)
HintText – Tool tip text to show (‘,’ (comma) is not allowed).
             
Then module is need to paint button it form request like (button was desribed like: #statusmenu=sPush,CList/ShowStatusMenu,24,4,40,20,-----,100,0,Show Status Menu)
           
MButton,ID=statusmenu,Hovered=1,Down=0

If switch button is specified it add value: Value=0 (db key value instead of ‘0’)

Modern Paint Request Sequence:

 

  1. Paint backgrounds via request

Main,ID=Background

  1. Paint StatusBar, Frame captions backgrounds via

 Main,ID=StatusBar
 Main,ID=FrameCaption

  1. Paint buttons via request:

MButton,ID=buttonname,Hovered=x,Down=y,Value=z
MButton,ID=buttonname,Hovered=x,Down=y

  1. Paint Contact List in next sequence:
    1. Paint contact list Background:

CL,ID=Background

    1. Paint Row background (request forms according to row content)

CL,ID=Row,Type=Contact,Selected=True,…

    1. Paint Common selection if selected

CL,ID=Selection

    1. Paint Common hottracking if hot

CL,ID=HotTracking

    1. Draw row content (avatar, text, icons)
    2. Paint row overlay (request forms according to row content)

CL,ID=Ovl,Type=Contact,Selected=True,…

    1. Repeats b.-f. for each row
  1. Paint Scroll bar in next
    1. Paint scroll bar background

Main,ID=ScrollBar,Part=Back

    1. Paint scroll bar items

Main,ID=ScrollBar,Part= UpLineButton
Main,ID=ScrollBar,Part= DownLineButton
Main,ID=ScrollBar,Part= Thumb

Table of available params and values

Param

Value

Description

Module

Main

Mail window parts

ID

Background
StatusBar
FrameCaption

Window back
Status Bar back
Frame Caption back

ID

ScrollBar

Scrollbar

Part

Back
UpLineButton
DownLineButton
Thumb

Scroll bar parts

Module

CL

Contact list objects

ID

Row
Ovl

For each row back is generated with param ID=Row, for overlay with ID=Ovl

Type

Group
Contact
MetaContact
SubContact
Divider
Info

Type of row: Group name, contact, metacontact etc.

GroupPos

SubPos

First
First-Single
Middle
Last

Position of contact in parent group or position of subcontact in metacontact and its parent meta in group.

Open
Selected
Hot
Odd

True
False

Collapse, selection, hot and odd values of row

Index
Indent

Number

Number of line in list
Indent of row (0 – in root, 1-in first leveled group etc.)

Status

OFFLINE
ONLINE
AWAY
DND
NA
OCCUPIED
FREECHAT
INVISIBLE
ONTHEPHONE
OUTTOLUNCH
IDLE

Status of contact

Protocol
Name
GroupName

text

Names of protocol, nick (row text), parent group (parent row text)
(commas replace to dots)

ID

GreyAlternate
Selection
HotTracking

Common objects for Selection, Hot and Odd

Module

MButton

Buttons

ID

text

Button name (without ‘#’)

Down
Hovered

0
1

Pressure and hot states

Value

text

Value of associated with triggered button DB key



Arrow Example of dump of Crystal skin at real list.


Citation:
Tutorial tiré du site : http://shpynov.nm.ru/alpha/



skinguide_eng.zip
 Description:
Télécharger le fichier au format RTF.

Télécharger
 Nom du fichier:  skinguide_eng.zip
 Taille du fichier:  17.58 Ko
 Téléchargé:  268 fois

_________________
Voir le profil de l'utilisateur Envoyer un message privé
 Auteur
manudevil
Modérateur
Modérateur


Inscrit le: 20 Juil 2005
Messages: 1017
Localisation: Lyon


Posté le : Sam Jan 21, 2006 22:57 MessageSujet: (Pas de sujet)
Répondre en citant

Eh ben ça n'a pas l'air simple... Mais c'est intéressant ! Bon, va falloir traduire tout ça, je pense.
_________________

Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Adresse AIM Yahoo Messenger MSN Messenger Jabber Messenger: manudevil(AT)jabber.ru
 Auteur
Megalo
p'tit nouveau
p'tit nouveau


Inscrit le: 17 Sep 2005
Messages: 110



Posté le : Lun Fév 20, 2006 23:05 MessageSujet: (Pas de sujet)
Répondre en citant

Ouh la belle faute !









PS : c'est dans le titre, je suis bon seigneur je t'aide Laughing
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Jabber Messenger: megalo@jabber.ru
 Auteur
kdrt
Modérateur
Modérateur


Inscrit le: 12 Aoû 2005
Messages: 622
Localisation: Bruxelles, BE


Posté le : Mar Fév 21, 2006 2:28 MessageSujet: (Pas de sujet)
Répondre en citant

J'ai pas peu m'empêcher de la corriger ^^
_________________
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Yahoo Messenger Jabber Messenger: cdrc@jabber.ru
 Auteur
Dagobert_78
Chef Traducteur
Chef Traducteur


Inscrit le: 28 Juil 2005
Messages: 755
Localisation: Versailles (près de)


Posté le : Mar Fév 21, 2006 21:53 MessageSujet: (Pas de sujet)
Répondre en citant

Moi qui suis nul en anglais et qui pensais tomber sur un forum francophone, j'suis déçu. :p
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur Adresse AIM Yahoo Messenger MSN Messenger Jabber Messenger: Dagobert_78@jabber.fr
 Auteur
pirlouy
Déchireur de post
Déchireur de post


Inscrit le: 15 Juin 2005
Messages: 862



Posté le : Mer Fév 22, 2006 1:46 MessageSujet: (Pas de sujet)
Répondre en citant

Menteur ! Mr. Green
Comment tu ferais pour traduire ? Razz
Tu comprends un minimum.

Sinon, ce guide est pas mal fait, et permet de personnaliser sa clist si on le souhaite. Le problème c'est qu'il faut avoir de l'inspiration...

Je me rappelle d'un truc qui était sympa: on peut changer le background d'un contact particulier (comme par exemple un compte mail sous la forme d'un contact)
Voir le profil de l'utilisateur Envoyer un message privé
 Auteur
Le Touriste
p'tit nouveau
p'tit nouveau


Inscrit le: 11 Juin 2006
Messages: 26



Posté le : Mar Oct 10, 2006 17:26 MessageSujet: (Pas de sujet)
Répondre en citant

Je commence à créer mon propre skin et je me demandais si je pouvais mettre autre chose que Stretchboth. Une petite recherche et je tombe sur ce tuto qui m'a l'air bien complet.

Je vais pouvoir bien bosser. Merci a7 Wink
Voir le profil de l'utilisateur Envoyer un message privé
 Auteur
hophophop
p'tit nouveau
p'tit nouveau


Inscrit le: 02 Mar 2006
Messages: 78



Posté le : Mer Oct 11, 2006 2:45 MessageSujet: (Pas de sujet)
Répondre en citant

bon allez un début pour l'instant Razz J'aurais pas le temps avant la fin de la semaine prochaine pour la suite par contre, alors si quelqu'un se dévoue entre temps Wink
Désolé pour la mise en page, et il manque aussi les jolis tableaux mais je galère un peu avec le BBcode...
Le fichier -partiellement modifié- est en pièce jointe...


Modern Contact List Layered
Guide de dévelopment de skin (13-sep-2005).
Basé sur la version de clist_modern.dll v.0.3.1.198

Définitions de base
Le gestionnaire de skins est basé sur les définitions et concepts suivants:
Objet – composant de skin. Tout objet de skin est crée pendant le chargement du module. Les objets décrivents quoi afficher et comment en réponse a une Requête.
Glyphe – Certaines images. Les formats dorénavant supportés sont BMP, JPG et PNG (la bibliothèque imagedecoder.dll est nécessaire pour le support de la transparence). La taille des glyphes est définie par la taille de l'image. L'image glyphe est chargée en mémoire seulement lors de la première tentative de son affichage et est gardée en mémoire jusqu'à ce que le module la décharge ou qu'une autre skin soit chargée.
Règle – décris la correspondance entre un Objet et une Requête
Requête – requête d'un module (celui ci ou un autre) pour afficher l'objet correspondant avec la position et la taille spécifiée.

Algorithme de travail
La procédure du gestionnaire de skin est la suivante:
1.Un module génère une chaine de requête dès qu'il est nécessaire d'afficher quelque chose et l'envoie au gestionnaire de skin.
2.Le gestionnaire de skin essaye de trouver la première règle qui corresponds à la requête et sélectionne l'objet pointé par cette règle.
3.Si l'objet sélectionné est de type Solid (Figé): La zone concernée par la requête est remplie par la couleur correspondante avec le canal Alpha specifié.
4.Si l'objet sélectionné est une Image: cette image est ajustée à la taille de la zone concernée par la requête puis affichée.

Règles et Requêtes.
Une règle est constituée par:
1.Un numéro
2.Le nom de l'objet qu'elle concerne
3.Un ensemble de paramètres delimités par ‘,’.

Chaque paramètre est exprimé par:
- Le nom du paramètre (le premier paramètres a le nom ‘Module’ et est toujours ignoré).
- Une condition (= - ‘est égal’, ^ - ‘n'est pas égal’).
- La valeur du paramètre.

La requête est constituée des même élements que la règle, excepté le numéro.

La règle correponds à la requête si:
1.La requête contiens tout les paramètres de la règle. (la requête peut aussi contenir des paramètres non mentionnés dans la règle)
2.L'ensemble des valeurs des paramètres communs sont les même si leur condition dans la règle est ‘est égal’ et ne sont pas les même si leur condition dans la règle est ‘n'est pas égal’. Les paramètres d'une règle peuvent contenir des jokers ‘*’ et ‘?’.
Les noms et les valeurs des paramètres de règles peuvent contenir jusqu'à 24 caractères.
Les valeurs ne peuvent pas contenir ‘,’ (virgule) toutes les virgules sont remplacées par ‘.’ (points)
Les noms et les valeur sont SENSIBLES A LA CASE.
Le premier nom de paramètre doit être ignoré quand il y a des points.

Ajustement de glyphe
Exemple: Nous avons besoin d'afficher des glyphes de tailles 70х70 sur un rectangle de taille 100х100.

Définitions des marges: Gauche, Haut, Droite, Bas.
Ces marges divisent le glyphes en 9 zones:
1.4 coins
2.4 cotés
3.le centre

[TABLEAU]

Règles d'ajustements:
1.Les zones de coins du glyphe sont affichées tel-quels à leur coin de destination sans aucun ajustement.
2.Les zones de cotés sont ajustées dans le sens de leur coté le plus proche du bord, en conservant la taille de leur coté perpendicullaire à ce bord.
3.La zone centrale est ajustée dans les deux sens.

Après ajustement (mode StretchBoth)

[TABLEAU]

Il y'a 4 modes d'ajustements:
1.StretchBoth – étendre dans les deux sens
2.TileHorz – Mosaïque horizontale, mais étendu verticalement.
3.TileVert – Mosaïque verticale, mais étendu horizontalement.
4.TileBoth – Mosaïque dans les deux sens.

Définition d'une skin
Un skin est l'union d'un fichier de description de skin (*.msf) et d'un dossier contenant les ressources graphiques.
Le nom du dossier doit être le même que celui du fichier de description (sans l'extension). Chaque fichier doit être réferencé dans le fichier de description sans leur emplacement

Le fichier de description est un fichier ini habituel avec une extension différente. Toutes les clés sont importés dans la DB lors du chargement de la skin. Le formatage du fichier est le suivant:

[nom_section_DB]
; commentaires
Clé=#Valeur
Clé2=#Valeur2

Ici «#» est l'emplacement d'un symbole indiquant le type de donnée de la valeur. Il doit être un de ceux ci:
1.«b» - BYTE (octet)
2.«w» - WORD (mot = 2 octets)
3.«d» - DWORD (mot long = 4 octets)
4.«s» - STRING (chaîne de caractère)

Tout les objets et règles des modern skins sont décris dans la section [ModernSkin] avec un type de donnée 'chaîne de caractères'. Dans cette section donc, toutes les clés ont un ‘s’ après ‘=’ e.g.:

$hotopengroup=sGlyph,Image,hotopengroup.png,StretchBoth,2,2,2,2,250
@0=s$window:Main,ID=Background

Les espaces ne sont pas autorisés (sauf pour des paramètres chaines de caractères tels que …,Nom=Nom de Famille,…).

Descriptions des objets.

Les skins sont donc constituées de plusieurs parties. Une de celles ci décrit les object.

Les objets sont décrits de la façon suivante:

$nom_objet=sGlyph,type_object,paramètres,…

Ici nom_objet – nom de l'objet utilisé pour être référencé par les règles
type_objet – un des types Image or Solid (Figé)
paramètres,… – paramètres.

pour le type Solid (Figé):
$nom_objet=sGlyph,Solid,Rouge,Vert,Bleu,Alpha

pour une Image:
$nom_objet =sGlyph,Image,NomFichier,Mode,Gauche,Haut,Droite,Bas,Alpha

ici : Rouge, Vert, Bleu, Alpha – Valeurs du rouge, du vert, du bleu et de la transparence alpha.
NomFichier –nom du fichier image du glyphe.
Mode – mode d'ajustement: StretchBoth, TileHorz, TileVert, TileBoth.
Gauche,Haut,Droite,Bas – Marges d'ajustements.

Exemples:
$window=sGlyph,Image,back.bmp,TileBoth,1,1,1,1,150
$closed_miranda_group=sGlyph,Solid,0,0,255,200



SkinGuide_fr.rtf.zip
 Description:

Télécharger
 Nom du fichier:  SkinGuide_fr.rtf.zip
 Taille du fichier:  13.22 Ko
 Téléchargé:  57 fois

Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Auteur
kdrt
Modérateur
Modérateur


Inscrit le: 12 Aoû 2005
Messages: 622
Localisation: Bruxelles, BE


Posté le : Mer Oct 11, 2006 6:12 MessageSujet: (Pas de sujet)
Répondre en citant

Superbe travail ^^
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Yahoo Messenger Jabber Messenger: cdrc@jabber.ru
 Auteur
tweety
Modérateur
Modérateur


Inscrit le: 28 Juin 2005
Messages: 1492
Localisation: Liège, Belgique


Posté le : Mer Oct 11, 2006 10:23 MessageSujet: (Pas de sujet)
Répondre en citant

Bien joué Smile
_________________

Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Yahoo Messenger MSN Messenger Jabber Messenger: ti-ti@jabber.fr
 Auteur
hophophop
p'tit nouveau
p'tit nouveau


Inscrit le: 02 Mar 2006
Messages: 78



Posté le : Jeu Oct 12, 2006 0:36 MessageSujet: (Pas de sujet)
Répondre en citant

Bon en fait c'est quasiment fini finalement, mais j'ais un peu de difficultés concernant les passages surlignés en rouges dans le fichier joint.
S'il quelqu'un veux bien me filer un coup de main...
sinon, bon weekend! Wink



SkinGuide_fr.rtf.zip
 Description:

Télécharger
 Nom du fichier:  SkinGuide_fr.rtf.zip
 Taille du fichier:  14.63 Ko
 Téléchargé:  53 fois

Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Auteur
Le Touriste
p'tit nouveau
p'tit nouveau


Inscrit le: 11 Juin 2006
Messages: 26



Posté le : Jeu Oct 12, 2006 23:22 MessageSujet: (Pas de sujet)
Répondre en citant

Et ben dis donc, un petit up sur ce topic et une trad arrive en quelques jours ! C'est merveilleux. Mercibeaucoup.
Voir le profil de l'utilisateur Envoyer un message privé
 Auteur
hophophop
p'tit nouveau
p'tit nouveau


Inscrit le: 02 Mar 2006
Messages: 78



Posté le : Ven Oct 20, 2006 16:27 MessageSujet: (Pas de sujet)
Répondre en citant

bon ba c'est quasiment fini (à part un ou deux mots) sauf que je peut pas mettre de html dans mes post, donc pour formater le texte correctement dans le forum c'est pas évident...
ça pourrais être pas mal de mettre cette traduction au début du topic dans un format lisible (autre qu'en rtf quoi)
ci joint la traduction



SkinGuide_fr.zip
 Description:

Télécharger
 Nom du fichier:  SkinGuide_fr.zip
 Taille du fichier:  15.1 Ko
 Téléchargé:  63 fois

Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Auteur
a7
"O_o"



Inscrit le: 01 Jan 1970
Messages: 906



Posté le : Dim Aoû 03, 2008 21:21 MessageSujet: (Pas de sujet)
Répondre en citant

Ha merci je n'avais pas vu cette traduction je vais pouvoir l'integrer au wiki :

http://www.miranda-fr.net/doku.php?id=aide
Voir le profil de l'utilisateur Envoyer un message privé
Revenir en hautMontrer les messages depuis:   
Informations
Page 1 sur 1
voir ou cacher les informations
Ce forum est verrouillé, vous ne pouvez pas poster, ni répondre, ni éditer les sujets.   Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.    Index du forum -> Tutoriaux</