Quintiq file version 2.0 #parent: CustomDrawRC/CustomDrawDataLayerOperationLinkEdge Response OnDrawObject ( OperationLinkEdge object ) id:Response_CustomDrawRC_CustomDrawDataLayerOperationLinkEdge_OnDrawObject { #keys: '[139394.0.1292640671]' CanBindMultiple: false DefinitionID: 'Responsedef_WebCustomDrawDataLayer_OnDrawObject' QuillAction { Body: [* // Draw operation link edge rcv := MacroPlan.RoutingConfiguratorView(); // Adjust line based on its orientations topdown := object.FromY() < object.ToY(); leftright := object.FromX() < object.ToX(); padding := 6; fromx := region.BoundingRect().Left() + padding; tox := region.BoundingRect().Width() - padding; if( topdown ) { if( not leftright ) { fromx := region.BoundingRect().Width() - padding; tox := region.BoundingRect().Left() + padding; } } else { if( leftright ) { fromx := region.BoundingRect().Width() - padding; tox := region.BoundingRect().Left() + padding; } } surface.Brush().Reset(); // strange. without this line, the arrow head will not be filled. surface.Pen().Color( ColorScheme.RoutingConfigurator_RoutingArrow() ); surface.Brush().Color( ColorScheme.RoutingConfigurator_RoutingArrow() ); // to paint the solid arrowhead surface.Pen().Style( PenSpecification::StyleDotted() ); surface.Pen().Width( rcv.EdgeThickness() ); // Draw the directional line line := GraphicalLine::LineTo( fromx, region.BoundingRect().Top(), tox, region.BoundingRect().Height() ); line.ArrowToEnd( topdown ).ArrowPos( GraphicalLine::ArrowPosMiddle() ); surface.Draw( line ); *] GroupServerCalls: false } }