Contenuto

# Servizio SFWidgets.ToolbarButton

Il servizio ToolbarButton consente di recuperare informazioni relative ai pulsanti disponibili in una determinata barra degli strumenti. Con questo servizio è possibile:

- Commutare la visibilità degli elementi della barra degli strumenti.

- Eseguire il comando associato a un determinato pulsante della barra degli strumenti.

## Invocazione del servizio

Prima di usare il servizio ToolbarButton è necessario caricare o importare le librerie ScriptForge:

• Le macro in Basic richiedono il caricamento della libreria ScriptForge usando la seguente istruzione:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Gli script in Python richiedono un'importazione dal modulo scriptforge:
from scriptforge import CreateScriptService

Il servizio ToolbarButton è invocato usando il metodo ToolbarButtons del servizio Toolbar.

##### In Basic

L'esempio sottostante recupera i nomi di tutti i pulsanti disponibili nella barra degli strumenti Standard.

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

Usare il metodo ToolbarButtons senza argomenti per recuperare una matrice con i nomi di tutti i pulsanti disponibili nella barra degli strumenti.

L'esempio sottostante commuta la visibilità del pulsante Stampa nella barra degli strumenti Standard:

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

Il nome del pulsante passato come argomento al metodo ToolbarButtons è il nome del pulsante localizzato definito nella finestra di dialogo Strumenti - Personalizza - Barre degli strumenti.

Le barre degli strumenti inattive non hanno pulsanti. Perciò, chiamando il metodo ToolbarButtons si renderà visibile la barra degli strumenti.

##### In 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("Stampa")
        toolbar_button.Visible = not toolbar_button.Visible

## Proprietà

Nome | Sola lettura | Tipo | Descrizione
--- | --- | --- | ---
Caption | Sì | String | Restituisce il nome del pulsante.
Height | Sì | Long | Restituisce l'altezza del pulsante, in pixel.
Index | Sì | Long | Restituisce l'indice del pulsante nella barra degli strumenti di appartenenza.
OnClick | No | String | Il comando UNO o lo script eseguito quando il pulsante viene premuto. Per saperne di più su come definire la stringa di un URI, leggere la pagina wiki Scripting Framework URI Specification.
Parent | Sì | Servizio Toolbar | Restituisce un'istanza del servizio Toolbar corrispondente alla barra degli strumenti cui appartiene il pulsante corrente.
TipText | No | String | Specifica il testo del suggerimento visualizzato quando l'utente posiziona il puntatore del mouse sopra il pulsante della barra degli strumenti.
Visible | No | Boolean | Specifica se il pulsante della barra degli strumenti è visibile o no.
Width | Sì | Long | Restituisce la larghezza del pulsante, in pixel.
X | Sì | Long | Restituisce la coordinata X (orizzontale) dell'angolo superiore sinistro del pulsante, in pixel.
Y | Si | Long | Restituisce la coordinata Y (verticale) dell'angolo superiore sinistro del pulsante, in pixel.

## Uso di ToolbarButton assieme al servizio PopupMenu

Un uso comune delle proprietà X e Y descritte in precedenza è quello di aprire un menu a comparsa nella posizione in cui si trova il pulsante nella barra degli strumenti.

Supponendo di creare lo script sottostante e di associarlo al pulsante denominato "Mio pulsante" nella standardbar. Quando si fa clic sopra, apparirà un menu a comparsa con 3 opzioni selezionabili dall'utente.

##### In Basic

        Sub OpenPopupMenu()
            GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
            oDoc = CreateScriptService("Document", ThisComponent)
            oToolbar = oDoc.Toolbars("standardbar")
            oButton = oToolbar.ToolbarButtons("Mio pulsante")
            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 "La tua scelta: " & strResponse
        End Sub

##### In Python

        def open_popup_menu(args=None):
            bas = CreateScriptService("Basic")
            doc = CreateScriptService("Document", bas.ThisComponent)
            toolbar = doc.Toolbars("standardbar")
            toolbutton = toolbar.ToolbarButtons("Mio pulsante")
            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"La tua scelta: {response}")

Elenco dei metodi del servizio ToolbarButton
Execute |  |

## Execute

Esegue il comando o lo script associato al pulsante della barra degli strumenti.

Questo metodo restituisce il valore restituito dal comando o dallo script eseguito.

Usare la proprietà OnClick per determinare il comando o lo script che deve essere eseguito. Se il comando/script non restituisce valori, allora sarà restituito Null.

### Sintassi:

svc.Execute(): any

### Esempio:

L'esempio seguente esegue il comando del pulsante Stampa dalla barra degli strumenti Standard:

##### In Basic

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

##### In Python

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

Tutte le routine e gli identificatori Basic di ScriptForge che iniziano con un carattere di sottolineatura "_" sono riservati per uso interno. Non è previsto il loro utilizzo nelle macro in Basic o negli script in Python.

Argomenti correlati

Servizio SFWidgets.Toolbar