Structure des cases de dialogue

La définition d'une boite de dialogue se fait dans un fichier ASCII d'extension ".DCL". Dans un tel fichier, on peut définir plusieurs boîtes de dialogue; chacune de celles-ci étant nommées et composées des différents types d'éléments (tiles). A chacun de ces tiles, on doit obligatoirement associer un type mais aussi des attributs.

La structure type pour la définition d'une boîte de dialogue dans un fichier DCL est la suivante :


nom_de_la_boite : dialog
{
   nom_attribut = valeur_attribut ;
   nom_attribut = valeur_attribut :
   : type_de_tile
   {
     nom_attribut = valeur_attribut ;
     nom_attribut = valeur_attribut ;
   }
}



nom_de_la_boite
représente le nom de la boite de dialogue qui est décrite (suivie de la séquence :dialog); ce nom est choisi par l'utilisateur.
nom_attribut
nom d'identification d'attribut prédéfinis.
(exemple label ).
valeur_attribut
représente la valeur associée à l'attribut.
type_de_tile
est un type prédéfini de tile valide.
(exemple : edit_box).

Cette structure peut naturellement être reproduite autant de fois que le fichier contient de définitions de cases de dialogues. La structure est alors la suivante:


nom_de_la_boite_1 : dialog
{
.....
}
nom_de_la_boite_2 : dialog
{
.....
}
.....
nom_de_la_boite_(n-1) : dialog
{
.....
}
nom_de_la_boite_n : dialog
{
.....
}

Règles syntaxiques de cases de dialogue

Les caractères { et } pour le regroupement de blocs d'instructions DCL.

Les lignes d'instructions DCL doivent toujours se terminer par le caractère ; (point virgule).
C'est l'indicateur de fin de ligne.

Le caractère : (deux points) marque le début de définition d'un type et peut être suivi d'un nom de tile de base ou d'un l'utilisateur peut créer ses propres types à partir des éléments de base, les nommer et les réutiliser ensuite.

Le caractère d'égalité ou = permet de définir la valeur associée à un attribut :
attribut = valeur

Important
La syntaxe DCL impose que les noms d'attributs et de types de tile soient toujours exprimés en caractères minuscules .
: edit_box diffère de : Edit_box

Commentaires dans les fichiers DCL

Deux possibilités permettent de mettre en place des commentaires dans un fichier DCL :

Le groupe de caractères // pour définir une seule ligne de commantaires. (comme en programmation C++) Le couple /* et */ pour définir un bloc de commentaires (comme en programmation C et C++).


Voici des exemples de commentaires dans un fichier DCL:

// Cette ligne représente un commentaire.

exemple : dialog
{
   label = "exemple de boîte de dialogue";
   /* debut du bloc de commentaires
   vous êtes toujours dans le bloc de commentaires
   c'est la dernière ligne de commentaires du bloc
   */

   :edit_box
   {
     label = "boite";
     key = "cle";
     width = 12;
   }
}

REMARQUE :

Dans les blocs de commentaires /* et */, l'imbrication de commentaires est interdite.
Il est interdit par exemple d'avoir:

/* debut du bloc de commentaires
.............................
  /* imbrication. INCORRECTE!!! */
.............................
c'est la dernière ligne de commentaires du bloc
*/