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); } }
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); }
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); }
public override void UpdateMouseUp(RenderingEngine e, ComponentBase parent, InputOutputBase previous) { if (this.IsMouseOver) { OnClickTrigger(new TriggerEventArgs(this, GetOutputData(0))); } base.UpdateMouseUp(e, parent, previous); }
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)); }
public override void UpdateMouseUp(RenderingEngine e, ComponentBase parent, InputOutputBase previous) { if (IsMouseOver && IsSelected) { _active = !_active; } base.UpdateMouseUp(e, parent, previous); }
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); } }
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); }
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; } }
// -------------------------------------------------------------------------------- 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); } }
public InputOutputSelector(SwitchBase origin, InputOutputBase inputOutput) { Origin = origin; InputOutput = inputOutput; }
public bool IsConnected(SwitchBase sw, InputOutputBase io) { return(InputLookup.ContainsKey(sw.Id) && InputLookup[sw.Id].Contains(io.Index)); }