Pomoč LibreOfficeDev 7.6
Storitev Menu lahko uporabite za ustvarjanje in odstranjevanje menijev v menijski vrstici okna dokumenta LibreOfficeDev. Vsak menijski vnos lahko povežete s skriptom ali ukazom UNO. Ta storitev ponuja naslednje zmogljivosti:
Ustvarjanje menijev z vnosi, potrditvenimi polji, izbirnimi polji in ločili po meri.
Okrasitev menijskih elementov z ikonami in namigi.
Meniji, ustvarjeni s to storitvijo, so na voljo le v navedenem oknu dokumenta. Ne shranijo se v dokument, tudi kot nastavitve programa ne. Če zaprete in odprete dokument, s tem obnovite privzete nastavitve menijske vrstice.
Če predmete OLE, kot so formule programa Math ali grafikoni programa Calc, urejamo v dokumentu, LibreOfficeDev prilagodi menijsko vrstico glede na predmet. Ko se to zgodi, se meniji, ustvarjeni s storitvijo Menu, odstranijo in se več ne obnovijo, ko je urejanje predmeta OLE zaključeno.
Pred uporabo storitve Menu je potrebno naložiti ali uvoziti knjižnico ScriptForge:
Instanco storitve Menu lahko tvorite s klicem metode CreateMenu iz storitve Document. Spodnji odlomek kode ustvari meni Moj meni v oknu trenutnega dokumenta z dvema vnosoma, Element A in Element B.
    Sub CreateMenu()
        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        Dim oDoc as Object, oMenu as Object
        Set oDoc = CreateScriptService("Document")
        Set oMenu = oDoc.CreateMenu("Moj meni")
        With oMenu
            .AddItem("Element A", Command := "About")
            .AddItem("Element B", Script := "vnd.sun.star.script:Standard.Module1.ItemB_Listener?language=Basic&location=application")
            .Dispose()
        End With
    End Sub
  Po izdelavi menija je priporočeno, da pokličete metodo Dispose, da sprostite vire, ki jih uporablja instanca storitve Menu.
V zgornjem primeru je Element A povezan z ukazom UNO .uno:About, medtem ko je Element B povezan s skriptom ItemB_Listener, določenim v Modul1 knjižnice Standardno vsebnika Moji Makri.
Naslednji primer določi ItemB_Listener, ki bo klican, ko je kliknjen Element B. Ta poslušalec enostavno razdeli niz, podan v Sub, na argumente in jih prikaže v pojavnem oknu.
    Sub ItemB_Listener(args As String)
        ' Obdelaj niz argumentov, podan poslušalcu
        Dim sArgs as Object
        sArgs = Split(args, ",")
        MsgBox "Ime menija: " & sArgs(0) & Chr(13) & _
               "Element menija: " & sArgs(1) & Chr(13) & _
               "ID elementa= " & sArgs(2) & Chr(13) & _
               "Stanje elementa: " & sArgs(3)
    End Sub
  Kot prikazuje zgornji primer, prejmejo menijski vnosi, povezani s skriptom, argument kot niz, ločen z vejicami, z naslednjimi vrednostmi:
Vrhnje ime menija.
ID niza izbranega menijskega vnosa.
Številski ID izbranega menijskega vnosa.
Trenutno stanje menijskega vnosa. To je uporabno za potrditvena polja in izbirne gumbe. Če je element potrjen, vrne vrednost "1", sicer vrne "0".
Zgornje primere lahko zapišemo v Pythonu na sledeč način:
    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"Ime menija: {s_args[0]}\n"
        msg += f"Element menija: {s_args[1]}\n"
        msg += f"ID elementa: {s_args[2]}\n"
        msg += f"Stanje elementa: {s_args[3]}"
        bas.MsgBox(msg)
  | Ime | Samo za branje | Vrsta | Opis | 
|---|---|---|---|
| ShortcutCharacter | Ne | String | Znak, ki določa dostopno tipko za menijski element. Privzeta vrednost je »~«. | 
| SubmenuCharacter | Ne | String | Znak ali niz, ki določa, kako so elementi menija gnezdeni. Privzeti znak je »>«. | 
Za izdelavo menija s podmeniji uporabite znak, določen z lastnostjo SubmenuCharacter, medtem ko ustvarjate menijski vnos z določitvijo, kam bo postavljen. Razmislite npr. o naslednji hierarhiji menija/podmenijev.
    ' 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
  Spodnja koda uporablja privzeti znak podmenija »>« za tvorbo zgoraj določene hierarhije menija/podmenijev:
    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")
  Niz --- je uporabljen za določitev črtnih ločil v menijih in podmenijih.
| Seznam metod storitve Menu | ||
|---|---|---|
V meni vstavi potrditveno polje. Vrne celoštevilsko vrednost, ki identificira vstavljeni element.
svc.AddCheckBox(menuitem: str, opt name: str, opt status: bool, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int
menuitem: določa besedilo, ki bo prikazano v meniju. Ta argument definira tudi hierarhijo elementa v meniju z uporabo znaka za podmeni.
name: vrednost niza, ki identificira element menija. Privzeto je uporabljena zadnja komponenta hierarhije menija.
status: določa, ali je element izbran, ko je ustvarjen meni (privzeta vrednost je False).
icon: pot in ime ikone, ki bo prikazana, brez vodilnega ločila poti. Dejansko prikazana ikona je odvisna od uporabljenega nabora ikon.
tooltip: besedilo, ki bo prikazano kot namig.
command: ime ukaza UNO brez predpone .uno:. Če ime ukaza ne obstaja, se ne zgodi nič.
script: URI za skript Basic oz. Python, ki bo izvršen, ko se zgodi klik elementa.
Argumenta command in script sta vzajemno izključujoča, zato lahko za vsak element menija nastavite le enega izmed njiju.
Če želite izvedeti več o skladnji URI, uporabljeni v argumentu script, si oglejte specifikacijo URI na wiki-strani specifikacije URI za ogrodje skriptanja (v angl.).
      ' Menijski vnos, povezan z ukazom .uno:Paste
      oMenu.AddCheckBox("Item A", Status := True, ToolTip := "Paste values", Command := "Paste")
      ' Zažene skript Basic Standard.Module1.MyListener, shranjen v dokumentu
      oMenu.AddCheckBox("Item B", Status := False, Script := "vnd.sun.star.script:Standard.Module1.MyListener?language=Basic&location=document")
      ' Zažene skript Python MyListener, ki se nahaja v datoteki myScripts.py v mapi uporabniških skriptov
      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")
    V meni vstavi oznako kot vnos. Vrne celoštevilsko vrednost, ki identificira vstavljeni element.
svc.AddItem(menuitem: str, opt name: str, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int
menuitem: določa besedilo, ki bo prikazano v meniju. Ta argument definira tudi hierarhijo elementa v meniju z uporabo znaka za podmeni.
name: vrednost niza, ki bo vrnjena ob kliku elementa. Privzeto je uporabljena zadnja komponenta hierarhije menija.
icon: pot in ime ikone, ki bo prikazana, brez vodilnega ločila poti. Dejansko prikazana ikona je odvisna od uporabljenega nabora ikon.
tooltip: besedilo, ki bo prikazano kot namig.
command: ime ukaza UNO brez predpone .uno:. Če ime ukaza ne obstaja, se ne zgodi nič.
script: URI za skript Basic oz. Python, ki bo izvršen, ko se zgodi klik elementa.
      oMenu.AddItem("Element A", Tooltip := "Opisno sporočilo")
    
      oMenu.AddItem("Element A", tooltip := "Opisno sporočilo")
    V meni vstavi izbirni gumb. Vrne celoštevilsko vrednost, ki identificira vstavljeni element.
svc.AddRadioButton(menuitem: str, opt name: str, opt status: str, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int
menuitem: določa besedilo, ki bo prikazano v meniju. Ta argument definira tudi hierarhijo elementa v meniju z uporabo znaka za podmeni.
name: vrednost niza, ki bo vrnjena ob kliku elementa. Privzeto je uporabljena zadnja komponenta hierarhije menija.
status: določa, ali je element izbran, ko je ustvarjen meni (privzeta vrednost je False).
icon: pot in ime ikone, ki bo prikazana, brez vodilnega ločila poti. Dejansko prikazana ikona je odvisna od uporabljenega nabora ikon.
tooltip: besedilo, ki bo prikazano kot namig.
command: ime ukaza UNO brez predpone .uno:. Če ime ukaza ne obstaja, se ne zgodi nič.
script: URI za skript Basic oz. Python, ki bo izvršen, ko se zgodi klik elementa.
      oMenu.AddRadioButton("Item A", Name := "A", Status := True)
    
      oMenu.AddRadioButton("Item A", name="A", status=True)