SFWidgets.Menu zerbitzua

Menu zerbitzua LibreOffice dokumentu-leiho bateko menu-barraren menuak sortu eta kentzeko erabili daiteke. Menu-sarrera bakoitza script batekin edo UNO komando batekin lotu daiteke. Zerbitzuak honako kapazitateak eskaintzen ditu:

note

Zerbitzu honekin sortutako menuak dokumentu-leiho jakin baterako soilik daude erabilgarri. Ez dira dokumentuan edo aplikazio-ezarpen gisa gordetzen. Dokumentua ixten eta irekitzen bada, menu-barraren ezarpen lehenetsiak berrezarriko dira.


warning

Math formulak, Calc grafikoak edo beste edozein OLE objektu dokumentu baten barruan editatzen direnean, LibreOfficek objektuaren arabera moldatzen du menu-barra. Hori gertatzen denean, Menu zerbitzuaren bidez sortutako menuak kendu egiten dira eta ez dira berrezartzen OLE objektuaren edizioa amaitu arte.


Zerbitzuari deitzea

Menu zerbitzua erabiltzeko, ScriptForge liburutegia kargatu edo inportatu behar da:

note

• Basic makroak erabiltzkeo, ScriptForge liburutegia kargatu behar da honako instrukzioa erabiliz:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scriptak erabiltzeko, berriz, scriptforge modulu baten inportazioa behar dute:
from scriptforge import CreateScriptService


Basic lengoaian

Menu zerbitzuaren instantzia bat sortzeko, deitu Document zerbitzuaren CreateMenu metodoari. Beheko kode-zatiak Nire menua izeneko menu bat sortzen du uneko dokumentu-leihoan, eta bi sarrera gehitzen dizkio, A elementua eta B elementua.


    Sub CreateMenu()
        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        Dim oDoc as Object, oMenu as Object
        Set oDoc = CreateScriptService("Document")
        Set oMenu = oDoc.CreateMenu("Nire menua")
        With oMenu
            .AddItem("A elementua", Command := "About")
            .AddItem("B elementua", Script := "vnd.sun.star.script:Standard.Module1.ItemB_Listener?language=Basic&location=application")
            .Dispose()
        End With
    End Sub
  
note

Menua sortu ondoren, gomendagarria daDispose metodoari deitzea Menu zerbitzu-instantziak erabili dituen baliabideak askatzeko.


Goiko adibidean, A elementua .uno:About UNO komandoari lotuta dago, eta B elementua My Macros edukiontziko Standard liburutegiaren Module1 moduluan definitutako ItemB_Listener scriptari lotuta dago.

Hurrengo adibideak B elementua sakatzean deituko den ItemB_Listener funtzioa definitzen du. Entzule horrek zera egiten du, Sub elementuari pasatutako argumentu-katea zatitzen du eta mezu-koadro batean erakusten du.


    Sub ItemB_Listener(args As String)
        ' Entzuleari pasatutako argumentu-katea prozesatzen du
        Dim sArgs as Object
        sArgs = Split(args, ",")
        MsgBox "Menu-izena: "   & sArgs(0) & Chr(13) & _
               "Menu-elementua: "   & sArgs(1) & Chr(13) & _
               "Elementuaren IDa: "     & sArgs(2) & Chr(13) & _
               "Elementuaren egoera: " & sArgs(3)
    End Sub
  

Goiko adibidean erakutsi den moduan, script bati lotutako menu-sarrerek komaz bereizitako kate-argumentu bat jasotzen dute, honako balioekin:

Python lengoaian

Goiko adibideak Python lengoaian ere idatzi daitezke, honako moduan:


    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"Menu-izena: {s_args[0]}\n"
        msg += f"Menu-elementua: {s_args[1]}\n"
        msg += f"Elementuaren IDa: {s_args[2]}\n"
        msg += f"Elementuaren egoera: {s_args[3]}"
        bas.MsgBox(msg)
  

Propietateak

Izena

Irakurtzeko soilik

Mota

Deskribapena

ShortcutCharacter

Ez

String

Menu-elementu baten atzitze-tekla definitzeko erabiltzen den karakterea. Karaktere lehenetsia "~" da.

SubmenuCharacter

Ez

String

Menu-elementuak nola habiaratzen diren definitzen duen karakterea edo katea. Karaktere lehenetsia ">" da.


Menuak eta azpimenuak

Azpimenuak dituen menu bat sortzeko, erabili SubmenuCharacter propietatean definitutako karakterea menua sortzen denean, non kokatuko den definitzeko. Adibidez, begiratu hurrengo menuen/azpimenuen hierarkia.


    ' 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
  

Beheko kodeak azpimenuen ">" karaktere lehenetsia darabil goian definitutako menuen/azpimenuen hierarkia sortzeko:


    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")
  
note

--- katea menuetako edo azpimenuetako marra bereizleak definitzeko erabiltzen da.


Ikonoak erabiltzea

Menuko elementuek ikonoak eduki ditzakete. AddCheckBox, AddItem eta AddRadioButton metodoen argumentu gisa adierazten dira.

LibreOffice aplikazioak erabilgarri dituen ikono guztiak erabili daitezke, ikono-fitxategiak instalazio-karpetako zein tokitan dauden zehazten bada beren bide-izen erlatiboaren bidez. Ikonoak honako karpetan daude:

INSTALLDIR/share/config

tip

Erabili FileSystem zerbitzuaren InstallFolder propietatea LibreOffice sistemako zein tokitan dagoen instalatuta zehazteko.


Karpeta horrek ikono multzo erabilgarri bakoitzaren irudi-fitxategiak dituzten ZIP fitxategien serieak ditu. ZIP fitxategien barruko irudiak karpetatan daude antolatuta. Ikono bat erabiltzeko, zehaztu ikono-fitxategiak ZIP fitxategiaren barruan duen kokagunearen bide-izena.

Beheko adibidean, "cmd" karpetaren barruan dagoen "sc_newdoc.svg" ikonoa erabiltzen da. Barraren karakterea, "/", bide-izenaren bereizle gisa erabiltzen da, berdin dio sistema eragilea zein den.

Basic lengoaian

      myMenu.AddItem("Item A", Icon := "cmd/sc_newdoc.svg")
    
Python lengoaian

      myMenu.AddItem("Item A", icon="cmd/sc_newdoc.svg")
    
note

Ikono multzo guztiek barneko egitura bera dute. Bistaratuko den ikonoa unean erabiltzen ari den ikono multzoaren araberakoa izango da.


Metodoak

Menu zerbitzuaren metodoen zerrenda

AddCheckBox

AddItem

AddRadioButton


AddCheckBox

Kontrol-lauki bat txertatzen du menuan. Txertatutako elementua identifikatzen duen osoko balio bat itzultzen du.

Sintaxia:

svc.AddCheckBox(menuitem: str, opt name: str, opt status: bool, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int

Parametroak:

menuitem: Menuan bistaratuko den testua definitzen du. Argumentu horrek elementuak menuaren barruan duen hierarkia ere definitzen du, azpimenuen karakterearen bidez.

name: Menu-elementua identifikatzeko erabiltzen den kate-balioa. Aukera lehenetsia menu-hierarkiaren azken osagaia erabiltzea da.

status: Menua sortzen denean elementua hautatuta dagoen ala ez definitzen du (Balio lehenetsia = False).

icon: Bistaratuko den ikonoaren bide-izena eta izena, ezkerreko bide-bereizlerik gabe. Erakutsiko den ikonoa erabilitako ikono multzoaren araberakoa izango da.

tooltip: Aholku gisa bistaratuko den testua.

command: UNO komandoaren izena, .uno: aurrizkirik gabe. Komando-izena existitzen ez bada, ez da ezer gertatuko.

script: Elementuan klik egitean exekutatutako den Basic edo Python script baten URIa.

note

command eta script argumentuek elkar baztertzen dute; beraz, horietako bakarra ezarri daiteke menu-elementu bakoitzean.


tip

Irakurri scriptgintzako lan-markoaren URI espezifikazioa script argumentuan erabilitako URI sintaxiari buruz gehiago jakiteko.


Adibidea:

Basic lengoaian

      ' .uno:Paste komandoari lotutako menu-sarrera
      oMenu.AddCheckBox("Item A", Status := True, ToolTip := "Paste values", Command := "Paste")
      ' Dokumentuan biltegiratutako Standard.Module1.MyListener izeneko Basic scripta exekutatzen du
      oMenu.AddCheckBox("Item B", Status := False, Script := "vnd.sun.star.script:Standard.Module1.MyListener?language=Basic&location=document")
      ' Erabiltzailearen scripten karpetan gordetako myScripts.py fitxategian dagoen MyListener izeneko Python scripta exekutatzen du
      oMenu.AddCheckBox("Item C", Status := True, Script := "vnd.sun.star.script:myScripts.py$MyListener?language=Python&location=user")
    
Python lengoaian

      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")
    

AddItem

Etiketa-sarrera bat txertatzen du menuan. Txertatutako elementua identifikatzen duen osoko balio bat itzultzen du.

Sintaxia:

svc.AddItem(menuitem: str, opt name: str, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int

Parametroak:

menuitem: Menuan bistaratuko den testua definitzen du. Argumentu honek elementuak menuan duen hierarkia ere definitzen du, horretarako azpimenuen karakterea erabiliz.

name: Elementuan klik egitean itzuliko den kate-balioa. Modu lehenetsian, menu-hierarkiaren azken osagaia erabiliko da.

icon: Bistaratuko den ikonoaren bide-izena eta izena, ezkerreko bide-bereizlerik gabe. Erakutsiko den ikonoa erabilitako ikono multzoaren araberakoa izango da.

tooltip: Aholku gisa bistaratuko den testua.

command: UNO komandoaren izena, .uno: aurrizkirik gabe. Komandoa existitzen ez bada, ez da ezer gertatuko.

script: Elementuan klik egitean exekutatuko den Basic edo Python script baten URIa.

note

command eta script argumentuek elkar baztertzen dute; beraz, horietako bakarra ezarri daiteke menu-elementu bakoitzean.


tip

Irakurri scriptgintzako lan-markoaren URI espezifikazioa script argumentuan erabilitako URI sintaxiari buruz gehiago jakiteko.


Adibidea:

Basic lengoaian

      oMenu.AddItem("A elementua", Tooltip := "Deskribapen-mezu bat")
    
Python lengoaian

      oMenu.AddItem("A elementua", tooltip = "Deskribapen-mezu bat")
    

AddRadioButton

Aukera-botoi bat txertatzen du menuan. Txertatutako elementua identifikatzen duen osoko balio bat itzultzen du.

Sintaxia:

svc.AddRadioButton(menuitem: str, opt name: str, opt status: str, opt icon: str, opt tooltip: str, opt command: str, opt script: str): int

Parametroak:

menuitem: Menuan bistaratuko den testua definitzen du. Argumentu honek elementuak menuaren barruan duen hierarkia ere definitzen du, horretarako azpimenuen karakterea erabiliz.

name: Elementuan klik egin ondoren itzuliko den kate-balioa. Balio lehenetsia menu-hierarkiaren azken osagaia da.

status: Menua sortzen denean elementua hautatuta dagoen ala ez definitzen du. (Balio lehenetsia = False).

icon: Bistaratuko den ikonoaren bide-izena eta izena, ezkerreko bide-bereizlerik gabe. Erakutsiko den ikonoa erabilitako ikono multzoaren araberakoa izango da.

tooltip: Aholku gisa bistaratuko den testua.

command: UNO komando baten izena, .uno: aurrizkirik gabe. Komandoa existitzen ez bada, ez da ezer gertatuko.

script: Elementuan klik egitean exekutatuko den Basic edo Python script baten URIa.

note

command eta script argumentuek elkar baztertzen dute; beraz, horietako bakarra ezarri daiteke menu-elementu bakoitzean.


tip

Irakurri scriptgintzako lan-markoaren URI espezifikazioa script argumentuan erabilitako URI sintaxiari buruz gehiago jakiteko.


Adibidea:

Basic lengoaian

      oMenu.AddRadioButton("Item A", Name := "A", Status := True)
    
Python lengoaian

      oMenu.AddRadioButton("Item A", name="A", status=True)
    
warning

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.


Emaguzu laguntza!