> Hi Bill, > > Yes, it is. > > I have developed a little test app for you that shows this in action. > > Module1 is set as the Startup Class, in place of the more normal Form. > As it's the Startup Class, main() gets run automatically when you start > the program. First thing it does is instantiate the TrayIcon and give > it a tool tip so you know it's working. > Very important is the following Object.Attach line as this ensures your > module captures the events raised by the TrayIcon.
No need to use Object.Attach(), as there is a syntax for that. Look at the documentation of the NEW instruction. > This is normally not > necessary when you stick a control on a Form, as the Attach is > automatic. Then we make sure the TrayIcon gets Shown. > > After this, we instantiate a dummy form (I couldn't see any way around > this... Benoit??) You need a window to create a menu, that's true. > and then start to define our menus. The top-level > menu has the dummy form set as its parent (also important that the dummy > form has been instantiated (using NEW Form)...but it doesn't need to be > > [...] > > P.S. The full code for Module1 is as follows: > ' Gambas module file > PRIVATE MyTrayIcon AS TrayIcon > PRIVATE MyMenu AS Menu > PRIVATE MySubMenu1 AS Menu > PRIVATE MySubMenu2 AS Menu > PRIVATE MySubMenu3 AS Menu > PRIVATE MyDummyForm AS Form > > PUBLIC SUB main() > > MyTrayIcon = NEW TrayIcon -----------------------------> AS "MyTrayIcon" > MyTrayIcon.Tooltip = "Hi from Gambas" > Object.Attach(MyTrayIcon, ME, "MyTrayIcon") ...and you can remove the previous line. You can do that for all instanciations below. > MyTrayIcon.Show > > MyDummyForm = NEW Form > > MyMenu = NEW Menu(MyDummyForm, FALSE) > MyMenu.Caption = "TrayMenu" > MyMenu.Tag = "TrayMenu" > MyMenu.Name = "TrayMenu" > > MySubMenu1 = NEW Menu(MyMenu, FALSE) > MySubMenu1.Caption = "Status" > MySubMenu1.Tag = "Status" > MySubMenu1.Name = "mnuStatus" > Object.Attach(MySubMenu1, ME, "MyMenu1") > > MySubMenu2 = NEW Menu(MyMenu, FALSE) > MySubMenu2.Caption = "Show Main" > MySubMenu2.Tag = "ShowMain" > MySubMenu2.Name = "mnuShowMain" > Object.Attach(MySubMenu2, ME, "MyMenu2") > > MySubMenu3 = NEW Menu(MyMenu, FALSE) > MySubMenu3.Caption = "Exit Program" > MySubMenu3.Tag = "Exit" > MySubMenu3.Name = "mnuExit" > Object.Attach(MySubMenu3, ME, "MyMenu3") > > END > > PUBLIC SUB MyTrayIcon_Menu() > > MyMenu.Popup() > > END > > PUBLIC SUB MyMenu1_Click() > > Message.Info("Your program is: RUNNING") > > END > > PUBLIC SUB MyMenu2_Click() > > FMain.Show > > END > > PUBLIC SUB MyMenu3_Click() > > QUIT Do not use QUIT in GUI programs. Just close your form. > > END > Regards, -- Benoît Minisini ------------------------------------------------------------------------------ _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user