LibreOffice 25.2 Hjelp
Tenesta Meny kan brukast for å laga og fjerna menyar frå menylinja i eit LibreOffice-dokumentvindauge. Kvar menyoppføring kan knytast til eit skript eller til ein UNO-kommando. Denne tenesta gjev desse funksjonane:
Oppretting av menyar med sjølvdefinerte oppføringar, avmerkingsboksar, radioknappar og skiljeteikn.
Utstyre menyelement med ikon og infotekstar
Menyar som er laga med denne tenesta er tilgjengelege berre for eit spesifisert dokumentvindauge. Dei vert ikkje lagra i dokumentet eller som programinnstillingar. Når dokumentet vert lukka og opna att, vert standardmenylinjene gjenoppretta.
Når OLE-objekt, for eksempel matematiske formlar eller Calc-diagram, vert redigerte frå eit dokument, set LibreOffice menylinja opp på nytt i høve til objektet. Når dette skjer, vert menyane som er sette opp med menytenesta fjerna og vert ikkje gjenoppretta etter at OLE-objektet er redigert.
Før du brukar tenesta Meny, må biblioteket ScriptForge vera lasta inn eller importert:
Tenesta Meny vert starta ved å kalla opp metoden CreateMenu frå tenesta Dokument. Kodesnutten nedanfor lagar ein meny kalla Min meny i gjeldande dokumentvindauge med to oppføringar, Element A og Element B.
    Sub CreateMenu()
        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        Dim oDoc as Object, oMenu as Object
        Set oDoc = CreateScriptService("Document")
        Set oMenu = oDoc.CreateMenu("Min meny")
        With oMenu
            .AddItem("Element A", Kommando := "Om")
            .AddItem("Element B", Script := "vnd.sun.star.script:Standard.Module1.ItemB_Listener?language=Basic&location=application")
            .Dispose()
        End With
    End Sub
  Når menyen er laga, vert det rådd til å kalla opp metoden Dispose for å frigjera ressursar som vert brukte av ein førekomst av tenesta Menu.
I eksempelet ovanfor er Element A knytt til UNO-kommandoen .uno:About, medan Element B er knytt til skriptet ItemB_Listener definert i Module1 i biblioteket Standard i behaldaren Mine makroar.
Eksempelet nedanfor definerer ItemB_Listener som vert kalla opp når det vert trykt på Item B. Denne lyttaren deler ganske enkelt opp argumentstrengen som vert sendt til Sub og viser delane i ein meldingsboks.
    Sub ItemB_Listener(args As String)
        ' Handsamar argumentstrengen som vert sendt til lyttaren
        Dim sArgs as Object
        sArgs = Split(args, ",")
        MsgBox "Menynamn: " & sArgs(0) & Chr(13) & _
               "Menyelement: " & sArgs(1) & Chr(13) & _
               "Element-ID: "     & sArgs(2) & Chr(13) & _
               "Elementstatus: " & sArgs(3)
    End Sub
  Som vist i eksempelet ovanfor, mottek menyoppføringar knytte til eit skript eit kommadelt strengargument med desse verdiane:
Toppnivånamnet på menyen.
Streng-ID-en til den valde menyoppføringa.
Den numeriske ID-en til den valde menyoppføringa.
Den gjeldande tilstanden til menyelementet. Dette er nyttig for avkryssingsboksar og radioknappar. Viss det er kryssa av for dette elementet, vert verdien "1" returnert, elles vert "0" returnert.
Eksempelet ovanfor kan skrivast slik i Python:
    from scriptforge import CreateScriptService
    
    def create_menu(args=None):
        oDoc = CreateScriptService("Document")
        oMenu = oDoc.CreateMenu("My Menu")
        oMenu.AddItem("Item A", command="About")
        oMenu.AddItem("Item B", script="vnd.sun.star.script:my_macros.py$item_b_listener?language=Python&location=user")
        oMenu.Dispose()
  
    def item_b_listener(args):
        bas = CreateScriptService("Basic")
        s_args = args.split(",")
        msg = f"Menunamn: {s_args[0]}\n"
        msg += f"Menyelement: {s_args[1]}\n"
        msg += f"Element-ID: {s_args[2]}\n"
        msg += f"Elementstatus: {s_args[3]}"
        bas.MsgBox(msg)
  | Name | Skriveverna | Type | Beskriving | 
|---|---|---|---|
| ShortcutCharacter | Nei | String | Teikn som vert brukt for å definera tilgangsnøkkelen til eit menyelement. Standardteiknet er «~». | 
| SubmenuCharacter | Nei | String | Teikn eller streng som definerer korleis elementa er nysta. Standardteikn er «>». | 
For å laga ein meny med undermenyar, bruk teiknet som er definert i eigenskapen SubmenuCharacter medan du lagar menyoppføringa for å definera plasseringa av han. Tenk for eksempel på det følgjande meny-/undermeny-hierarkiet.
    ' Item A
    ' Item B > Item B.1
    '          Item B.2
    ' ------ (line separator)
    ' Item C > Item C.1 > Item C.1.1
    '                     Item C.1.2
    ' Item C > Item C.2 > Item C.2.1
    '                     Item C.2.2
    '                     ------ (line separator)
    '                     Item C.2.3
    '                     Item C.2.4
  Koden nedanfor brukar standard undermeny-teiknet ">" for å laga meny-/undermenyhierarkiet definert ovanfor:
    oMenu.AddItem("Item A")
    oMenu.AddItem("Item B>Item B.1")
    oMenu.AddItem("Item B>Item B.2")
    oMenu.AddItem("---")
    oMenu.AddItem("Item C>Item C.1>Item C.1.1")
    oMenu.AddItem("Item C>Item C.1>Item C.1.2")
    oMenu.AddItem("Item C>Item C.2>Item C.2.1")
    oMenu.AddItem("Item C>Item C.2>Item C.2.2")
    oMenu.AddItem("Item C>Item C.2>---")
    oMenu.AddItem("Item C>Item C.2>Item C.2.3")
    oMenu.AddItem("Item C>Item C.2>Item C.2.4")
  Strengen --- vert brukt for å definera skiljelinjer i menyar eller undermenyar.
| Liste over metodar i tenesta «Menu» | ||
|---|---|---|
Set inn ein avkryssingsboks i menyen. Returnerer ein heiltalsverdi som identifiserer det innsette elementet.
svc.AddCheckBox(menuitem: str, opt name: str, opt status: bool, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int
menuitem: Definerer teksten som skal visast i menyen. Dette argumentet definerer også hierarkiet til elementet inne i menyen ved å bruka undermeny-teiknet.
name: Strengverdien som vert brukt for å identifisera elementet. Som standard vert det siste elementet i menyhierakiet brukt.
status: Definerer om elementet er vald når menyen vert laga (Standard = Usann).
ikon: Stien til og namnet på ikonet som skal visast utan det innleiande stiskiljeteiknet. Kva ikon som vert vist er avhengig av kva ikonsett som er i bruk.
tooltip: Teksten som skal visast i hjelpebobla.
command: Namnet på ein UNO-kommando utan prefikset .uno:. Viss namnet ikkje finst, skjer ingenting.
script: URI for eit Basic- eller Python-skript som vert utført når det vert klikka på elementet.
Argumenta command og script utelukkar kvarandre, difor kan berre eitt av dei setjast for kvart menyelement.
Sjå Scripting Framework URI Specification for å læra meir om URI-syntaksen som vert brukt i script-argument.
      ' Menyoppføring knytt til kommandoen .uno:Paste
      oMenu.AddCheckBox("Item A", Status := True, ToolTip := "Paste values", Command := "Paste")
      ' Køyrer Basic-skriptet «Standard.Module1.MyListener» som er lagra i dokumentet
      oMenu.AddCheckBox("Item B", Status := False, Script := "vnd.sun.star.script:Standard.Module1.MyListener?language=Basic&location=document")
      ' Køyrer Python-skriptet MyListener som ligg i fila myScripts.py i brukarskriptmappa
      oMenu.AddCheckBox("Item C", Status := True, Script := "vnd.sun.star.script:myScripts.py$MyListener?language=Python&location=user")
    
      oMenu.AddCheckBox("Item A", status=True, tooltip="Paste values", command="Paste")
      oMenu.AddCheckBox("Item B", status=False, script="vnd.sun.star.script:Standard.Module1.MyListener?language=Basic&location=document")
      oMenu.AddCheckBox("Item C", Status=True, Script="vnd.sun.star.script:myScripts.py$MyListener?language=Python&location=user")
    Set inn ein merkelapp i menyen. Returnerer ein heiltalsverdi som identifiserer det innsette elementet.
svc.AddItem(menuitem: str, opt name: str, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int
menuitem: Definerer teksten som skal visast i menyen. Dette argument definerer også plassen elementet har i menyhierarkiet ved hjelp av undermeny-teiknet.
name: Strengverdien som skal returnerast når det vert trykt på elementet. Som standard vert det siste elementet i menyhierakiet brukt.
ikon: Sti til og namn på ikonet som skal visast utan det innleiande stiskiljeteiknet. Kva ikon som vert vist er avhengig av kva ikonsett som er i bruk.
tooltip: Teksten som skal visast i hjelpebobla.
command: Namnet på ein UNO-kommando utan prefikset .uno:. Viss namnet ikkje finst, skjer ingenting.
script: URI for eit Basic- eller Python-skript som vert utført når det vert klikka på elementet.
      oMenu.AddItem("Element A", Tooltip := "Ei beskrivande melding")
    
      oMenu.AddItem("Element A", Tooltip = "Ei beskrivande melding")
    Set inn ein radioknapp i menyen. Returnerer ein heiltalsverdi som identifiserer det innsette elementet.
svc.AddRadioButton(menuitem: str, opt name: str, opt status: str, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int
menuitem: Definerer teksten som skal visast i menyen. Dette argument definerer også plassen elementet har i menyhierarkiet ved hjelp av undermeny-teiknet.
name: Strengverdien som skal returnerast når det vert trykt på elementet. Som standard vert det siste elementet i menyhierakiet brukt.
status: Definerer om elementet er vald når menyen vert laga (Standard = Usann).
ikon: Stien til og namnet på ikonet som skal visast utan det innleiande stiskiljeteiknet. Kva ikon som vert vist er avhengig av kva ikonsett som er i bruk.
tooltip: Teksten som skal visast i hjlepebobla.
command: Namnet på ein UNO-kommando utan prefikset .uno:. Viss namnet ikkje finst, skjer ingenting.
script: URI for eit Basic- eller Python-skript som vert utført når det vert klikka på elementet.
      oMenu.AddRadioButton("Item A", Name := "A", Status := True)
    
      oMenu.AddRadioButton("Item A", name="A", status=True)