!7 concept Profile { S name, options; } module VNCViewerTrayIcon > DynCRUD { transient TrayIcon trayIcon; *() { super(Profile); } start { db(); onConceptsChangeAndNow(r makeTrayIcon); } void makeTrayIcon enter { disposeTrayIcon(trayIcon); L menuItems = ll(r launchVNCViewer, "VNC Viewer Connection Dialog", r launchVNCViewer); for (final Profile p) addAll(menuItems, p.name, r { launchVNCViewer(p.options) }); addAll(menuItems, "Edit Profiles...", r dm_activateOSAndModule); trayIcon = installTrayIcon(#1101468, "Start VNC Viewer", toObjectArray(menuItems)); } void cleanMeUp { disposeTrayIcon(trayIcon); } }