Tulong sa LibreOffice 25.8
Ang PopupMenu maaaring gamitin ang serbisyo upang lumikha ng mga popup menu na maaaring iugnay sa mga kaganapan o isagawa ng mga script. Ang serbisyong ito ay nagbibigay ng mga sumusunod na kakayahan:
Paglikha ng mga popup menu na may mga custom na entry, checkbox at radio button.
Dekorasyon ng mga item sa menu na may mga icon at tooltip.
Bago gamitin ang PopupMenu serbisyo ang ScriptForge kailangang i-load o i-import ang library:
Ang PopupMenu maaaring maisagawa ang serbisyo sa maraming paraan. Ang halimbawa sa ibaba ay lumilikha ng isang popup menu nang hindi ito iniuugnay sa isang mouse o kaganapan ng application.
    Sub ShowPopup
        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        Dim myPopup As Object
        Set myPopup = CreateScriptService("SFWidgets.PopupMenu", , 300, 300)
        myPopup.AddItem("Item ~A")
        myPopup.AddItem("Item ~B")
        vResponse = myPopup.Execute()
        MsgBox("Napiling item ID: " & vResponse)
        myPopup.Dispose()
    End Sub
  Pagpapatakbo ng Sub na tinukoy sa itaas ay lilikha ng popup menu na may dalawang entry sa posisyong X=300 at Y=300 sa screen.
Ang prefix SFWidgets ay maaaring sugpuin habang invoking ang PopupMenu serbisyo.
Ang sumusunod na halimbawa ay tumutukoy sa a Sub na maaaring iugnay sa isang kaganapan ng mouse:
    Sub MyPopupClick(Optional poMouseEvent as Object)
        Dim myPopup As Object
        Set myPopup = CreateScriptService("PopupMenu", poMouseEvent)
        ' Populate ang popupmenu ng mga item
        Dim vResponse As Variant
        vResponse = myPopup.Execute(False)
        ' Gumawa ng isang bagay batay sa vResponse
        ' ...
        myPopup.Dispose()
    End Sub
  Gamitin ang Itapon paraan upang magbakante ng mga mapagkukunan pagkatapos isagawa ang popup menu.
Posible ring iugnay ang isang popup menu sa mga kaganapang na-trigger ng mga application, form at dialog ng LibreOffice. Ang mga kaganapan tulad ng "Pinindot ang pindutan ng mouse" at "Inilabas ang pindutan ng mouse" ay karaniwang nauugnay sa mga popup na menu.
    Sub MyPopupClick(Optional poEvent as Object)
        Dim myPopup As Object
        Set myPopup = CreateScriptService("PopupMenu", poEvent)
        ' ...
    End Sub
  Ang mga halimbawa sa itaas ay maaaring isulat sa Python tulad ng sumusunod:
    from scriptforge import CreateScriptService
    
    def show_popup(args=None):
        my_popup = CreateScriptService("SFWidgets.PopupMenu", None, 300, 300)
        bas = CreateScriptService("Basic")
        my_popup.AddItem("Item ~A")
        my_popup.AddItem("Item ~B")
        response = my_popup.Execute()
        bas.MsgBox(f"Selected item ID: {response}")
        my_popup.Dispose()
  
    def my_popup_click(poEvent=None):
        my_popup = CreateScriptService("SFWidgets.PopupMenu", poEvent)
        # Populate ang popupmenu ng mga item
        response = my_popup.Execute()
        # Gumawa ng isang bagay batay sa tugon
        my_popup.Dispose()
  | 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 > . | 
Upang lumikha ng popup 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 > upang lumikha ng hierarchy ng menu/submenu na tinukoy sa itaas:
    myPopup.AddItem("Item A")
    myPopup.AddItem("Item B>Item B.1")
    myPopup.AddItem("Item B>Item B.2")
    myPopup.AddItem("---")
    myPopup.AddItem("Item C>Item C.1>Item C.1.1")
    myPopup.AddItem("Item C>Item C.1>Item C.1.2")
    myPopup.AddItem("Item C>Item C.2>Item C.2.1")
    myPopup.AddItem("Item C>Item C.2>Item C.2.2")
    myPopup.AddItem("Item C>Item C.2>---")
    myPopup.AddItem("Item C>Item C.2>Item C.2.3")
    myPopup.AddItem("Item C>Item C.2>Item C.2.4")
  Ang string --- ay ginagamit upang tukuyin ang mga linya ng separator sa mga menu o submenus.
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
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.
      myMenu.AddItem("Item A", Icon := "cmd/sc_newdoc.svg")
    
      myMenu.AddItem("Item A", icon="cmd/sc_newdoc.svg")
    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.
| Listahan ng Mga Paraan sa Serbisyo ng PopupMenu | ||
|---|---|---|
Naglalagay ng check box sa popup menu. Nagbabalik ng integer value na tumutukoy sa ipinasok na item.
svc.AddCheckBox(menuitem: str, opt name: str, opt status: bool = False, opt icon: str, opt tooltip: str): int
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.
      myPopup.AddCheckBox("Option A", Status := True)
    
      my_popup.AddCheckBox("Option A", status=True)
    Naglalagay ng menu entry sa popup menu. Nagbabalik ng integer value na tumutukoy sa ipinasok na item.
svc.AddItem(menuitem: str, opt name: str, opt icon: str, opt tooltip: str): int
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.
      myPopup.AddItem("Item A", Tooltip := "Isang naglalarawang mensahe")
    
      my_popup.AddItem("Item A", tooltip = "Isang naglalarawang mensahe")
    Naglalagay ng entry sa radio button sa popup menu. Nagbabalik ng integer value na tumutukoy sa ipinasok na item.
svc.AddRadioButton(menuitem: str, opt name: str, opt status: bool = False, opt icon: str, opt tooltip: str): int
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.
      myPopup.AddRadioButton("Option A", Name := "A", Status := True)
    
      my_popup.AddRadioButton("Option A", name="A", status=True)
    Ipinapakita ang popup menu at naghihintay ng aksyon ng user. Ibinabalik ang item na na-click ng user.
Kung nag-click ang user sa labas ng popup menu o pinindot ang Esc key, pagkatapos ay walang napiling item. Sa ganitong mga kaso, ang ibinalik na halaga ay depende sa ibinalik parameter. Kung returnid = Totoo at walang napiling item, pagkatapos ay ibabalik ang halagang 0 (zero). Kung hindi, isang walang laman na string "" ang ibinalik.
svc.Execute(opt returnid: bool = True): any
ibinalik: Kung totoo ibinalik ang napiling item ID. Kung Mali ibinabalik ng pamamaraan ang pangalan ng item (Default = totoo ).
Sa mga halimbawa sa ibaba, isang popup menu ang ginawa at ibinalik ang pangalan ng item dahil ang ibinalik argumento ay nakatakda sa Mali .
      myPopup.AddItem("Item A", Name := "A")
      myPopup.AddItem("Item B", Name := "B")
      Dim vResponse as Variant
      vResponse = myPopup.Execute(False)
    
      my_popup.AddItem("Item A", name="A")
      my_popup.AddItem("Item B", name="B")
      response = my_popup.Execute(False)