private void Move(HighlightCanvasHighlight hl, double x, double y) { if (this._Viewport != null) this.RememberAndMoveAbsolute(hl, x, y); else this.MoveRelative(hl, x, y); }
private void MoveHighlightToPoint(HighlightCanvasHighlight hl, Point p) { this.DispatchConditional(() => this.MoveHighlight(hl, p.X, p.Y), this.AlreadyActivated(hl)); }
private void MoveHighlight(HighlightCanvasHighlight hl, double x, double y) { this.MoveHighlightOnCanvas(hl, x, y); }
private void HighlightAlreadyActivated(HighlightCanvasHighlight hl, Action<bool> activated) { this.Dispatch(() => activated(base.Children.Contains(hl.AsUi))); }
private void DeactivateHightlight(HighlightCanvasHighlight hl) { this.DispatchConditional(() => this.RemoveHightlightFromCanvas(hl), this.AlreadyActivated(hl)); }
private void AddHighlightToCanvasAndCenterIt(HighlightCanvasHighlight hl) { this.MoveHighlight(hl, this.CurrentCenter.X, this.CurrentCenter.Y); base.Children.Add(hl.AsUi); }
private void ActivateHightlight(HighlightCanvasHighlight hl) { this.DispatchConditionalNot(() => this.AddHighlightToCanvasAndCenterIt(hl), this.AlreadyActivated(hl)); }
protected abstract void MoveHighlightOnCanvas(HighlightCanvasHighlight hl, double x, double y);
protected void ForceActivision(HighlightCanvasHighlight hl) { hl.ForceActivision(this.ActivateHightlight, this.GetPrimaryHighlight); }
protected Action<Action<bool>> AlreadyActivated(HighlightCanvasHighlight hl) { return (a) => this.HighlightAlreadyActivated(hl, (b) => a(b)); }
private HighlightCanvasHighlight StartTrackingForHighlight(HighlightCanvasHighlight hl, MoveableBodyPart bodyPart) { hl.StartTracking(bodyPart).WhenMoved((center) => this.MoveHighlightToPoint(hl, center(this.CurrentCenter))); hl.WhenActivated(this.ActivateHightlight).RelativeTo(this.GetPrimaryHighlight); hl.WhenDeactivated(this.DeactivateHightlight); return hl; }
private void RemoveHightlightFromCanvas(HighlightCanvasHighlight hl) { base.Children.Remove(hl.AsUi); }
private void SetProjectedPositionBeforeViewport(HighlightCanvasHighlight hl, double x, double y) { hl.BodyPart.CurrentProjectedPosition = MVector2D.Projection(x, y); }
private void RememberAndMoveAbsolute(HighlightCanvasHighlight hl, double x, double y) { this._Viewport.Shelve.Remember<HighlightCanvasHighlight>(hl); this._Viewport.AbsoluteCoordinates(x, y); }
private void MoveRelative(HighlightCanvasHighlight moveable, double x, double y) { this.SetXY(moveable.AsUi, x, y); moveable.MovedTo(x, y); }
protected override void MoveHighlightOnCanvas(HighlightCanvasHighlight hl, double x, double y) { this.SetProjectedPositionBeforeViewport(hl, x, y); this.Move(hl, x, y); }