Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private xui As XUI
Private Button1 As B4XView
Private ActionListener As Object
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.RootPane.LoadLayout("Layout1")
MainForm.Show
Dim st As SystemTray
st.Initialize
Dim icon As TrayIcon
icon.Initialize("icon", xui.LoadBitmap(File.DirAssets, "logo.png"), Null)
st.AddTrayIcon(icon)
Dim jo As JavaObject = icon
ActionListener = jo.CreateEventFromUI("java.awt.event.ActionListener", "ActionListener", Null)
jo.RunMethod("setPopupMenu", Array(CreatePopupMenu))
End Sub
Sub ActionListener_Event (MethodName As String, Args() As Object) As Object
If MethodName = "actionPerformed" Then
Dim jo As JavaObject = Args(0)
Dim command As String = jo.RunMethod("getActionCommand", Null)
Log("Clicked on: " & command)
End If
Return Null
End Sub
Sub CreatePopupMenu As JavaObject
Dim popup As JavaObject
popup.InitializeNewInstance("java.awt.PopupMenu", Null)
popup.RunMethod("add", Array(CreateMenuLabel("Item 1")))
popup.RunMethod("add", Array(CreateMenuWithChildren("Item 2", Array("AAA", "BBB", "CCC"))))
popup.RunMethod("add", Array(CreateMenuLabel("Item 3")))
popup.RunMethod("add", Array(CreateMenuLabel("Item 4")))
Return popup
End Sub
Sub CreateMenuLabel(str As String) As Object
Dim mi As JavaObject
mi.InitializeNewInstance("java.awt.MenuItem", Array(str))
mi.RunMethod("addActionListener", Array(ActionListener))
Return mi
End Sub
Sub CreateMenuWithChildren(str As String, children As List) As Object
Dim mi As JavaObject
mi.InitializeNewInstance("java.awt.Menu", Array(str))
For Each s As String In children
mi.RunMethod("add", Array(CreateMenuLabel(s)))
Next
Return mi
End Sub