/// <summary> /// /// </summary> /// <param name="plugin"></param> private void setupPluginMainMenu(IConvendroPlugin plugin) { // use default bitmap where possible. Bitmap defaultimage = plugin.MenuBitmap; if (plugin.MenuBitmap == null) { defaultimage = Properties.Resources.plugin; } ToolStripMenuItem nitem = new ToolStripMenuItem(plugin.Description, plugin.MenuBitmap); try { if (toolsPluginsToolStripMenuItem.DropDownItems.Count == 1) { toolsPluginsToolStripMenuItem.DropDownItems.Add(new ToolStripSeparator()); } toolsPluginsToolStripMenuItem.DropDownItems.Add(nitem); nitem.Tag = plugin.Guid; nitem.Text = plugin.Caption; nitem.Click += new EventHandler(pluginMenuItem_Click); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } }
/// <summary> /// Sets up the plugins UI actions and controls. /// </summary> /// <param name="anobject"></param> /// <param name="plugin"></param> private void pluginManager_OnPluginLoad(object anobject, IConvendroPlugin plugin) { // set the host.. plugin.Host = this; // prepare the plugin this.setupPluginMainMenu(plugin); this.setupPluginToolBar(plugin); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pluginMenuItem_Click(object sender, EventArgs e) { if (sender is ToolStripMenuItem) { if ((sender as ToolStripMenuItem).Tag != null) { IConvendroPlugin plugin = this.pluginManager.FindPlugin( (Guid)(sender as ToolStripMenuItem).Tag); if (plugin != null) { plugin.Execute(); } } } }
/// <summary> /// /// </summary> /// <param name="guid"></param> /// <returns></returns> public IConvendroPlugin FindPlugin(Guid guid) { // I'm going to so regret doing this this way: // Should have made and used a strongly typed list, in // case I want to serialize this... IConvendroPlugin currentplugin = null; foreach (IConvendroPlugin ip in this.plugins) { if (ip.Guid.Equals(guid)) { currentplugin = ip; break; } } return(currentplugin); }
/// <summary> /// /// </summary> /// <param name="plugin"></param> private void setupPluginToolBar(IConvendroPlugin plugin) { Bitmap defaultimage = plugin.MenuBitmap; if (plugin.MenuBitmap == null) { defaultimage = Properties.Resources.plugin; } ToolStripButton tsbutton = new ToolStripButton(defaultimage); try { if (pluginsToolStrip.Items.Count == 1) { pluginsToolStrip.Items.Add(new ToolStripSeparator()); } pluginsToolStrip.Items.Add(tsbutton); tsbutton.Tag = plugin.Guid; tsbutton.ToolTipText = plugin.Caption; tsbutton.Click += new EventHandler(pluginToolButtonItem_Click); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } }
/// <summary> /// /// </summary> /// <param name="plugin"></param> private void setupPluginMainMenu(IConvendroPlugin plugin) { // use default bitmap where possible. Bitmap defaultimage = plugin.MenuBitmap; if (plugin.MenuBitmap == null) { defaultimage = Properties.Resources.plugin; } ToolStripMenuItem nitem = new ToolStripMenuItem(plugin.Description, plugin.MenuBitmap); try { if (toolsPluginsToolStripMenuItem.DropDownItems.Count == 1) { toolsPluginsToolStripMenuItem.DropDownItems.Add(new ToolStripSeparator()); } nitem.Tag = plugin.Guid; nitem.Text = plugin.Caption; // do some silly conversion... nitem.ShortcutKeys = (Keys) (plugin as BaseConvendroPlugin).ShortcutKeys; toolsPluginsToolStripMenuItem.DropDownItems.Add(nitem); nitem.Click += new EventHandler(pluginMenuItem_Click); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } }