/// <summary>
        /// Alerts the feedback mechanisms on relabeling or regrouping
        /// </summary>
        /// <param name="shapes">The shapes which were most recently changed</param>
        public void AlertFeedback(CircuitParser.CircuitParser circuit, IEnumerable <Sketch.Shape> shapes)
        {
            if (circuit != null)
            {
                lastErrors = circuit.ParseErrors;
            }
            else
            {
                lastErrors = null;
            }

            if (StrokeColoring)
            {
                ColorStrokesByType();
            }
            if (EndpointHighlighting)
            {
                circuitEndpointFeedback.Clear();
            }
            if (GatesOnLabel)
            {
                DrawFeedback(shapes);
            }
            if (ErrorHighlighting && circuit != null)
            {
                AddErrorHighlights(circuit.ParseErrors);
            }
            if (labelsOn)
            {
                unsubscribeTooltips();
                subscribeTooltips();
            }
        }
예제 #2
0
        /// <summary>
        /// Alerts the feedback mechanisms on relabeling or regrouping
        /// </summary>
        /// <param name="shapes">The shapes which were most recently changed</param>
        public void AlertFeedback(CircuitParser.CircuitParser circuit, IEnumerable <Sketch.Shape> shapes)
        {
            Pause();
            ghostGateFeedback.Validate();

            if (circuit != null)
            {
                lastErrors = new List <ParseError>(circuit.ParseErrors);
            }
            else
            {
                lastErrors = null;
            }

            ColorStrokesByType();

            if (EndpointHighlighting)
            {
                circuitEndpointFeedback.Clear();
            }

            if (GatesOnLabel)
            {
                DrawFeedback(shapes);
            }

            if (ErrorHighlighting && lastErrors != null)
            {
                AddErrorHighlights(lastErrors);
            }
            else
            {
                RemoveErrorHighlights();
            }

            if (labelsOn)
            {
                unsubscribeTooltips();
                subscribeTooltips();
            }

            Unpause();
        }