Product
Support
Everything Else
Dragging Rectangles on a Template in Helix 7.0
Introduction

Helix 7.0 restores support for the ‘Align to grid’ property when dragging rectangles on a template using a mouse or other pointing device.

This technote describes this feature and notes the differences between this implementation and that of Classic Helix RADE.

Dragging and Resizing with ‘Align to grid’

The dragging algorithm used when moving or resizing rectangles via mouse has been re-implemented and Improved. These rules apply when the ‘Align to grid’ property is on, or when ‘Align to grid’ is off but the user holds the Option key down when releasing the mouse button.

  • A moving drag any direction always aligns to the grid in a way that makes the left/top edge align to the next grid line in that direction.
  • A resizing drag that makes a rectangle larger always aligns to the grid in a way that makes the rectangle larger than the point at which the mouse was released. (When in doubt, stop short of the target.)
  • A resizing drag that makes a rectangle smaller always aligns to the grid in a way that makes the rectangle smaller than the point at which the mouse was released.
  • A ‘slight’ drag done in a particular direction, aligns to the next grid line in the dragged direction. (aka: Flick-dragging)
  • Inverting a rectangle (e.g. dragging the top below the bottom) is interpreted as a move.
  • A resizing drag that goes beyond the top/left edge of the template is ignored.
  • A moving drag that goes beyond the top/left edge of the template moves the top/left edge of the rectangle to the ‘zero point’ of that axis. (Although there is no real point in it, it is possible to move a rectangle beyond the top/left edge by turning ‘Align to grid’ off. This is consistent with keyboard movement.
  • Multiple rectangles can be moved/resized at once; each rectangle will apply the rules outlined above according to its own original position/size. (Hint: dragging multiple rectangles off the left edge of the template aligns the left edge of every dragged rectangle to the zero point.)
  • Dragging from the corner of a rectangle to resize both dimensions in a single drag is supported.