SIZEPOLICY attribute
The SIZEPOLICY attribute is a sizing directive based on the content of a
form item.
Syntax
SIZEPOLICY = { INITIAL | FIXED | DYNAMIC }
Usage
The SIZEPOLICY attribute defines how front-ends compute the size of
some form elements, based on the content of the form field or form item.
The SIZEPOLICY applies only to leaf elements of the layout. It does
not apply to containers. It applies to form elements whose content can be resized, typically
IMAGE, COMBOBOX, WEBCOMPONENT. Elements allowing
user input such as EDIT, or elements where the size does not depend on the value of
content such as PROGRESSBAR, SLIDER do not use this attribute.
SIZEPOLICY attribute is ignored for columns used in
TABLE or TREE containers. In list views, the size policy is
implicitly defined by the cell (this means the size of the column in the form layout). The
SIZEPOLICY attribute is also implicitly fixed for fields inside
SCROLLGRID and GRID containers that are controlled by a list
dialog, such as a DISPLAY ARRAY. With a list dialog, each row can have a different
value, which would imply a different widget size for each row; this is not supported.When the SIZEPOLICY is not specified, the default behavior depends
on the type of form item. See Table 1.
SIZEPOLICY = FIXED
When SIZEPOLICY is FIXED, the form element's size is exactly
the size defined in the layout of the form specification file.
The size of the element is computed from the width and height in the form grid and the font used on the front-end side.
The element keeps the size, even if the content is modified. However, if the
STRETCH attribute is set to X, Y
or BOTH, the form element can still stretch when the parent window
size changes.
SIZEPOLICY=FIXED and its right hand border does not pass over the screen border,
GMA will extend its width to reach the border. The last element with a fixed size policy may only
grow. It does not shrink to a smaller width than the width defined in the form.SIZEPOLICY = DYNAMIC
When SIZEPOLICY is DYNAMIC, the size of the element grows
and shrinks depending on the width of the content, during the lifetime of the
application.
This can be used for COMBOBOX or RADIOGROUP fields, when the
size of the widget must fit exactly to its content, which can vary during the program
execution.
SIZEPOLICY=DYNAMIC, some element such as
BUTTON, LABEL, IMAGE and
RADIOGROUP can shrink and grow all the time, while
COMBOBOX elements can only grow.SIZEPOLICY=DYNAMIC is ignored for WEBCOMPONENT
fields.SIZEPOLICY = INITIAL
When SIZEPOLICY is INITIAL, the size is computed from the
initial content, the first time the element appears on the screen. Once the widget
displays, its size is frozen. However, if the STRETCH attribute is
set to X, Y or BOTH, the form
element can still stretch when the parent window size changes.
SIZEPOLICY=INITIAL is typically used when the size of the element must be fixed,
but is not known at design time. For example, when populating a COMBOBOX item list
from a database table, the size of the COMBOBOX depends on the size of the labels
in the drop-down list. This size policy mode is also useful when the text of labels is unknown at
design time because of internationalization.
With SIZEPOLICY=INITIAL, the behavior differs depending on the form element
type.
SIZEPOLICY=INITIAL is ignored for WEBCOMPONENT
fields.| Form item | Behavior with SIZEPOLICY=INITIAL |
|---|---|
BUTTON |
The size defined in the form is a minimum size. If the initial button text is bigger, the size grows (width and height). |
COMBOBOX |
The width defined in the form is a minimum width. If one of the combobox items in the value list is bigger, the size grows in order for the combobox to fully display the largest item. Then the combobox size remains fixed for the life time of the form. |
LABEL, CHECKBOX, RADIOGROUP |
These form items adapt to the initial element text(s), then they keep the same size. The size defined in the form is ignored. |
IMAGE |
Image form items adapt their size to the initial image displayed and keep that
size. If no initial image is displayed (i.e. the image field value is NULL), the
form item does not take space in the layout (and also does not adapt the size if an image is
displayed later on). Images can use the STRETCH attribute, so that the widget size
is dependent on the parent container, overriding the SIZEPOLICY attribute. If the
WIDTH and HEIGHT attributes must be used, the
SIZEPOLICY attribute must be set to FIXED. |
WEBCOMPONENT |
N/A: SIZEPOLICY=INITIAL is ignored for
WEBCOMPONENT fields. |
Example
COMBOBOX f001 = customer.city,
ITEMS=((1,"Paris"),(2,"Madrid"), (3,"London")),
SIZEPOLICY=DYNAMIC;
WEBCOMPONENT wc1 = FORMONLY.chart,
COMPONENTTYPE="chart",
SIZEPOLICY=FIXED,
STRETCH=BOTH;