private void UpdateTransparency(Point point) { for (int i = 0; i < this.actions.Count; i++) { float num2 = 0f; if (!point.IsEmpty) { Rectangle actionBounds = this.GetActionBounds(i); if (actionBounds.Contains(point) || (this.draggedActionIndex == i)) { num2 = 1f; } else { Rectangle viewPortRectangle = base.ParentView.ViewPortRectangle; double num3 = DesignerGeometryHelper.DistanceFromPointToRectangle(point, actionBounds); if ((num3 > (viewPortRectangle.Width / 3)) || (num3 > (viewPortRectangle.Height / 3))) { num2 = 0.3f; } else { num2 = 1f; } } } this.actions[i].Transparency = num2; } }
private void UpdateTransparency(Point point) { for (int i = 0; i < this.actions.Count; i++) { float transparency = 0; if (!point.IsEmpty) { Rectangle actionBounds = GetActionBounds(i); if (actionBounds.Contains(point) || this.draggedActionIndex == i) { transparency = 1.0f; } else { Rectangle rectangle = ParentView.ViewPortRectangle; double distance = DesignerGeometryHelper.DistanceFromPointToRectangle(point, actionBounds); if (distance > rectangle.Width / 3 || distance > rectangle.Height / 3) { transparency = 0.3f; } else { //Uncomment the following code for fluctuating transparency //1.0f - ((float)Convert.ToInt32(distance)) / Math.Max(ParentView.ViewPortSize.Width, ParentView.ViewPortSize.Height); transparency = 1.0f; } } } this.actions[i].Transparency = transparency; } }
private static ConnectionPoint[] GetSnappableConnectionPoints(Point currentPoint, ConnectionPoint sourceConnectionPoint, ConnectionPoint activeConnectionPoint, ActivityDesigner activityDesigner, out ConnectionPoint snappedConnectionPoint) { snappedConnectionPoint = null; List <ConnectionPoint> list = new List <ConnectionPoint>(); FreeformActivityDesigner connectorContainer = GetConnectorContainer(activeConnectionPoint.AssociatedDesigner); if (connectorContainer != null) { FreeformActivityDesigner designer2 = activityDesigner as FreeformActivityDesigner; List <ActivityDesigner> list2 = new List <ActivityDesigner> { activityDesigner }; if (designer2 != null) { list2.AddRange(designer2.ContainedDesigners); } double num = 20.0; foreach (ActivityDesigner designer3 in list2) { if (GetConnectorContainer(designer3) == connectorContainer) { bool flag = false; List <ConnectionPoint> collection = new List <ConnectionPoint>(); foreach (ConnectionPoint point in designer3.GetConnectionPoints(DesignerEdges.All)) { if (!point.Equals(activeConnectionPoint) && connectorContainer.CanConnectContainedDesigners(sourceConnectionPoint, point)) { collection.Add(point); double num2 = DesignerGeometryHelper.DistanceFromPointToRectangle(currentPoint, point.Bounds); if (num2 <= 20.0) { flag = true; if (num2 < num) { snappedConnectionPoint = point; num = num2; } } } } if (flag) { list.AddRange(collection); } } } if (snappedConnectionPoint != null) { foreach (ConnectionPoint point2 in snappedConnectionPoint.AssociatedDesigner.GetConnectionPoints(DesignerEdges.All)) { if (!list.Contains(point2)) { list.Add(point2); } } } } return(list.ToArray()); }
private static ConnectionPoint[] GetSnappableConnectionPoints(Point currentPoint, ConnectionPoint sourceConnectionPoint, ConnectionPoint activeConnectionPoint, ActivityDesigner activityDesigner, out ConnectionPoint snappedConnectionPoint) { //If the activity designer is composite activity designer then we will go through its children else we will go through its connection points snappedConnectionPoint = null; List <ConnectionPoint> snappableConnectionPoints = new List <ConnectionPoint>(); FreeformActivityDesigner connectorContainer = ConnectionManager.GetConnectorContainer(activeConnectionPoint.AssociatedDesigner); if (connectorContainer != null) { FreeformActivityDesigner freeFormDesigner = activityDesigner as FreeformActivityDesigner; List <ActivityDesigner> designersToCheck = new List <ActivityDesigner>(); designersToCheck.Add(activityDesigner); if (freeFormDesigner != null) { designersToCheck.AddRange(freeFormDesigner.ContainedDesigners); } double minimumDistance = ConnectionManager.SnapHighlightDistance; foreach (ActivityDesigner designer in designersToCheck) { if (ConnectionManager.GetConnectorContainer(designer) == connectorContainer) { bool addValidSnapPoints = false; List <ConnectionPoint> validSnapPoints = new List <ConnectionPoint>(); ReadOnlyCollection <ConnectionPoint> snapPoints = designer.GetConnectionPoints(DesignerEdges.All); foreach (ConnectionPoint snapPoint in snapPoints) { if (!snapPoint.Equals(activeConnectionPoint) && connectorContainer.CanConnectContainedDesigners(sourceConnectionPoint, snapPoint)) { validSnapPoints.Add(snapPoint); double distanceToDesigner = DesignerGeometryHelper.DistanceFromPointToRectangle(currentPoint, snapPoint.Bounds); if (distanceToDesigner <= ConnectionManager.SnapHighlightDistance) { addValidSnapPoints = true; if (distanceToDesigner < minimumDistance) { snappedConnectionPoint = snapPoint; minimumDistance = distanceToDesigner; } } } } if (addValidSnapPoints) { snappableConnectionPoints.AddRange(validSnapPoints); } } } if (snappedConnectionPoint != null) { foreach (ConnectionPoint connectionPoint in snappedConnectionPoint.AssociatedDesigner.GetConnectionPoints(DesignerEdges.All)) { if (!snappableConnectionPoints.Contains(connectionPoint)) { snappableConnectionPoints.Add(connectionPoint); } } } } return(snappableConnectionPoints.ToArray()); }