private void MenuItem_plugins_Click(object sender, RoutedEventArgs e) { MenuItem mi = (MenuItem)sender; IDspPlugin1 idsp = (IDspPlugin1)mi.DataContext; WindowMain.ExecPluginRoutedCommand.Execute(new ExecPluginCommandParameter(idsp, this.pluginContextMenuSelectedRsList, this.pluginContextMenuTimeCursor, null), null); }
public ExecPluginCommandParameter(IDspPlugin1 plugin, ObservableCollection <RenderSlice> stack, double time_cursor, string parameter) { this.Plugin = plugin; this.Stack = stack; ////this.selectedsignals = selectedsignals; this.TimeCursor = time_cursor; this.Parameter = parameter; }
private IEnumerable <XElement> ExecutePlugin(IDspPlugin1 p, IEnumerable <XElement> selectedsignals, double time_cursor, string parameter) { IEnumerable <XElement> retsigs = null; foreach (XElement xe in selectedsignals) { RendererManager.CloseRenderer(xe); } try { string path = Environment.CurrentDirectory + "\\" + "unisens.xml"; retsigs = p.Main(UnisensXmlFileManager.CurrentUnisensInstance.Xdocument, selectedsignals, path, time_cursor, signalviewercontrol.SelectionStart, signalviewercontrol.SelectionEnd, parameter); } catch (Exception ex) { retsigs = null; MessageBox.Show("Exception im Plugin: " + ex.Message); } foreach (XElement xe in selectedsignals) { try { RendererManager.ReOpenRenderer(xe); } catch { RendererManager.KillRenderer(xe); } } if (retsigs != null) { foreach (XElement xe in retsigs) { if (StackerControl.IsSignalEventValueEntry(xe)) { signalviewercontrol.stackercontrol.DropSignalEventValueEntry(xe, null); } } } signalviewercontrol.Deselect(); if (RendererManager.TimeMax < RendererManager.Time) { RendererManager.Scroll(0.0); } else { RendererManager.Render(); } // Save Unisens file after Plugin execution Executed_Save(null, null); return(retsigs); }
private void Pluginmenu_MenuItem_Click(object sender, MouseButtonEventArgs e) { RibbonMenuButton mi = (RibbonMenuButton)sender; IDspPlugin1 p = (IDspPlugin1)mi.DataContext; IEnumerable <XElement> retsigs = this.ExecutePluginWithDialog(p, 0.0, null); // xxx neuen stapel erzeugen und da retsigs reinschmeissen }
private void AddBinding(XElement binding, IEnumerable <IDspPlugin1> plugins) { IDspPlugin1 plugin = this.ParsePlugin(binding, plugins); ModifierKeys modifiers = this.ParseModifiers(binding); Key key = this.ParseKey(binding); PluginHotkeyBinding.SelectedSignals signals = this.ParseSelectedSignals(binding); XAttribute p = binding.Attribute("Parameter"); string parameter = p != null ? p.Value : null; if (plugin != null && key != 0) { this.Bindings.Add(new HotkeyHashkey(key, modifiers), new PluginHotkeyBinding(plugin, signals, parameter)); } }
private IEnumerable <XElement> ExecutePluginWithDialog(IDspPlugin1 p, double time_cursor, string parameter) { IEnumerable <XElement> retsigs = null; DialogPlugin dlgplugin = new DialogPlugin(); dlgplugin.Owner = this; dlgplugin.DspPlugin = p; dlgplugin.UnisensXml = UnisensXmlFileManager.CurrentUnisensInstance.Xdocument; // xxx parameter in dialog editierbar machen if (dlgplugin.ShowDialog() == true) { retsigs = this.ExecutePlugin(p, dlgplugin.SelectedSignals, time_cursor, parameter); } return(retsigs); }
public PluginHotkeyBinding(IDspPlugin1 plugin, SelectedSignals signals, string parm) { this.Plugin = plugin; this.Signals = signals; this.Parameter = parm; }