Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
 private void ShowPluginOption(PluginViewItem pvi)
 {
     if (PluginOptionRequired != null)
     {
         PluginOptionRequired(this, new PluginOptionEventArgs(pvi));
     }
 }
Beispiel #4
0
        private void pvi_DoubleClick(object sender, EventArgs e)
        {
            PluginViewItem pvi = (PluginViewItem)sender;

            if (pvi.HasOption)
            {
                ShowPluginOption(pvi);
            }
        }
Beispiel #5
0
 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);
     }
 }
Beispiel #6
0
 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));
 }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
            }
        }
Beispiel #9
0
        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);
            }
        }
Beispiel #10
0
 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();
     }
 }
Beispiel #11
0
        private void pvi_DisableButtonClick(object sender, EventArgs e)
        {
            PluginViewItem item = (PluginViewItem)sender;

            item.PluginEnabled = !item.PluginEnabled;
        }
 public PluginOptionEventArgs(PluginViewItem pvi) {
     this.pvi = pvi;
 }
 public PluginOptionEventArgs(PluginViewItem pvi)
 {
     this.pvi = pvi;
 }