Combiner plusieurs conditions
ET, OU, « pas ça », et les groupes entre parenthèses.
Une étiquette par condition
Vous choisissez une condition dans la liste, elle devient une étiquette. Le petit bouton devant dit dans quel sens elle compte :
- si — seulement dans ce cas ;
- si pas — partout sauf dans ce cas.
Sur une étiquette déjà posée, ce même bouton inverse le sens ; le ✕ la retire.
Les groupes
Un groupe est une parenthèse. Dedans, vous dites s’il faut toutes les conditions, ou au moins une. Entre deux groupes, la même question se pose : ET ou OU.
Trois écritures pour les mêmes opérateurs
| Ce qu’on veut dire | Signe | En toutes lettres |
|---|---|---|
| et | & | AND |
| ou | | | OR |
| pas | ! | NOT |
Les deux écritures se mélangent, et la casse n’a aucune importance : if="crt AND !tate" vaut if="crt & !tate".
⚠️ && et || ne fonctionnent pas. Deux signes d’affilée sont une erreur de syntaxe, et une expression en erreur vaut faux : le composant disparaît sans que rien ne le dise à l’écran.
Exemple : « sur un écran cathodique, et en arcade ou en favoris » s’écrit
crt & (arcade | favorite)
⚠️ L’ordre des groupes compte
La machine lit de gauche à droite, sans priorité. a | b & c y vaut (a | b) & c, et non a | (b & c). C’est pour ça que le studio met systématiquement les parenthèses : ce que vous lisez est exactement ce que la machine comprendra.
À l’intérieur d’un même groupe, en revanche, l’ordre n’a aucune importance : « pas Full HD et arcade » dit la même chose que « arcade et pas Full HD ».
Une condition s’écrit à deux endroits
La même condition, au même endroit du composant ou sur une seule de ses propriétés, ne dit pas la même chose :
<image name="filtre" if="crt">…</image> <!-- ① le composant n’existe QUE sur un CRT -->
<text name="titre"> <!-- ② le composant existe toujours… -->
<fontSize if="crt">0.09</fontSize> <!-- …mais sa taille change sur un CRT -->
<fontSize if="!crt">0.05</fontSize>
</text>
① sur le composant : il apparaît, ou il n’existe pas du tout. ② sur une propriété : le composant est toujours là, une seule de ses valeurs change.
Dans le studio, c’est le même bouton et la même fenêtre dans les deux cas — ce que vous construisez ici sert là-bas à l’identique.