/// <summary> /// Initalize Gtk stuff /// </summary> private void GtkDBusInit() { launcher = LauncherEntry.GetForDesktopId("keepass2.desktop"); var rootMenuItem = new Dbusmenu.Menuitem(); var trayContextMenu = pluginHost.MainWindow.TrayContextMenu; // make copy of item list to prevent list changed exception when iterating var menuItems = new System.Windows.Forms.ToolStripItem[trayContextMenu.Items.Count]; trayContextMenu.Items.CopyTo(menuItems, 0); trayContextMenu.ItemAdded += (sender, e) => DBusBackgroundWorker.InvokeGtkThread(() => ConvertAndAddMenuItem(e.Item, rootMenuItem)); foreach (System.Windows.Forms.ToolStripItem item in menuItems) { if (item.Name == "m_ctxTrayTray" || item.Name == "m_ctxTrayFileExit") { continue; } ConvertAndAddMenuItem(item, rootMenuItem); } // the launcher may not be listening yet, so we delay setting the properties // to give it extra time finishInitDelaytimer.Tick += (sender, e) => { finishInitDelaytimer.Stop(); DBusBackgroundWorker.InvokeGtkThread(() => launcher.Quicklist = rootMenuItem); }; finishInitDelaytimer.Interval = 1000; finishInitDelaytimer.Start(); }
/// <summary> /// Item selected on the tree /// </summary> private void tProgs_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node != null) { SelectedEntry = e.Node.Tag as LauncherEntry; } else { SelectedEntry = null; } }
private void bOk_Click(object sender, System.EventArgs e) { DialogResult = DialogResult.OK; if (m_Entry == null) { m_Entry = new LauncherEntry(); } m_Entry.Path = labFile.Text; m_Entry.Name = txName.Text; if (txArgs.Text.Length > 0) { m_Entry.Arguments = txArgs.Text; } m_Entry.RunOnStartup = chkStartup.Checked; }