On a vu dans le didacticiel précédent que l'affichage d'un bouton peut être un peu compliqué. C'est dommage parce que on sera peut-être amené à utiliser souvent des boutons dans nos projets.
Qu'à cela ne tienne, ToloWebStudio vous offre la possibilité de définir des éléments complexes dans des fichiers différents. Dans notre cas, par exemple, il nous suffit de créer le fichier bouton.yml comme ceci :
left: 0%
top: 80%
width: 50%
height: 20%
Sub:
 - position: relative
   display: table
   width: 100%
   height: 100%
   Sub:
     - Text: Non
       position: relative
       display: table-cell
       top: 0
       left: 0
       width: 100%
       height: 100%
       font-size: 200%
       color: yellow
       text-align: center
       vertical-align: middle
       background: "#333"
       border: "medium solid #777"
 - left: 0
   top: 0
   width: 100%
   height: 60%
   border-radius: 0 0 50% 50%
   background: "#ffe"
   opacity: 0.5
Et pour l'utiliser dans notre fichier main.yml, il suffira d'utiliser la clef Ext qui permet d'inclure et d'étendre (extend en anglais) un élément provenant d'un autre fichier.
En voici le code :
background: white
color: black
font-size: 150%
left: 0
top: 0
width: 100%
height: 100%
Sub:
 - Text: "<html>Êtes vous vraiment sûr de vouloir faire ce que vous vous apprêtez à faire ?<hr/>C'est peut-être bien une annerie, vous savez ?"
   text-align: justify
   left: 10%
   top: 10%
   width: 80%
   height: 30%
 - Ext: bouton
 - Ext: bouton
   left: 50%
On remarque trois choses :
Pour régler ce problème, nous allons devoir utiliser une nouvelle notion : les attributs. Les attributs ressemblent aux propriétés de style au sens où ils sont hérités par les sous-éléments. Mais la différence est qu'un attribut ne fait rien d'autre que porter une valeur. Cette dernière ne modifie ni l'affichage, ni le comportement de l'élément qui le porte. Ils ont quand même un intérêt, bien sûr : leur valeur peut être affectée à la valeur de n'importe (presque) quelle clef.
Pour déclarer un attribut, il suffit de faire commencer le nom de la clef par un $. Et pour lire la valeur d'un attribut, il faut utiliser la syntaxe suivante : Text: att(caption).
Voici ce que devient le fichier bouton.yml :
$caption: Click...
left: 0%
top: 80%
width: 50%
height: 20%
Sub:
 - position: relative
   display: table
   width: 100%
   height: 100%
   Sub:
     - Text: att(caption)
       position: relative
       display: table-cell
       top: 0
       left: 0
       width: 100%
       height: 100%
       font-size: 200%
       color: yellow
       text-align: center
       vertical-align: middle
       background: "#333"
       border: "medium solid #777"
 - left: 0
   top: 0
   width: 100%
   height: 60%
   border-radius: 0 0 50% 50%
   background: "#ffe"
   opacity: 0.5
Et voici le fichier main.yml qui l'utilise :
background: white
color: black
font-size: 150%
left: 0
top: 0
width: 100%
height: 100%
Sub:
 - Text: "<html>Êtes vous vraiment sûr de vouloir faire ce que vous vous apprêtez à faire ?<hr/>C'est peut-être bien une annerie, vous savez ?"
   text-align: justify
   left: 10%
   top: 10%
   width: 80%
   height: 30%
 - Ext: bouton
   $caption: Non.
 - Ext: bouton
   left: 50%
   $caption: Oui !
 - Ext: bouton
   top: 60%
Dans cet exemple, on a ajouté un bouton pour voir ce qui arrive quand on ne déclare par d'attribut caption.
Factoriser pour mieux régner
12 janvier 2013
Sommaire général