The Align dialog.
The Control settings dialog.
The ObjGetSetter dialog.
Le menu Dialogue
Lorsque la fenêtre au premier plan est un dialogue en mode édition, sélectionnez le menu Dialogues > Aligner. Cela ouvre un dialogue intitulé Arrange items. Arrange items permet d'aligner et de redistribuer les éléments de dialogue, de copier des dimensions (propriété bounds) de l'un à l'autre, et de leur donner des tailles standard.
Le dialogue de réglage des élément de dialogue
En mode édition, double-cliquer sur un élément de dialogue ouvre son dialogue de réglage. Dans ce dialogue de réglage il est possible de :
-
définir son nom, ou, pour le Champ de texte statique, son contenu,
-
définir la fonte qu'il utilise parmi les fontes du système Large size et Small size,
-
activer ou désactiver l'option use script. use script indique si Smile doit ou non envoyer un événement click in lorsque l'utilisateur effectue une action sur l'élément en question. Notez bien que Smile envoie l'événement click in non pas au script de l'élément lui-même mais à celui de son conteneur - la plupart du temps, la fenêtre de dialogue elle-même.
Le menu contextuel
En mode édition, cliquer sur un élément de dialogue avec la touche 'ctrl' enfoncée affiche le menu contextuel de l'élément. Dans la partie inférieure du menu contextuel se trouve un accès aux réglages spécifiques à chaque type d'élément de dialogue. La partie supérieure du menu indique la hiérarchie du conteneur.
ObjGetSetter
ObjGetSetter est un outil pour Smile très pratique, permettant d'éditer les propriétés d'un ou de plusieurs objets en une fois. ObjGetSetter inclus une interface spécifique pour éditer les propriétés de texte (justification, police, etc). Pour installer ObjGetSetter, veuillez consulter la page des suppléments pour Smile.
Changer les propriétés d'un élément de dialogue par script
Toute propriété d'un élément de dialogue est modifiable par script.
-
En mode édition, un élément de dialogue peut être glissé vers un terminal AppleScript.
-
déplacer l'élément de dialogue insérera dans le terminal AppleScript la liste de ses propriétés, sous forme d'un record.
{«class key »:"Find", class:dialog item, control kind:368, enabled:true, bounds:{10, 114, 106, 133}, «class dflt»:true, font:{font:"Lucida Grande", text size:11}, call script:true, «class Auto»:false}
Certaines propriétés ont un nom qui n'est pas écrit en anglais, elles s'affichent sous la forme «class [...]» : ces propriétés ne doivent être modifiées qu'avec précaution.
-
⌘-déplacer l'élément de dialogue insérera dans le terminal AppleScript une référence à cet élément.
dialog item id 667 of dialog id 271
Cela facilite l'écriture et l'exécution d'un petit script qui modifie une propriété :
set the_control to dialog item id 667 of dialog id 271
set font of the_control to {font:"Courier New", text size:10}
-
Les dialogues supportent un système de références pour les éléments du dialogue : ils peuvent être repérés par un code de quatre lettres ou un mot-clé. Ce code de quatre lettres correspond à la propriété tag des dialog items. Les dialogues enregistrent automatiquement à leur fermeture les valeurs des dialog items ayant une propriété tag. Les dialogs ont une propriété tagged data qui renvoie (et accepte) un record dans lequel les mots-clés sont les propriétés tag éventuellement sous la forme «class atag» (où "atag" est le code de quatre lettres) et les valeurs sont les données contenues dans l'élément correspondant au code de quatre lettres.
Il n'y a aucun problème à utiliser des codes correspondant à des mots-clés existants, comme peut en fournir par exemple le menu Property & class to raw code.
Les groupes supportent également la propriété tagged data de la même manière que les dialogues. Veuillez noter que la propriété tagged data ne conserve pas la structure hiérarchique des éléments de dialogue : quel que soit le niveau de hiérarchie d'un élément de dialogue, son code et sa valeur seront renvoyés dans la propriété tagged data du dialogue.
set d to dialog item 1 of theDialog -- a text box, for instance
set tag of d to "abcd"
set contained data of d to "whatever"
tagged data of thedialog
-- {«class abcd»:"whatever"}
|