Пример #1
0
        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);
        }
Пример #2
0
 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;
 }
Пример #3
0
        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);
        }
Пример #4
0
        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
        }
Пример #5
0
        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));
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
 public PluginHotkeyBinding(IDspPlugin1 plugin, SelectedSignals signals, string parm)
 {
     this.Plugin    = plugin;
     this.Signals   = signals;
     this.Parameter = parm;
 }