Inhoud

# SFWidgets.ToolbarButton-service

Met de service ToolbarButton kunt u informatie ophalen met betrekking tot de werkbalkknoppen die beschikbaar zijn in een bepaalde werkbalk. Met deze dienst is het mogelijk om:

- Schakel de zichtbaarheid van werkbalkelementen in of uit.

- Voer de opdracht uit die aan een bepaalde werkbalkknop is gekoppeld.

## Service-aanroep

Voordat u de ToolbarButton-service gebruikt, moet de ScriptForge-bibliotheek worden geladen of geïmporteerd:

• Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService

De service ToolbarButton wordt aangeroepen met de methode ToolbarButtons van de service Toolbar.

##### In BASIC

In het onderstaande voorbeeld worden de namen opgehaald van alle knoppen die beschikbaar zijn op de werkbalk Standaard.

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

Gebruik de methode ToolbarButtons zonder argumenten om een matrix op te halen met alle beschikbare namen van werkbalkknoppen.

In het onderstaande voorbeeld wordt de zichtbaarheid van de knop Afdrukken op de werkbalk Standaard gewijzigd:

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

De knopnaam die als argument wordt doorgegeven aan de methode ToolbarButtons is de gelokaliseerde knopnaam die is gedefinieerd in het dialoogvenster Extra - Aanpassen - Werkbalken.

Inactieve werkbalken hebben geen knoppen. Daarom zal het aanroepen van de methode ToolbarButtons de werkbalk zichtbaar maken.

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

## Eigenschappen

Naam | Alleen-lezen | Type | Beschrijving
--- | --- | --- | ---
Caption | Ja | String | Geeft de naam van de knop terug.
Height | Ja | Long | Retourneert de hoogte van de knop, in pixels.
Index | Ja | Long | Retourneert de index van de knop in de bovenliggende werkbalk.
OnClick | Nee | String | Het UNO-commando of -script dat wordt uitgevoerd wanneer de knop wordt ingedrukt. Lees de Wiki-pagina Scripting Framework URI-specificatie voor meer informatie over het definiëren van een URI-tekenreeks.
Parent | Ja | Toolbar-service | Retourneert een service-instantie Toolbar die overeenkomt met de bovenliggende werkbalk van de huidige werkbalkknop.
TipText | Nee | String | Specificeert de helptiptekst die wordt weergegeven wanneer de gebruiker over de werkbalkknop beweegt.
Visible | Nee | Boolean | Specificeert of de werkbalkknop zichtbaar is of niet.
Width | Ja | Long | Retourneert de breedte van de knop, in pixels.
X | Ja | Long | Retourneert de X-coördinaat (horizontaal) van de linkerbovenhoek van de knop, in pixels.
Y | Ja | Long | Retourneert de Y-coördinaat (verticale) van de linkerbovenhoek van de knop, in pixels.

## Gebruik van ToolbarButton naast de PopupMenu-service

Een veelvoorkomend gebruik van de hierboven beschreven eigenschappen X en Y is het openen van een pop-upmenu op de positie waar de werkbalkknop zich bevindt.

Stel dat u het onderstaande script maakt en dit koppelt aan een knop met de naam "Mijn knop" in de werkbalk Standaard. Wanneer erop wordt geklikt, wordt een pop-upmenu weergegeven met 3 opties waaruit de gebruiker kan kiezen.

##### In 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 "Uw keuze: " & 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("Mijn knop")
            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"Uw keuze: {response}")

Lijst met methoden in de ToolbarButton-service
Execute |  |

## Execute

Voert de opdracht of het script uit dat aan de werkbalkknop is gekoppeld.

Deze methode retourneert de waarde die wordt geretourneerd door de uitgevoerde opdracht of het script.

Gebruik de eigenschap OnClick om te bepalen welk commando of script moet worden uitgevoerd. Als het commando/script geen enkele waarde retourneert, wordt Null geretourneerd.

### Syntaxis:

svc.Execute(): any

### Voorbeeld:

In het onderstaande voorbeeld wordt de knop Afdrukken uitgevoerd vanuit de werkbalk Standaard:

##### In BASIC

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

##### In Python

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

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.

Verwante onderwerpen

SFWidgets.Toolbar-service