Obsah

# Služba SFWidgets.ToolbarButton

Služba ToolbarButton umožňuje získávat informace týkající se tlačítek dostupných na zadané nástrojové liště. Pomocí této služby lze:

- Přepínat viditelnost prvků na nástrojové liště.

- Spustit příkaz přiřazený zadanému tlačítku nástrojové lišty.

## Volání služby

Před používáním služby ToolbarButton je nutné načíst či naimportovat knihovnu ScriptForge pomocí:

• V makrech Basicu je nutné načíst knihovnu ScriptForge následujícím příkazem:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Ve skriptech Pythonu je nezbytné import z modulu scriptforge:
from scriptforge import CreateScriptService

Služba ToolbarButton je vytvořena metodou ToolbarButtons ze služby Toolbar.

##### V Basicu

V následujícím příkladu se získají názvy všech tlačítek dostupných na nástrojové liště Standardní.

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

Metodou ToolbarButtons použitou bez argumentů získáte pole s názvy dostupných tlačítek nástrojové lišty.

V následujícím příkladu je přepnuta viditelnost tlačítka Tisk na nástrojové liště Standardní:

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

Název tlačítka předaný jako argument metody ToolbarButtons je lokalizovaným názvem uvedeným v dialogovém okně Nástroje - Přizpůsobit - Nástrojové lišty.

Neaktivní nástrojové lišty tlačítka nemají, proto volání metody ToolbarButtons způsobí, že se lišta stane viditelnou.

##### V Pythonu

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

## Vlastnosti

Název | Pouze pro čtení | Typ | Popis
--- | --- | --- | ---
Caption | ano | String | Vrátí název tlačítka.
Height | ano | Long | Vrátí výšku tlačítka v pixelech.
Index | ano | Long | Vrátí index tlačítka v jeho nástrojové liště.
OnClick | ne | String | Příkaz UNO nebo skript spuštěný při stisknutí tlačítka. Další informace o tom, jak definovat řetězec URI, naleznete na wiki stránce Scripting Framework URI Specification.
Parent | ano | služba Toolbar | Vrátí instanci služby Toolbar odpovídající nástrojové liště pro aktuální tlačítko.
TipText | ne | String | Určuje text tipu, který se zobrazuje, když uživatel najede myší nad tlačítko na liště.
Visible | ne | Boolean | Určuje, zda je tlačítko lišty viditelné, nebo není.
Width | ano | Long | Vrátí šířku tlačítka v pixelech.
X | ano | Long | Vrátí souřadnici X (vodorovnou) levého horního rohu tlačítka v pixelech.
Y | ano | Long | Vrátí souřadnici Y (svislou) levého horního rohu tlačítka v pixelech.

## Použití služby ToolbarButton spolu se službou PopupMenu

Obvyklým případem použití výše popsaných vlastností X a Y je otevření vyskakovací nabídky na místě, kde se nachází tlačítko nástrojové lišty.

Například jste vytvořili níže uvedený skript a přiřadili jej k tlačítku pojmenovanému „Moje tlačítko“ na liště standardbar. Po klepnutí na tlačítko se zobrazí vyskakovací nabídka, v níž může uživatel vybrat ze tří možností.

##### V Basicu

        Sub OpenPopupMenu()
            GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
            oDoc = CreateScriptService("Document", ThisComponent)
            oToolbar = oDoc.Toolbars("standardbar")
            oButton = oToolbar.ToolbarButtons("Moje tlačítko")
            oPopup = CreateScriptService("SFWidgets.PopupMenu", , oButton.X, oButton.Y + oButton.Height)
            oPopup.AddItem("Položka A", "A")
            oPopup.AddItem("Položka B", "B")
            oPopup.AddItem("Položka C", "C")
            strResponse = oPopup.Execute(False)
            MsgBox "Zvoleno: " & strResponse
        End Sub

##### V Pythonu

        def open_popup_menu(args=None):
            bas = CreateScriptService("Basic")
            doc = CreateScriptService("Document", bas.ThisComponent)
            toolbar = doc.Toolbars("standardbar")
            toolbutton = toolbar.ToolbarButtons("Moje tlačítko")
            popup = CreateScriptService("PopupMenu", None, toolbutton.X, toolbutton.Y + toolbutton.Height)
            popup.AddItem("Položka A", "A")
            popup.AddItem("Položka B", "B")
            popup.AddItem("Položka C", "C")
            response = popup.Execute(False)
            bas.MsgBox(f"Zvoleno: {response}")

Seznam metod služby ToolbarButton
Execute |  |

## Execute

Spustí příkaz nebo skript přiřazený k tlačítku nástrojové lišty.

Tato metoda vrátí hodnotu vrácenou spuštěným příkazem nebo skriptem.

To, který příkaz nebo skript se má spustit, zjistíte z vlastnosti OnClick. Jestliže příkaz či skript hodnotu nevrací, vrátí se Null.

### Syntaxe:

svc.Execute(): any

### Příklad:

V následujícím příkladu se spustí příkaz pro tlačítko Tisk na nástrojové liště Standardní:

##### V Basicu

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

##### V Pythonu

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

Všechny procedury nebo identifikátory knihovny ScriptForge, které jsou uvozeny podtržítkem "_", jsou určeny pro interní použití. Není zamýšleno je používat v makrech Basicu nebo skriptech Pythonu.

Související témata

Služba SFWidgets.Toolbar