yanweiyuan3
2023-08-09 98db93a55d7079e89c706c18b15eeaecd0ec539a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Quintiq file version 2.0
#parent: CustomDrawRC/CustomDrawDataLayerOperationInputEdge
Response OnDrawObject (
  PISPOperationInputEdge object
) id:Response_CustomDrawRC_CustomDrawDataLayerOperationInputEdge_OnDrawObject
{
  #keys: '[139394.0.1302355392]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCustomDrawDataLayer_OnDrawObject'
  QuillAction
  {
    Body:
    [*
      // Draw PISP Operation Input Edge
      rcv := MacroPlan.RoutingConfiguratorView();
      
      // Adjust line based on its orientations
      topdown := object.FromY() < object.ToY();
      leftright := object.FromX() < object.ToX();
      padding := 6;
      
      fromy := region.BoundingRect().Top() + padding;
      toy := region.BoundingRect().Height() - padding;
      
      if( topdown )
      {
        if( not leftright )
        {
          fromy := region.BoundingRect().Top() + padding;
          toy := region.BoundingRect().Height() - padding;
        }
      }
      else
      {
        if( leftright )
        {
          fromy := region.BoundingRect().Height() - padding;
          toy := region.BoundingRect().Top() + 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::StyleSolid() );
      surface.Pen().Width( rcv.EdgeThickness() );
      
      // Draw the directional line
      line := GraphicalLine::LineTo( region.BoundingRect().Left(), fromy, region.BoundingRect().Width(), toy );
      line.ArrowToEnd( true ).ArrowPos( GraphicalLine::ArrowPosMiddle() );  
      surface.Draw( line );
    *]
    GroupServerCalls: false
  }
}