Esempio n. 1
0
        public override void UpdateMouseMove(RenderingEngine e, DrawableBase parent, DrawableBase previous)
        {
            //Console.WriteLine("IsSelected: {0} LeftDown:{1}", IsSelected, e.MouseService.LeftMouseDown);

            if (e.SelectionService.Input == null && e.SelectionService.Output == null)
            {
                if (IsSelected && e.MouseService.LeftMouseDown)
                {
                    Move(e, parent, previous, false);
                }
            }

            InputOutputBase lastIo = null;

            foreach (var input in Inputs)
            {
                input.UpdateMouseMove(e, this, lastIo);
                lastIo = input;
            }

            if (HasVariableInputs)
            {
                _addInputPin.UpdateMouseMove(e, this, lastIo);
            }

            if (HasVariableOutputs)
            {
                _addOutputPin.UpdateMouseMove(e, this, HasVariableInputs ? (DrawableBase)_addInputPin : lastIo);
            }
        }
Esempio n. 2
0
        private InputOutputSelector SetSelector(SwitchBase sw, InputOutputBase sourceIO)
        {
            var selector = new InputOutputSelector(sw, sourceIO);

            if (Input?.InputOutput is InputBase && sourceIO is OutputBase)
            {
                Output = selector;
            }

            if (Input?.InputOutput is OutputBase && sourceIO is InputBase)
            {
                Output = selector;
            }

            if (Output?.InputOutput is InputBase && sourceIO is OutputBase)
            {
                Input = selector;
            }

            if (Output?.InputOutput is OutputBase && sourceIO is InputBase)
            {
                Input = selector;
            }

            return(selector);
        }
Esempio n. 3
0
        public override void UpdateMouseDown(RenderingEngine e, DrawableBase parent, DrawableBase previous)
        {
            UIComponent lastUiComponent = null;

            foreach (var uiComponent in Components)
            {
                uiComponent.UpdateMouseDown(e, this, lastUiComponent);
                lastUiComponent = uiComponent;
            }

            InputOutputBase lastIo = null;

            foreach (var input in Inputs)
            {
                input.UpdateMouseDown(e, this, lastIo);
                lastIo = input;
            }

            if (HasVariableInputs)
            {
                _addInputPin.UpdateMouseDown(e, this, lastIo);
            }
            if (HasVariableOutputs)
            {
                _addOutputPin.UpdateMouseDown(e, this, HasVariableInputs ? (DrawableBase)_addInputPin : lastIo);
            }

            base.UpdateMouseDown(e, parent, previous);
        }
Esempio n. 4
0
 public override void UpdateMouseUp(RenderingEngine e, ComponentBase parent, InputOutputBase previous)
 {
     if (this.IsMouseOver)
     {
         OnClickTrigger(new TriggerEventArgs(this, GetOutputData(0)));
     }
     base.UpdateMouseUp(e, parent, previous);
 }
Esempio n. 5
0
 public bool IsSignatureMatching(InputOutputBase io)
 {
     if (SelectedInputOutput == null)
     {
         return(false);
     }
     // This makes sure we are allways checking both types
     return(SelectedInputOutput.InputOutput.Signature.Matches(io.Signature) || io.Signature.Matches(SelectedInputOutput.InputOutput.Signature));
 }
Esempio n. 6
0
        public override void UpdateMouseUp(RenderingEngine e, ComponentBase parent, InputOutputBase previous)
        {
            if (IsMouseOver && IsSelected)
            {
                _active = !_active;
            }

            base.UpdateMouseUp(e, parent, previous);
        }
Esempio n. 7
0
        public void RemoveConnection(InputOutputBase io)
        {
            var outputs = Connections.Where(x => x.FromInputOutput.InputOutput == io).ToList();
            var inputs  = Connections.Where(x => x.ToInputOutput.InputOutput == io).ToList();

            foreach (var connection in outputs)
            {
                RemoveConnection(connection);
            }

            foreach (var connection in inputs)
            {
                RemoveConnection(connection);
            }
        }
Esempio n. 8
0
        public override void UpdateMouseUp(RenderingEngine e, DrawableBase parent, DrawableBase previous)
        {
            UIComponent lastUiComponent = null;

            foreach (var uiComponent in Components)
            {
                uiComponent.UpdateMouseUp(e, this, lastUiComponent);
                lastUiComponent = uiComponent;
            }

            InputOutputBase lastIo = null;

            foreach (var input in Inputs)
            {
                input.UpdateMouseUp(e, this, lastIo);
                lastIo = input;
            }

            lastIo = null;
            foreach (var output in Outputs)
            {
                output.UpdateMouseUp(e, this, lastIo);
                lastIo = output;
            }

            if (HasVariableInputs)
            {
                _addInputPin.UpdateMouseUp(e, this, lastIo);
            }

            if (HasActionOutput)
            {
                _addOutputPin.UpdateMouseUp(e, this, _addInputPin);
            }

            if (e.SelectionService.Input == null && e.SelectionService.Output == null && !e.SelectionService.StartSelectionRectangle)
            {
                if (IsSelected && e.MouseService.LeftMouseDown)
                {
                    Move(e, parent, previous, true);
                }
            }

            base.UpdateMouseUp(e, parent, previous);
        }
Esempio n. 9
0
        public virtual void DrawInputOutputs(Graphics g, RenderingEngine e, DrawableBase parent)
        {
            InputOutputBase lastInput = null;

            foreach (var input in Inputs)
            {
                input.Draw(g, e, this, lastInput);
                lastInput = input;
            }

            InputOutputBase lastOutput = null;

            foreach (var output in Outputs)
            {
                output.Draw(g, e, this, lastOutput);
                lastOutput = output;
            }
        }
Esempio n. 10
0
        // --------------------------------------------------------------------------------

        public override void Update(RenderingEngine e, DrawableBase parent, DrawableBase previous)
        {
            InputOutputBase lastInput = null;

            foreach (var input in Inputs)
            {
                input.Update(e, this, lastInput);
                input.UpdateMouseService(e);
                lastInput = input;
            }

            InputOutputBase lastOutput = null;

            foreach (var output in Outputs)
            {
                output.Update(e, this, lastOutput);
                output.UpdateMouseService(e);
                lastOutput = output;
            }

            UIComponent lastUiComponent = null;

            foreach (var uiComponent in Components)
            {
                uiComponent.Update(e, this, lastUiComponent);
                uiComponent.UpdateMouseService(e);
                lastUiComponent = uiComponent;
            }

            if (HasVariableInputs)
            {
                _addInputPin.Update(e, this, lastUiComponent);
                _addInputPin.UpdateMouseService(e);
            }

            if (HasVariableOutputs)
            {
                _addOutputPin.Update(e, this, lastUiComponent);
                _addOutputPin.UpdateMouseService(e);
            }
        }
Esempio n. 11
0
 public InputOutputSelector(SwitchBase origin, InputOutputBase inputOutput)
 {
     Origin      = origin;
     InputOutput = inputOutput;
 }
Esempio n. 12
0
 public bool IsConnected(SwitchBase sw, InputOutputBase io)
 {
     return(InputLookup.ContainsKey(sw.Id) && InputLookup[sw.Id].Contains(io.Index));
 }