Indhold

# Tjenesten SFWidgets.ToolbarButton

ToolbarButton-tjenesten giver mulighed for at hente information relateret til de værktøjslinjeknapper, som er tilgængelige i en given værktøjslinje. Med denne tjeneste er det muligt at:

- Skift synligheden af værktøjslinjeelementer.

- Udfør kommandoen forbundet med en given knap på værktøjslinjen.

## Kald af tjeneste

Før du bruger ToolbarButton-tjenesten skal ScriptForge-biblioteket være indlæst eller importeret:

• Basic-makroer kræver, at biblioteket ScriptForge indlæses med følgende udtryk:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-scripts kræver import af scriptforge-modulet:
from scriptforge import CreateScriptService

Tjenesten ToolbarButton kaldes med metoden ToolbarButtons fra Toolbar-tjenesten.

##### I Basic

Eksemplet herunder henter navnene på alle tilgængelige knapper i Standard-værktøjslinjen.

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

Brug metoden ToolbarButtons uden argumenter for at hente et array med navne på alle tilgængelige knapper.

Eksemplet nedenfor skifter mellem synlighed eller ej af Udskriv-knappen i Standard-værktøjslinjen.

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

Knapnavnet, der blev sendt som argument til ToolbarButtons-metoden er det lokaliserede (oversatte) knapnavn defineret i Funktioner ▸ Tilpas ▸ Værktøjslinjer-dialogen.

Inaktive værktøjslinjer har ikke knapper. Derfor vil kald af ToolbarButtons-metoden gøre værktøjslinjen synlig.

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

## Egenskaber

Navn | Skrivebeskyttet | Type | Beskrivelse
--- | --- | --- | ---
Caption | Ja | String | Returnerer navnet på knappen.
Height | Ja | Long | Returnerer knappens højde i pixels.
Index | Ja | Long | Returnerer indekset for knappen i dens overordnede værktøjslinje.
OnClick | Nej | String | UNO-kommandoen eller UNO-scriptet udføres, når knappen trykkes. Læs wikisiden Scripting Framework URI Specification for at lære mere om, hvordan du definerer en URI-streng (Uniform Ressource Identifier).
Parent | Ja | Tjenesten Toolbar | Returnerer en instans af Toolbar-tjenesten, som svarer til den overordnede værktøjslinje for den aktuelle værktøjslinjeknap.
TipText | Nej | String | Specificerer værktøjstippet, der vises når brugeren holder musemarkøren over værktøjsknappen.
Visible | Nej | Boolean | Angiver, om knappen på værktøjslinjen er synlig eller ej.
Width | Ja | Long | Returnerer knappens bredde i pixels.
X | Ja | Long | Returnerer X-koordinaten (vandret) for knappens øverste venstre hjørne i pixels.
Y | Ja | Long | Returnerer Y-koordinaten (lodret) for knappens øverste venstre hjørne i pixels.

## Brug af ToolbarButton sammen med PopupMenu-tjenesten

En hyppig brug af egenskaberne X og Y beskrevet ovenfor er at åbne en popup-menu på det sted, hvor værktøjslinjeknappen er placeret.

Antag at du opretter scriptet nedenfor og knytter det til en knap med navnet "Min knap" i standardlinjen. Når der klikkes på knappen, vises en menu med 3 muligheder, som brugeren kan vælge imellem.

##### I Basic

        Sub OpenPopupMenu()
            GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
            oDoc = CreateScriptService("Document", ThisComponent)
            oToolbar = oDoc.Toolbars("standardbar")
            oButton = oToolbar.ToolbarButtons("Min knap")
            oPopup = CreateScriptService("SFWidgets.PopupMenu", , oButton.X, oButton.Y + oButton.Height)
            oPopup.AddItem("Mulighed A", "A")
            oPopup.AddItem("Mulighed B", "B")
            oPopup.AddItem("Mulighed C", "C")
            strResponse = oPopup.Execute(False)
            MsgBox "Dit valg: " & strResponse
        End Sub

##### I Python

        def open_popup_menu(args=None):
            bas = CreateScriptService("Basic")
            doc = CreateScriptService("Document", bas.ThisComponent)
            toolbar = doc.Toolbars("standardbar")
            toolbutton = toolbar.ToolbarButtons("Min knap")
            popup = CreateScriptService("PopupMenu", None, toolbutton.X, toolbutton.Y + toolbutton.Height)
            popup.AddItem("Mulighed A", "A")
            popup.AddItem("Mulighed B", "B")
            popup.AddItem("Mulighed C", "C")
            response = popup.Execute(False)
            bas.MsgBox(f"Dit valg: {response}")

Liste over metoder i tjenesten ToolbarButton
Execute |  |

## Execute

Udfører kommandoen eller scriptet, der er knyttet til knappen på værktøjslinjen.

Denne metode returnerer den værdi, der returneres af den udførte kommando eller script.

Brug egenskaben OnClick (ved_klik) til at fastlægge den kommando eller det script, som skal udføres. Hvis kommandoen/scriptet ikke returnerer nogen værdi, så returneres Null.

### Syntaks:

svc.Execute(): any

### Eksempel:

Eksemplet herunder udfører Udskriv-knappen fra Standard-værktøjslinjen:

##### I Basic

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

##### I Python

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

Alle ScriptForge Basic-rutiner eller identifikatorer, der indledes med et understregstegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.

Relaterede emner

SFWidgets.Toolbar-tjenesten

Støt os venligst!