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:

Service-aanroep

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

note

ā€¢ 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)
  
tip

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
  
tip

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


note

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.

tip

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

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


Help ons, alstublieft!