For the resize manager, a control's LAYOUT-DATA property may be a combination of any of the following values. To combine values, simply add them together. The names of the values come from the lmresize.def file.
RLM-RESIZE-X (value 1) | This causes the control to be resized horizontally by an amount equal to the width of the current window width minus its design width. This causes the control to grow and shrink horizontally as the window changes width. This is frequently useful if you have a control such as a grid or a multi-line entry field in the middle of the window whose area you want to increase as the user grows the window |
RLM-MOVE-X (value 2) | This causes the control to reposition itself horizontally by an amount equal to the difference of the current window width and its design width. This is useful when you have a control that you want to keep near the right edge of the window |
RLM-NO-MIN-X (value 4) | Without this, the resize manager will not reposition or resize a control horizontally to be less than its design values. This prevents the control from disappearing or colliding with other controls if the user makes the window too small. Instead, the control will extend off the edge of the window if the window is too small. Specifying this value relaxes this rule and the control is allowed to become smaller than its design size or move to the left of its design position. When you use this, you may want to use the MIN-SIZE window property to limit how narrow the user can make the window |
RLM-RESIZE-Y (value 16) | Similar to RLM-RESIZE-X, but it affects the vertical size of the control. Only those controls whose height is specified in CELLS or PIXELS are affected. Use this when you want to add more lines to a control such as a grid or list box when the user grows the window. This setting has undefined effects when used for a control whose height does not use CELLS or PIXELS. This may become defined in a future version, so you should avoid specifying this for controls that do not use CELLS or PIXELS |
RLM-MOVE-Y (value 32) | Similar to RLM-MOVE-X, except it affects the vertical position of the control. This is useful when you want a control to stay near the bottom edge of the window |
RLM-NO-MIN-Y (value 64) | Same as RLM-NO-MIN-X, except that it affects the vertical aspect of the control instead of the horizontal aspect |
The following are also found in lmresize.def. These are not unique values, but useful combinations of the preceding values.
RLM-RESIZE-X-ANY | Combines RLM-RESIZE-X and RLM-NO-MIN-X. This combination allows for arbitrary resizing of the control horizontally |
RLM-MOVE-X-ANY | Combines RLM-MOVE-X and RLM-NO-MIN-X. This combination allows for arbitrary repositioning of the control horizontally |
RLM-RESIZE-Y-ANY | Combines RLM-RESIZE-Y and RLM-NO-MIN-Y. This combination allows for arbitrary resizing of the control vertically |
RLM-MOVE-Y-ANY | Combines RLM-MOVE-Y and RLM-NO-MIN-Y. This combination allows for arbitrary repositioning of the control vertically |
RLM-RESIZE-BOTH | Combines RLM-RESIZE-X and RLM-RESIZE-Y. This combination allows for the control to resize itself in both dimensions as the window is resized |
RLM-RESIZE-BOTH-ANY | Combines RLM-RESIZE-X-ANY and RLM-RESIZE-Y-ANY. This combination allows the control to resize itself in both dimensions and without a minimum size |
RLM-MOVE-BOTH | Combines RLM-MOVE-X and RLM-MOVE-Y. This combination keeps a control near the lower right corner of the window |
RLM-MOVE-BOTH-ANY | Combines RLM-MOVE-X-ANY and RLM-MOVE-Y-ANY. This combination keeps a control near the lower right corner of the window, with no minimum position |
There are other useful combinations, but these are the most common ones.