OOUI/Toolbars/fr

Barres d'outils
Les barres d'outils sont des composants complexes d'interface qui permettent aux utilisateurs d'accéder facilement à une variété d'outils (comme les commandes de mise en forme) et d'actions. Ces outils sont des commandes supplémentaires faisant partie de la barre d'outils mais ils ne sont pas configurés comme telles.

Les développeurs créent et personnalisent les outils individuels puis les enregistrent avec une ToolFactory, qui crée les outils à la demande. Chaque outil a un nom symbolique (utilisé lors de son enregistrement), un titre (par exemple, ‘Insérer une image’), et une icône.

Les outils individuels sont organisés en groupes d'outils et affichés dans les menus, les listes ou une unique barre d'outils. Vous pouvez personnaliser l'organisation et l'ordre des groupes quand vous configurez la barre d'outils. Les outils peuvent apparaître dans n'importe quel ordre mais chaque outil ne peut figurer qu'une fois dans la barre d'outils.

Vous trouverez ci-après un exemple basique de barre d'outils. Nous détaillerons plus précisément chaque composant de cet exemple ultérieurement dans cette documentation. Pour avoir un aperçu réel de cette démonstration, voir la documentation du code générée.

Les outils
Les outils sont créés par l'extension de la classe abstraite Tools ou l'une de ses sous-classes PopupTool ou ToolGroupTool. Chaque outil doit être configuré avec les propriétés de nom statique, de titre et d'icône :


 * &mdash; Le nom symbolique est utilisé en interne pour enregistrer l'outil via ToolFactory. Les outils doivent être enregistrés via une usine d'outils (tool factory) avant de pouvoir être utilisés dans une barre d'outils.
 * &mdash; Le texte du titre est utilisé de différentes manières en fonction du type de groupe dans lequel l'outil est placé : le groupe des barres d'outils BarToolGroup, le groupe des barres de menus MenuToolGroup, ou le groupe des listes d'outils ListToolGroup. Pour les groupes d'outils de type 'barre' où il n'y a qu'une icône pour identifier l'outil, le texte du titre est utilisé comme une bulle d'aide affichée quand l'utilisateur survole l’outil avec la souris. Pour les groupes d'outils de type 'liste', le texte du titre est utilisé pour identifier les outils dans les menus déroulants de l'interface utilisateur. Si un raccouci a été défini pour l'outil, il sera automatiquement affiché. Pour les groupes d'outils de type 'barre', le raccourci clavier est affiché dans une bulle; pour les outils des groupes de type 'menu' et 'liste', le raccouci apparait à droite de chaque élément du menu déroulant.
 * &mdash; L'icône est aussi utilisée de différentes manières en fonction du type de groupe dans lequel se trouve l'outil. Pour les groupes d'outils de type 'barre', l'icône est affichée dans la barre d'outils afin d'identifier ces derniers. Pour les groupes d'outils de type 'liste', l'icône est affichée à côté du texte du titre dans le menu déroulant. Pour les groupes d'outils de type 'menu', l'icône est ignorée.

En plus des propriétés statiques, les outils doivent aussi implémenter les méthodes suivantes :


 * onSelect &mdash; utilisé pour spécifier l'action réalisée par l'outil quand il est sélectionné
 * onUpdateState &mdash; utilisé pour synchroniser l'état de l'outil avec l'état de son contexte le plus grand. Par exemple cette méthode peut être utilisée pour sélectionner l'outil 'bold’ de la barre d'outil quand le curseur du texte est placé dans une zone de texte en gras.

Les outils peuvent aussi être configurés avec la propriété statique 'group' qui pourra être utilisée ultérieurement quand l'outil sera ajouté dans une barre, un menu ou à une liste de groupe d'outils (voir ToolGroups pour un exemple de réalisation) :

La liste complète des méthodes prises en charge ainsi que les options de configuration, sont décrites dans la documentation du code pour la classe Tool.

PopupTool
Les outils de fenêtrage ouvrent une fenêtre popup lorsqu'ils sont sélectionnés dans la barre d'outils. A la différence des outils standards les outils de popup ne nécessitent pas que les développeurs spécifient les méthodes   ou , car ces méthodes sont déjà implémentées.

La liste complète des méthodes prises en charge ainsi que les options de configuration, sont décrites dans la documentation du code pour la classe PopupTool.

ToolGroupTool
Un ToolGroupTool est une espèce particulière d'outil pouvant contenir d'autre outils ou d'autres groupes d'outils à l'intérieur. Le ToolGroupTool a été conçu spécialement pour être utilisé avec des outils regroupés sous une même barre afin de donner accès à des outils supplémentaires à partir d'un élément de la barre.

La liste complète des méthodes prises en charge ainsi que les options de configuration, sont décrites dans la documentation du code pour la classe ToolGroupTool.

Les groupes d'outils
Les outils sont regroupés dans des Toolgroups, créés par une ToolGroupFactory puis ajoutés à la barre d'outils quand celle-ci est définie. Des outils peuvent être ajoutés individuellement à n'importe quel type de groupement d'outils (barre, liste ou menu). Le type du toolgroup détermine la disposition des outils ajoutés dans la barre d'outils :
 * &mdash; Les outils sont affichés par leur icône sur une seule ligne.
 * &mdash; Les outils sont affichés avec un libellé et une icône dans un menu déroulant. Le titre de l'outil est utilisé comme texte du libellé. La liste peut être configurée pour être repliée ou développée, avec le paramètre allowCollapse.
 * &mdash; Dans un menu déroulant les outils sont présentés en fonction de leur libellé. Le titre de l'outil est utilisé comme texte du libellé. Les groupes d'outils de type 'menu' sont généralement utilisés pour des ensembles d'outils mutuellement exclusifs, tels que des groupes de commandes pour la mise en forme du texte (paragraphe, titre, etc).

Les outils peuvent être ajoutés à un groupe d'outils de différentes manières : par leur nom symbolique, par le nom du groupe, ou en utilisant l'astérisque '*' pour tout couvrir :

Ajouter les outils par  :

Ajouter les outils par. Le nom d'un groupe d'outils est spécifié en utilisant la propriété statique 'group' (voir Tools pour un exemple).

Ajouter les outils avec le  :

Les développeurs peuvent ensuite gérer l'arrangement des outils en utilisant les options de configuration  et   du groupe d'outils, pour réorganiser les outils, respectivement au début de la liste (ou à l'avant de la barre d'outils), ou à la fin. Ces paramètres sont particulièrement utiles pour gérer leur priorité lorsque les outils ont été ajoutés en masse à la barre d'outils (par exemple avec l'astérique attrappe-tout, ou quand un groupe d'outils est ajouté à un toolgroup).

BarToolGroup
Les outils d'un   sont affichés par icône et sur une seule ligne. Le titre de l'outil est affiché quand l'utilisateur survole l'outil avec la souris.

La liste complète des méthodes prises en charge ainsi que les options de configuration, sont décrites dans la documentation du code pour la classe BarToolGroup.

ListToolGroup
Les outils d'un   sont affichés par leur icône et leur libellé dans un menu déroulant. Le titre de l'outil est utilisé comme texte du libellé. Les groupes de listes peuvent être configurés pour être développés ou repliés. Les listes repliées auront une option 'Plus...' que les utilisateurs pourront sélectionner pour voir la liste complète des outils. Si un toolgroup replié est développé, une option ‘Moins’ permet aux utilisateurs de replier la liste à nouveau.

En plus de,   peut aussi être configuré avec un   et   :

Utiliser le paramètre  pour indiquer que l'outil est repliable ('help' et 'stuff', dans l'exemple ci-après). Par défaut la liste s'ouvre dans l'état replié et l'utilisateur doit cliquer sur l'option 'Plus...' pour voir les outils repliés :

Pour afficher une liste repliable dans son état développé quand la liste est ouverte, initialiser le paramètre  à   :

Vous pouvez également indiquer le nom des outils qui ne doivent jamais être repliés. Ceci est réalisé avec le paramètre. Dans l'exemple suivant, seul l'outil ‘help’ est mentionné comme étant développé; tous les autres outils sont repliés par défaut.

La liste complète des méthodes prises en charge ainsi que les options de configuration, sont décrites dans la documentation du code pour la classe ListToolGroup.

MenuToolGroup
Les outils dans un   sont affichés en fonction de leur libellé, dans un menu déroulant. Le titre de l'outil est utilisé comme le texte du libellé, et le libellé du menu est mis à jour pour refléter quel outil ou quels outils sont actuellement sélectionnés. Notez que si un  est utilisé, alors chaque outil doit définir une méthode.



Configurer la barre d'outils
En plus de pouvoir contenir des groupes d'outils, la barre d'outils peut être configurée avec des actions, du CSS, des touches de raccourci, et (ou) une ombre facultative.

Notez que les 'actions' dans le contexte de la barre d'outils sont différentes de ActionWidgets. Pour les barres d'outils, les 'actions' font référence à un conteneur vide aligné à droite et pouvent contenir ce que vous souhaitez.



Ajouter des groupes d'outils
Les objets Toolgroups sont ajoutés à la barre d'outil à l'aide de la méthode  :



Ajouter des actions
Les barres d'outils possèdent des zones d'actions optionnelles, qui contiennent des commandes disponibles pour les utilisateurs mais qui ne sont pas configurées en tant qu'outils. Dans l'exemple suivant la barre d'outils a été configurée pour utiliser des actions, ici deux boutons supplémentaires 'Action' et 'Disabled'. Pour simplifier, seul le code spécifique à l'action est mis dans l'exemple (le reste est la même chose que la barre d'outils de base).



Utiliser CSS pour formater l'étiquette des outils
Le libellé des outils peut être mis en forme à l'aide des classes CSS prédéfinies dont le nom figure après chaque outil : oo-ui-tool-name-&lt;nom symbolique de l'outil> (par exemple oo-ui-tool-name-picture). L'exemple suivant utilise les classes CSS pour personnaliser l'apparence des libellés des outils 'picture' et 'help'.





Utiliser les touches de raccourci
La bibliothèque OOUI ne contient pas de système d'accélération mais la classe Toolbar possède une accroche pour en avoir un. Pour utiliser un système d'accélération, faites une sous-classe de la barre d'outils et redéfinissez la méthode  qui renvoie un libellé décrivant les touches de raccouci de l'outil (nom symbolique) passé à la méthode.

Le libellé des raccourcis (par exemple Ctrl + M ) est affiché de différentes manières, en fonction du type de groupe d'outils utilisé :


 * Pour les groupes de type 'barre', le texte du raccouci apparaît dans la bulle qui s'affiche lorsque l'utilisateur survole l'outil avec la souris.
 * Pour les groupes de type 'menu' et 'liste', le texte du raccouci est aligné à droite et grisé, ce qui respecte encore le WCAG niveau AA.



Construire la barre d'outils
La barre d'outils doit être ajoutée au document avant qu'il ne soit construit. Une fois avoir été ajoutée, la barre d'outils peut être initialisée.

La liste complète des méthodes prises en charge ainsi que les options de configuration, sont décrites dans la documentation du code pour la classe Toolbars.