Contenu

# Service SFWidgets.ToolbarButton

Le service ToolbarButton permet de récupérer des informations relatives aux boutons de barre d'outils disponibles dans une barre d'outils donnée. Avec ce service, il est possible de :

- Basculez la visibilité des éléments de la barre d'outils.

- Exécute la commande associée à un bouton de barre d'outils donné.

## Invocation du service

Avant d'utiliser le service ToolbarButton, la bibliothèque ScriptForge doit être chargée ou importée :

• Les macros Basic nécessitent de charger la bibliothèque ScriptForge à l'aide de l'instruction suivante :
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Les scripts Python nécessitent un import depuis le module scriptforge :
from scriptforge import CreateScriptService

Le service ToolbarButton est appelé à l'aide de la méthode ToolbarButtons à partir du service Toolbar.

##### En Basic :

L'exemple ci-dessous récupère les noms de tous les boutons disponibles dans la barre d'outils Standard.

        oDoc = CreateScriptService("Document", ThisComponent)
        oToolbar = oDoc.Toolbars("standardbar")
        arrToolbarButtons = oToolbar.ToolbarButtons()
        MsgBox SF_String.Represent(arrToolbarButtons)

Utilisez la méthode ToolbarButtons sans arguments pour récupérer un tableau avec tous les noms de boutons de barre d'outils disponibles.

L'exemple ci-dessous bascule la visibilité du bouton Print dans la barre d'outils Standard :

        oDoc = CreateScriptService("Document", ThisComponent)
        oToolbar = oDoc.Toolbars("standardbar")
        oToolbarButton = oToolbar.ToolbarButtons("Print")
        oToolbarButton.Visible = Not oToolbarButton.Visible

Le nom du bouton passé en argument à la méthode ToolbarButtons est le nom du bouton traduit défini dans la boîte de dialogue Outils - Personnaliser - Barres d'outils.

Les barres d'outils inactives n'ont pas de boutons. Par conséquent, l’appel de la méthode ToolbarButtons rendra la barre d’outils visible.

##### En Python

        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisComponent)
        toolbar = doc.Toolbars("standardbar")
        arr_toolbar_buttons = toolbar.ToolbarButtons()
        bas.MsgBox(repr(arr_toolbar_buttons))

        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisComponent)
        toolbar = doc.Toolbars("standardbar")
        toolbar_button = toolbar.ToolbarButtons("Print")
        toolbar_button.Visible = not toolbar_button.Visible

## Propriétés

Nom | En lecture seule | Type | Description
--- | --- | --- | ---
Caption | Oui | String | Renvoie le nom du bouton.
Height | Oui | Long | Renvoie la hauteur du bouton, en pixels.
Index | Oui | Long | Renvoie l'index du bouton dans sa barre d'outils parent.
OnClick | Non | String | La commande ou le script UNO exécuté lorsque le bouton est enfoncé. Lisez la page Wiki Spécification URI de l'environnement de script pour en savoir plus sur la façon de définir une chaîne URI.
Parent | Oui | Service Toolbar | Renvoie une instance de service Toolbar correspondant à la barre d'outils parent du bouton actuel de la barre d'outils.
TipText | Non | String | Spécifie le texte de l'info-bulle affiché lorsque l'utilisateur survole le bouton de la barre d'outils.
Visible | Non | Boolean | Spécifie si le bouton de la barre d'outils est visible ou non.
Width | Oui | Long | Renvoie la largeur du bouton, en pixels.
X | Oui | Long | Renvoie la coordonnée X (horizontale) du coin supérieur gauche du bouton, en pixels.
Y | Oui | Long | Renvoie la coordonnée Y (verticale) du coin supérieur gauche du bouton, en pixels.

## Utilisation de ToolbarButton avec le service PopupMenu

Un cas d'utilisation courant des propriétés X et Y décrites ci-dessus consiste à ouvrir un menu contextuel à l'endroit où se trouve le bouton de la barre d'outils.

Supposons que vous créiez le script ci-dessous et que vous l'associiez à un bouton nommé "Mon bouton" dans la standardbar. Lorsqu'il est cliqué, un menu contextuel s'affichera avec 3 options que l'utilisateur pourra sélectionner.

##### En Basic :

        Sub OpenPopupMenu()
            GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
            oDoc = CreateScriptService("Document", ThisComponent)
            oToolbar = oDoc.Toolbars("standardbar")
            oButton = oToolbar.ToolbarButtons("My Button")
            oPopup = CreateScriptService("SFWidgets.PopupMenu", , oButton.X, oButton.Y + oButton.Height)
            oPopup.AddItem("Item A", "A")
            oPopup.AddItem("Item B", "B")
            oPopup.AddItem("Item C", "C")
            strResponse = oPopup.Execute(False)
            MsgBox "Your choice: " & strResponse
        End Sub

##### En Python

        def open_popup_menu(args=None):
            bas = CreateScriptService("Basic")
            doc = CreateScriptService("Document", bas.ThisComponent)
            toolbar = doc.Toolbars("standardbar")
            toolbutton = toolbar.ToolbarButtons("My Button")
            popup = CreateScriptService("PopupMenu", None, toolbutton.X, toolbutton.Y + toolbutton.Height)
            popup.AddItem("Item A", "A")
            popup.AddItem("Item B", "B")
            popup.AddItem("Item C", "C")
            response = popup.Execute(False)
            bas.MsgBox(f"Your choice: {response}")

Liste des méthodes dans le service ToolbarButton
Execute |  |

## Execute

Exécute la commande ou le script associé au bouton de la barre d'outils.

Cette méthode renvoie la valeur renvoyée par la commande ou le script exécuté.

Utilisez la propriété OnClick pour déterminer la commande ou le script qui doit être exécuté. Si la commande/le script ne renvoie aucune valeur, alors Null est renvoyé.

### Syntaxe :

svc.Execute(): any

### Exemple :

L'exemple ci-dessous exécute le bouton Print de la barre d'outils Standard :

##### En Basic :

          oDoc = CreateScriptService("Document", ThisComponent)
          oToolbar = oDoc.Toolbars("standardbar")
          oToolbarButton = oToolbar.ToolbarButtons("Print")
          oToolbarButton.Execute()

##### En Python

          bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisComponent)
        toolbar = doc.Toolbars("standardbar")
        toolbar_button = toolbar.ToolbarButtons("Print")
        toolbar_button.Execute()

Toutes les routines ou identifiants de base ScriptForge qui sont préfixés par un caractère de soulignement "_" sont réservés à un usage interne. Ils ne sont pas destinés à être utilisés dans des macros de base ou des scripts Python.

Rubriques connexes

ServiceSFWidgets.Toolbar