Inhalte

# Dienst SFWidgets.ToolbarButton

Der Dienst ToolbarButton ermöglicht das Abrufen von Informationen zu den Symbolleistenschaltflächen, die in einer bestimmten Symbolleiste verfügbar sind. Mit diesem Service ist es möglich:

- Die Sichtbarkeit von Symbolleistenelementen umschalten.

- Den Befehl auszuführen, der einer bestimmten Symbolleistenschaltfläche zugeordnet ist.

## Dienstaufruf

Vor der Verwendung des Dienstes ToolbarButton muss die Bibliothek ScriptForge geladen oder importiert werden:

• Grundlegende Makros erfordern das Laden der Bibliothek ScriptForge mit der folgenden Anweisung:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-Skripte erfordern einen Import aus dem Modul scriptforge:
from scriptforge import CreateScriptService

Der Dienst ToolbarButton wird mit der Methode ToolbarButtons des Dienstes Toolbar aufgerufen.

##### In Basic

Das folgende Beispiel ruft die Namen aller in der Symbolleiste Standard verfügbaren Schaltflächen ab.

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

Die Verwendung der Methode ToolbarButtons ohne Argumente ruft eine Matrix mit allen verfügbaren Symbolleistenschaltflächennamen ab.

Das folgende Beispiel schaltet die Sichtbarkeit der Schaltfläche Drucken in der Symbolleiste Standard um:

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

Der als Argument an die Methode ToolbarButtons übergebene Schaltflächenname ist der lokalisierte Schaltflächenname, der im Dialog Extras – Anpassen… – Symbolleisten festgelegt ist.

Inaktive Symbolleisten verfügen über keine Schaltflächen. Daher wird die Symbolleiste durch den Aufruf der Methode ToolbarButtons sichtbar gemacht.

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

## Einstellungen

Name | Schreibgeschützt | Typ | Beschreibung
--- | --- | --- | ---
Caption | Ja | String | Gibt den Namen der Schaltfläche zurück.
Height | Ja | Long | Gibt die Höhe der Schaltfläche in Pixeln zurück.
Index | Ja | Long | Gibt den Index der Schaltfläche in der übergeordneten Symbolleiste zurück.
OnClick | Nein | String | Der UNO-Befehl oder das UNO-Skript, das ausgeführt wird, wenn die Schaltfläche gedrückt wird. Lesen Sie die Wiki-Seite Scripting Framework URI Specification (englisch), um mehr darüber zu erfahren, wie Sie eine URI-Zeichenfolge definieren.
Parent | Ja | Dienst Toolbar | Gibt eine Dienstinstanz Toolbar zurück, die der übergeordneten Symbolleiste der aktuellen Symbolleistenschaltfläche entspricht.
TipText | Nein | String | Legt den Text des Tooltipps fest, der angezeigt wird, wenn der Benutzer mit der Maus über die Symbolleistenschaltfläche fährt.
Visible | Nein | Boolean | Legt fest, ob die Symbolleistenschaltfläche sichtbar ist oder nicht.
Width | Ja | Long | Gibt die Breite der Schaltfläche in Pixeln zurück.
X | Ja | Long | Gibt die X-Koordinate (horizontal) der oberen linken Ecke der Schaltfläche in Pixeln zurück.
Y | Ja | Long | Gibt die Y-Koordinate (vertikal) der oberen linken Ecke der Schaltfläche in Pixeln zurück.

## Verwendung von ToolbarButton neben dem Dienst PopupMenu

Ein häufiger Anwendungsfall der oben beschriebenen Eigenschaften X und Y ist das Öffnen eines Popup-Menüs an der Position, an der sich die Symbolleistenschaltfläche befindet.

Angenommen, Sie erstellen das folgende Skript und verknüpfen es mit einer Schaltfläche namens „Meine Schaltfläche“ in der Symbolleiste Standard. Wenn Sie darauf klicken, wird ein Popup-Menü mit drei Optionen angezeigt, die der Benutzer auswählen kann.

##### In Basic

        Sub OpenPopupMenu()
            GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
            oDoc = CreateScriptService("Document", ThisComponent)
            oToolbar = oDoc.Toolbars("standardbar")
            oButton = oToolbar.ToolbarButtons("Meine Schaltfläche")
            oPopup = CreateScriptService("SFWidgets.PopupMenu", , oButton.X, oButton.Y + oButton.Height)
            oPopup.AddItem("Eintrag A", "A")
            oPopup.AddItem("Eintrag B", "B")
            oPopup.AddItem("Eintrag C", "C")
            strResponse = oPopup.Execute(False)
            MsgBox "Ihre Wahl: " & 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("Meine Schaltfläche")
            popup = CreateScriptService("PopupMenu", None, toolbutton.X, toolbutton.Y + toolbutton.Height)
            popup.AddItem("Eintrag A", "A")
            popup.AddItem("Eintrag B", "B")
            popup.AddItem("Eintrag C", "C")
            response = popup.Execute(False)
            bas.MsgBox(f"Ihre Wahl: {response}")

Liste der Methoden im Dienst "ToolbarButton"
Execute |  |

## Execute

Führt den mit der Symbolleistenschaltfläche verknüpften Befehl oder das Skript aus.

Diese Methode gibt den Wert zurück, der vom ausgeführten Befehl oder Skript zurückgegeben wird.

Verwenden Sie die Eigenschaft OnClick, um den Befehl oder das Skript zu bestimmen, der ausgeführt werden soll. Wenn der Befehl/das Skript keinen Wert zurückgibt, wird Null zurückgegeben.

### Syntax:

svc.Execute(): any

### Beispiel:

Das folgende Beispiel führt die Schaltfläche Drucken aus der Symbolleiste Standard aus:

##### In Basic

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

##### In Python

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

Alle ScriptForge Basic-Routinen oder Bezeichner, denen ein Unterstrich "_" vorangestellt ist, sind für den internen Gebrauch reserviert. Sie sind nicht für die Verwendung in Basic-Makros oder Python-Skripten vorgesehen.

Verwandte Themen

Dienst SFWidgets.Toolbar