| Quintiq file version 2.0 | 
| #parent: CustomDrawRC/CustomDrawDataLayerRC | 
| Response OnDrawObject ( | 
|   Routing object | 
| ) id:Response_CustomDrawRC_CustomDrawDataLayerRC_OnDrawObject | 
| { | 
|   #keys: '[139394.0.1275597002]' | 
|   CanBindMultiple: false | 
|   DefinitionID: 'Responsedef_WebCustomDrawDataLayer_OnDrawObject' | 
|   Precondition: | 
|   [* | 
|     /* Comment precon out because we won't be drawing grid for web | 
|     return guard( MacroPlan.RoutingConfiguratorView().IsGridVisible(), false ) | 
|            and guard( MacroPlan.RoutingConfiguratorView().GridPointDistance() > 0, false ); //prevent infinite loop | 
|     */ | 
|   *] | 
|   QuillAction | 
|   { | 
|     Body: | 
|     [* | 
|       // Draw background image | 
|       rcv := MacroPlan.RoutingConfiguratorView(); | 
|        | 
|        | 
|       /* Comment this part out because we don't want grid in the background | 
|       surface.Pen().Color( Colors.Grid() ); | 
|        | 
|       width := rcv.GridWidth(); | 
|       height := rcv.GridHeight(); | 
|       grid := rcv.GridPointDistance(); | 
|        | 
|       for ( x := 0; x < width; x := x + grid ) | 
|       { | 
|         surface.Line( x, 0, x, height ); | 
|       } | 
|        | 
|       for ( y := 0; y < height; y := y + grid ) | 
|       { | 
|         surface.Line( 0, y, width, y ); | 
|       } | 
|       */ | 
|        | 
|       //draw operation drop here! | 
|       if( not object.HasStep() ) | 
|       { | 
|         surface.Font().Size( rcv.FontSize() ); | 
|         surface.Font().Name(  rcv.FontName() ); | 
|         surface.TextColor( ColorScheme.RoutingConfigurator_DropHereHelp() ); | 
|          | 
|         surface.Pen().Style( PenSpecification::StyleDashed() ); | 
|         surface.Pen().Color( ColorScheme.RoutingConfigurator_DropHereHelp() );   | 
|         surface.Pen().Width( rcv.EdgeThickness() ) | 
|            | 
|         // xy positions of the step | 
|         stepX := rcv.OffsetX() | 
|                + rcv.PISPWidth() + rcv.GridPointDistance() * 2; | 
|        | 
|         stepY := rcv.OffsetY(); | 
|        | 
|         stepW := maxvalue( rcv.OperationWidth(), rcv.RoutingStepMinimumWidth() ); | 
|        | 
|         value := ( 2 * rcv.OperationInputOutputHeight() ) | 
|                  + rcv.OperationHeight() | 
|                  + 2 * rcv.OperationOffsetY(); | 
|        | 
|         stepH := maxvalue( value, rcv.RoutingStepMinimumHeight() ); | 
|        | 
|         rect := Shape::Rect( stepX , stepY, stepW, stepH ); | 
|         surface.Draw( rect ); | 
|          | 
|         textformat := TextFormat::Construct( TextFormat::AlignCentered(), TextFormat::WrapWords() ); | 
|         surface.TextZoom( stepX , stepY, stepW, stepH, Translations::MP_Routing_DropHereUnit(), textformat ); | 
|       } | 
|     *] | 
|     GroupServerCalls: false | 
|   } | 
| } |