public void SelectPlugin(int index) { iSelectedIndex = index; PluginViewItem activeControl = null; SuspendLayout(); for (int i = 0; i < Controls.Count; i++) { PluginViewItem item2 = (PluginViewItem)Controls[i]; if (i == index) { activeControl = item2; bool hasOption = item2.HasOption; if (!item2.HasOptionQueried) { hasOption = PluginInfoHasOption(item2.PluginInfo); } RowStyles[i].Height = Math.Min(item2.SelectPlugin(hasOption), 134f); item2.Invalidate(); } else { item2.UnselectPlugin(); RowStyles[i].Height = 55f; } } ResumeLayout(); if (activeControl != null) { ScrollControlIntoView(activeControl); } }
private void contextMenuStripPlugin_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { PluginViewItem sourceControl = contextMenuStripPlugin.SourceControl as PluginViewItem; if (sourceControl != null) { if (e.ClickedItem == tsmiOption) { ShowPluginOption(sourceControl); } else if (e.ClickedItem == tsmiPluginAbout) { if (PluginAboutRequired != null) { PluginAboutRequired(this, new PluginOptionEventArgs(sourceControl)); } } else if (e.ClickedItem == tsmiDisable) { sourceControl.PluginEnabled = !sourceControl.PluginEnabled; } else if (e.ClickedItem == tsmiUninstall) { contextMenuStripPlugin.Close(ToolStripDropDownCloseReason.ItemClicked); RemovePluginViewItem(sourceControl, false); } } }
private void ShowPluginOption(PluginViewItem pvi) { if (PluginOptionRequired != null) { PluginOptionRequired(this, new PluginOptionEventArgs(pvi)); } }
private void pvi_DoubleClick(object sender, EventArgs e) { PluginViewItem pvi = (PluginViewItem)sender; if (pvi.HasOption) { ShowPluginOption(pvi); } }
private void pvi_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { PluginViewItem control = (PluginViewItem)sender; if (contextMenuStripPlugin == null) { CreateContextMenu(); } tsmiPluginAbout.Text = string.Format(MNU_PLUGINABOUT, control.Name); tsmiOption.Enabled = control.HasOption && control.PluginEnabled; tsmiDisable.Text = control.PluginEnabled ? BTN_DISABLE : BTN_ENABLE; contextMenuStripPlugin.Show(control, e.Location); } }
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if ((keyData == Keys.Up) || (keyData == Keys.Left)) { if (iSelectedIndex > 0) { SelectPlugin(iSelectedIndex - 1); } return(true); } if ((keyData == Keys.Down) || (keyData == Keys.Right)) { if (iSelectedIndex < (Controls.Count - 1)) { SelectPlugin(iSelectedIndex + 1); } return(true); } if (keyData == Keys.Home) { if (Controls.Count > 0) { SelectPlugin(0); } return(true); } if (keyData == Keys.End) { if (Controls.Count > 0) { SelectPlugin(Controls.Count - 1); } return(true); } if (((keyData == Keys.Apps) && (Controls.Count > 0)) && ((-1 < iSelectedIndex) && (iSelectedIndex < Controls.Count))) { PluginViewItem control = (PluginViewItem)Controls[iSelectedIndex]; if (contextMenuStripPlugin == null) { CreateContextMenu(); } tsmiPluginAbout.Text = string.Format(MNU_PLUGINABOUT, control.Name); tsmiOption.Enabled = control.HasOption && control.PluginEnabled; tsmiDisable.Text = control.PluginEnabled ? BTN_DISABLE : BTN_ENABLE; contextMenuStripPlugin.Show(control, 2, control.Height + 2); } return(base.ProcessCmdKey(ref msg, keyData)); }
private bool RemovePluginViewItem(PluginViewItem pvi, bool noRaiseEvent) { bool flag; SuspendLayout(); try { if (!noRaiseEvent) { PluginOptionEventArgs e = new PluginOptionEventArgs(pvi); if (PluginRemoved != null) { PluginRemoved(this, e); if (e.Cancel) { return(false); } } } int index = Controls.IndexOf(pvi); if (iSelectedIndex == index) { iSelectedIndex = -1; } if (index > -1) { Controls.RemoveAt(index); RowStyles.RemoveAt(index); RowCount--; for (int i = 0; i < Controls.Count; i++) { SetRow(Controls[i], i); } pvi.Dispose(); return(true); } flag = false; } finally { ResumeLayout(); } return(flag); }
public void AddPluginViewItem(PluginInformation pi, PluginAssembly pa) { SuspendLayout(); PluginViewItem control = new PluginViewItem(pi, pa); control.MouseDown += pvi_MouseDown; control.MouseUp += pvi_MouseUp; control.DoubleClick += pvi_DoubleClick; control.OptionButtonClick += pvi_OptionButtonClick; control.DisableButtonClick += pvi_DisableButtonClick; control.RemoveButtonClick += pvi_RemoveButtonClick; int count = Controls.Count; RowStyles.Insert(count, new RowStyle(SizeType.Absolute, 55f)); Controls.Add(control, 0, count); RowCount = Controls.Count + 1; ResumeLayout(); for (int i = 0; i < Controls.Count; i++) { SetRow(Controls[i], i); } }
public void AddPluginViewItem(PluginInformation pi, PluginAssembly pa) { base.SuspendLayout(); PluginViewItem control = new PluginViewItem(pi, pa); control.MouseDown += new MouseEventHandler(this.pvi_MouseDown); control.MouseUp += new MouseEventHandler(this.pvi_MouseUp); control.DoubleClick += new EventHandler(this.pvi_DoubleClick); control.OptionButtonClick += new EventHandler(this.pvi_OptionButtonClick); control.DisableButtonClick += new EventHandler(this.pvi_DisableButtonClick); control.RemoveButtonClick += new EventHandler(this.pvi_RemoveButtonClick); int count = base.Controls.Count; base.RowStyles.Insert(count, new RowStyle(SizeType.Absolute, 55f)); base.Controls.Add(control, 0, count); base.RowCount = base.Controls.Count + 1; base.ResumeLayout(); for (int i = 0; i < base.Controls.Count; i++) { base.SetRow(base.Controls[i], i); } }
public void RemovePluginsRange(PluginInformation[] pis) { base.SuspendLayout(); try { List <PluginViewItem> list = new List <PluginViewItem>(); foreach (Control control in base.Controls) { PluginViewItem item = control as PluginViewItem; if ((item != null) && (Array.IndexOf <PluginInformation>(pis, item.PluginInfo) != -1)) { list.Add(item); } } foreach (PluginViewItem item2 in list) { this.RemovePluginViewItem(item2, true); } } finally { base.ResumeLayout(); } }
private void pvi_DisableButtonClick(object sender, EventArgs e) { PluginViewItem item = (PluginViewItem)sender; item.PluginEnabled = !item.PluginEnabled; }
public PluginOptionEventArgs(PluginViewItem pvi) { this.pvi = pvi; }