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 :

Invocation du service

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

note

• 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)
  
tip

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
  
tip

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.


note

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é.

tip

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()
    
warning

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.


Aidez-nous !