limj
2023-10-24 93652435728de839582440eefd5122c281181d35
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
Quintiq file version 2.0
#parent: CustomDrawComponentContainer/Minimap
Response OnDrawLegend () id:Response_CustomDrawComponentContainer_Minimap_OnDrawLegend
{
  #keys: '[139164.4.307828177]'
  Body:
  [*
    if( not isnull( DataHolderRun.Data() ) )
    {
      max_x := max( DataHolderRun.Data(), Component.UIGraphNode, node, node.X() + node.Width() / 2 );
      max_y := max( DataHolderRun.Data(), Component.UIGraphNode, node, node.Y() + node.Height() / 2 );
      
      offset := 5;
      width := region.Width() - offset * 2;
      height := region.Height() - offset * 2;
      
      scale := minvalue( width / max_x, height / max_y );
      
      offset_x := ( width - max_x * scale ) / 2 + offset;
      offset_y := ( height - max_y * scale ) / 2 + offset;
      
      surface.Pen().Color( Color::Color( Color::Black(), 0.5 ) );
      traverse( DataHolderRun.Data(), Component, component )
      {
        color := Form.GetColor( component );
        
        node := component.UIGraphNode();
        surface.Brush().Color( Color::Color( color, 0.5 ) );
        surface.Draw( Rect::Construct( [Number] ( ( node.X() - node.Width() / 2 ) * scale + offset_x ),
                                       [Number] ( ( node.Y() - node.Height() / 2 ) * scale + offset_y ),
                                       [Number] ( node.Width() * scale ),
                                       [Number] ( node.Height() * scale ) ) );
      }
    }
  *]
  CanBindMultiple: false
  DefinitionID: 'Responsedef_CustomDrawLegendLayer_OnDrawLegend'
}