SFWidgets . Menu serbisyo

Ang Menu maaaring gamitin ang serbisyo upang lumikha at mag-alis ng mga menu mula sa menubar ng isang window ng dokumento ng LibreOffice. Ang bawat entry sa menu ay maaaring iugnay sa isang script o sa isang utos ng UNO. Ang serbisyong ito ay nagbibigay ng mga sumusunod na kakayahan:

note

Ang mga menu na ginawa gamit ang serbisyong ito ay magagamit lamang para sa isang tinukoy na window ng dokumento. Ang mga ito ay hindi nai-save sa dokumento o bilang mga setting ng application. Ang pagsasara at pagbubukas ng dokumento ay ibabalik ang mga default na setting ng menubar.


warning

Kapag na-edit ang mga object ng OLE gaya ng Math formula o Calc chart mula sa loob ng isang dokumento, muling iko-configure ng LibreOffice ang menubar ayon sa object. Kapag nangyari ito, ang mga menu na ginawa gamit ang Menu ang serbisyo ay inalis at hindi na maibabalik pagkatapos i-edit ang OLE object.


Panawagan sa serbisyo

Bago gamitin ang Menu serbisyo ang ScriptForge kailangang i-load o i-import ang library:

note

• Ang mga pangunahing macro ay kailangang mag-load ScriptForge aklatan gamit ang sumusunod na pahayag:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Ang mga script ng Python ay nangangailangan ng pag-import mula sa scriptforge module:
mula sa scriptforge import CreateScriptService


Sa Basic

Ang Menu ang serbisyo ay ginagawa sa pamamagitan ng pagtawag sa CreateMenu pamamaraan mula sa Dokumento serbisyo. Ang code snippet sa ibaba ay lumilikha ng menu na pinangalanan Aking Menu sa kasalukuyang window ng dokumento na may dalawang entry Aytem A at Aytem B .


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

Matapos gawin ang menu, inirerekumenda na tawagan ang Itapon paraan upang mapalaya ang mga mapagkukunang ginagamit ng Menu halimbawa ng serbisyo.


Sa halimbawa sa itaas, Aytem A ay nauugnay sa utos ng UNO .uno:Tungkol sa samantalang Aytem B ay nauugnay sa script ItemB_Listener tinukoy sa Modyul1 ng Pamantayan aklatan ng Aking mga Macros lalagyan.

Ang sumusunod na halimbawa ay tumutukoy ItemB_Listener tatawagin yan kung kailan Aytem B ay nag-click. Hinahati lang ng tagapakinig na ito ang string ng argumento na ipinasa sa Sub at ipinapakita ang mga ito sa isang kahon ng mensahe.


    Sub ItemB_Listener(args As String)
        ' Iproseso ang string ng argument na ipinasa sa nakikinig
        Dim sArgs as Object
        sArgs = Split(args, ",")
        MsgBox "Pangalan ng menu: " & sArgs(0) & Chr(13) & _
               "Item sa menu: " & sArgs(1) at Chr(13) & _
               "Item ID: " & sArgs(2) at Chr(13) & _
               "Katayuan ng item: " & sArgs(3)
    End Sub
  

Gaya ng ipinapakita sa halimbawa sa itaas, ang mga entry sa menu na nauugnay sa isang script ay tumatanggap ng isang comma-separated string argument na may mga sumusunod na value:

Sa Python

Ang mga halimbawa sa itaas ay maaaring isulat sa Python tulad ng sumusunod:


    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"Pangalan ng menu: {s_args[0]}\n"
        msg += f"Item ng menu: {s_args[1]}\n"
        msg += f"Item ID: {s_args[2]}\n"
        msg += f"Katayuan ng item: {s_args[3]}"
        bas.MsgBox(msg)
  

Mga Katangian

Pangalan

Readonly

Type

Mga nilalaman

ShortcutCharacter

Hindi

String

Character na ginamit upang tukuyin ang access key ng isang menu item. Ang default na character ay "~".

SubmenuCharacter

Hindi

String

Character o string na tumutukoy kung paano naka-nest ang mga item sa menu. Ang default na character ay ">".


Menu at Submenu

Upang lumikha ng isang menu na may mga submenu, gamitin ang character na tinukoy sa SubmenuCharacter property habang ginagawa ang menu entry para tukuyin kung saan ito ilalagay. Halimbawa, isaalang-alang ang sumusunod na hierarchy ng menu/submenu.


    ' 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
  

Ang code sa ibaba ay gumagamit ng default na submenu na character na ">" upang gawin ang menu/submenu hierarchy na tinukoy sa itaas:


    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

Ang string --- ay ginagamit upang tukuyin ang mga linya ng separator sa mga menu o submenus.


Paggamit ng mga icon

Maaaring may mga icon ang mga item sa menu, na tinukoy bilang mga argumento sa AddCheckBox , AddItem at AddRadioButton pamamaraan.

Ang lahat ng mga icon na available sa LibreOffice ay maaaring gamitin sa pamamagitan ng pagtukoy sa kanilang landas na nauugnay sa folder kung saan ang mga icon na file ay matatagpuan sa folder ng pag-install. Ang mga icon ay matatagpuan sa sumusunod na folder:

INSTALLDIR/share/config

tip

Gamitin ang InstallFolder ari-arian ng FileSystem serbisyo upang matukoy kung saan naka-install ang LibreOffice sa iyong system.


Ang folder na ito ay naglalaman ng isang serye ng mga ZIP file na naglalaman ng mga file ng imahe ng bawat available na hanay ng icon. Ang mga imahe sa loob ng mga ZIP file na ito ay nakaayos sa mga folder. Upang gumamit ng icon, tukuyin ang icon na file na may path patungo sa lokasyon nito sa loob ng ZIP file.

Ang halimbawa sa ibaba ay gumagamit ng icon na "sc_newdoc.svg" na matatagpuan sa loob ng "cmd" na folder. Ang forward slash "/" na character ay ginagamit bilang path separator anuman ang operating system.

Sa Basic

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

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

Ang lahat ng mga hanay ng icon ay may parehong panloob na istraktura. Ang aktwal na icon na ipinapakita ay depende sa icon set na kasalukuyang ginagamit.


Pamamaraan

Listahan ng Mga Paraan sa Serbisyo ng Menu

AddCheckBox

AddItem

AddRadioButton


AddCheckBox

Naglalagay ng check box sa menu. Nagbabalik ng integer value na tumutukoy sa ipinasok na item.

Syntax:

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

Mga Parameter:

menuitem: Tinutukoy ang tekstong ipapakita sa menu. Tinutukoy din ng argumentong ito ang hierarchy ng item sa loob ng menu sa pamamagitan ng paggamit ng submenu na character.

pangalan: String value na ginagamit para matukoy ang menu item. Bilang default, ginagamit ang huling bahagi ng hierarchy ng menu.

katayuan: Tinutukoy kung napili ang item kapag ginawa ang menu (Default = Mali ).

icon: Path at pangalan ng icon na ipapakita nang walang nangungunang path separator. Ang aktwal na icon na ipinapakita ay depende sa icon set na ginagamit.

tooltip: Tekstong ipapakita bilang tooltip.

utos: Ang pangalan ng isang UNO command na walang .uno: unlapi. Kung wala ang command name, walang mangyayari.

script: Ang URI para sa isang Basic o Python script na isasagawa kapag na-click ang item.

note

Ang mga argumento utos at script ay kapwa eksklusibo, kaya isa lamang sa mga ito ang maaaring itakda para sa bawat item sa menu.


tip

Basahin Pagtutukoy ng URI Framework ng Scripting upang matuto nang higit pa tungkol sa URI syntax na ginamit sa script argumento.


Halimbawa:

Sa Basic

      ' Menu entry na nauugnay sa .uno:Paste command
      oMenu.AddCheckBox("Item A", Status := True, ToolTip := "Paste values", Command := "Paste")
      ' Pinapatakbo ang Basic na script na Standard.Module1.MyListener na nakaimbak sa dokumento
      oMenu.AddCheckBox("Item B", Status := False, Script := "vnd.sun.star.script:Standard.Module1.MyListener?language=Basic&location=document")
      ' Pinapatakbo ang Python script na MyListener na matatagpuan sa file myScripts.py sa folder ng mga script ng user
      oMenu.AddCheckBox("Item C", Status := True, Script := "vnd.sun.star.script:myScripts.py$MyListener?language=Python&location=user")
    
Sa Python

      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

Naglalagay ng label entry sa menu. Nagbabalik ng integer value na tumutukoy sa ipinasok na item.

Syntax:

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

Mga Parameter:

menuitem: Tinutukoy ang tekstong ipapakita sa menu. Tinutukoy din ng argumentong ito ang hierarchy ng item sa loob ng menu sa pamamagitan ng paggamit ng submenu na character.

pangalan: String value na ibabalik kapag na-click ang item. Bilang default, ginagamit ang huling bahagi ng hierarchy ng menu.

icon: Path at pangalan ng icon na ipapakita nang walang nangungunang path separator. Ang aktwal na icon na ipinapakita ay depende sa icon set na ginagamit.

tooltip: Tekstong ipapakita bilang tooltip.

utos: Ang pangalan ng isang UNO command na walang .uno: unlapi. Kung wala ang command name, walang mangyayari.

script: Ang URI para sa isang Basic o Python script na isasagawa kapag na-click ang item.

note

Ang mga argumento utos at script ay kapwa eksklusibo, kaya isa lamang sa mga ito ang maaaring itakda para sa bawat item sa menu.


tip

Basahin Pagtutukoy ng URI Framework ng Scripting upang matuto nang higit pa tungkol sa URI syntax na ginamit sa script argumento.


Halimbawa:

Sa Basic

      oMenu.AddItem("Item A", Tooltip := "Isang naglalarawang mensahe")
    
Sa Python

      oMenu.AddItem("Item A", tooltip = "Isang naglalarawang mensahe")
    

AddRadioButton

Naglalagay ng entry sa radio button sa menu. Nagbabalik ng integer value na tumutukoy sa ipinasok na item.

Syntax:

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

Mga Parameter:

menuitem: Tinutukoy ang tekstong ipapakita sa menu. Tinutukoy din ng argumentong ito ang hierarchy ng item sa loob ng menu sa pamamagitan ng paggamit ng submenu na character.

pangalan: String value na ibabalik kapag na-click ang item. Bilang default, ginagamit ang huling bahagi ng hierarchy ng menu.

katayuan: Tinutukoy kung napili ang item kapag ginawa ang menu (Default = Mali ).

icon: Path at pangalan ng icon na ipapakita nang walang nangungunang path separator. Ang aktwal na icon na ipinapakita ay depende sa icon set na ginagamit.

tooltip: Tekstong ipapakita bilang tooltip.

utos: Ang pangalan ng isang UNO command na walang .uno: unlapi. Kung wala ang command name, walang mangyayari.

script: Ang URI para sa isang Basic o Python script na isasagawa kapag na-click ang item.

note

Ang mga argumento utos at script ay kapwa eksklusibo, kaya isa lamang sa mga ito ang maaaring itakda para sa bawat item sa menu.


tip

Basahin Pagtutukoy ng URI Framework ng Scripting upang matuto nang higit pa tungkol sa URI syntax na ginamit sa script argumento.


Halimbawa:

Sa Basic

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

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

Lahat ScriptForge Ang mga pangunahing gawain o identifier na may prefix na may underscore na character na "_" ay nakalaan para sa panloob na paggamit. Ang mga ito ay hindi nilalayong gamitin sa Basic macros o Python script.


Mangyaring suportahan kami!