public TrayIcon(QObject parent) : base(parent) { m_ShowMainWindowAction = new QAction("Show Synapse", this); m_ShowMainWindowAction.Checkable = true; QObject.Connect(m_ShowMainWindowAction, Qt.SIGNAL("triggered()"), HandleShowMainWindowActionTriggered); m_ShowDebugWindowAction = new QAction("Debug Window", this); m_ShowDebugWindowAction.Checkable = true; QObject.Connect(m_ShowDebugWindowAction, Qt.SIGNAL("triggered()"), HandleShowDebugWindowActionTriggered); m_Menu = new QMenu(); m_Menu.AddAction(m_ShowMainWindowAction); m_Menu.AddAction(m_ShowDebugWindowAction); m_Menu.AddSeparator(); m_Menu.AddAction(Gui.GlobalActions.NewMessageAction); m_Menu.AddAction(Gui.GlobalActions.JoinConferenceAction); m_Menu.AddAction(Gui.GlobalActions.ShowBrowserAction); m_Menu.AddAction(Gui.GlobalActions.EditProfileAction); m_Menu.AddAction(Gui.GlobalActions.ChangeStatusAction); m_Menu.AddSeparator(); m_Menu.AddAction(Gui.GlobalActions.ShowPreferencesAction); m_Menu.AddSeparator(); m_Menu.AddAction(Gui.GlobalActions.AboutAction); m_Menu.AddAction(Gui.GlobalActions.SendFeedbackAction); m_Menu.AddSeparator(); m_Menu.AddAction(Gui.GlobalActions.QuitAction); QObject.Connect(m_Menu, Qt.SIGNAL("aboutToShow()"), HandleMenuAboutToShow); QPixmap pixmap = new QPixmap("resource:/octy-22.png"); QIcon icon = new QIcon(pixmap); m_Icon = new QSystemTrayIcon(icon); m_Icon.SetContextMenu(m_Menu); QObject.Connect <QSystemTrayIcon.ActivationReason>(m_Icon, Qt.SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), HandleTrayActivated); }
void IDisposable.Dispose() { Hide(); m_Icon.Dispose(); m_Icon = null; }