PtGroup
![]() |
![]() |
![]() |
![]() |
PtGroup
A container that can arrange its children in rows and columns
Class hierarchy:
PtWidget → PtBasic → PtContainer → PtGroup
For more information, see the diagram of the widget hierarchy.
PhAB icon:
None — use the Group button in PhAB's toolbar:

Public header:
<photon/PtGroup.h>
Description:
The PtGroup class inherits the functionality of a container and actively manages the geometry of its children: the children are arranged in rows, columns, or a matrix. You can use PtGroup to make the children mutually exclusive, so that the user can set only one child at a time.

A group of buttons.
PhAB has a Group command that creates a PtGroup widget. See “Aligning widgets using groups” in the Geometry Management chapter of the Programmer's Guide.
New resources:
| Resource | C type | Pt type | Default |
|---|---|---|---|
| Pt_ARG_CELL_HORZ_ALIGN | unsigned short | Scalar | Pt_GROUP_HORZ_LEFT |
| Pt_ARG_CELL_VERT_ALIGN | unsigned short | Scalar | Pt_GROUP_VERT_TOP |
| Pt_ARG_GROUP_FLAGS | unsigned long | Flag | 0 |
| Pt_ARG_GROUP_HORZ_ALIGN | unsigned short | Scalar | Pt_GROUP_HORZ_CENTER |
| Pt_ARG_GROUP_ORIENTATION | unsigned short | Scalar | Pt_GROUP_HORIZONTAL |
| Pt_ARG_GROUP_ROWS_COLS | unsigned short | Scalar | 0 |
| Pt_ARG_GROUP_SPACING | unsigned short | Scalar | 0 |
| Pt_ARG_GROUP_SPACING_X | unsigned short | Scalar | 0 |
| Pt_ARG_GROUP_SPACING_Y | unsigned short | Scalar | 0 |
| Pt_ARG_GROUP_VERT_ALIGN | unsigned short | Scalar | Pt_GROUP_VERT_CENTER |
Pt_ARG_CELL_HORZ_ALIGN
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | Pt_GROUP_HORZ_LEFT |
Determines how the children are aligned horizontally within the cells. Possible values:
- Pt_GROUP_HORZ_LEFT
- Pt_GROUP_HORZ_CENTER
- Pt_GROUP_HORZ_RIGHT
Pt_ARG_CELL_VERT_ALIGN
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | Pt_GROUP_VERT_TOP |
Determines how the children are aligned vertically within the cells. Possible values:
- Pt_GROUP_VERT_TOP
- Pt_GROUP_VERT_CENTER
- Pt_GROUP_VERT_BOTTOM
Pt_ARG_GROUP_FLAGS
| C type | Pt type | Default |
|---|---|---|
| unsigned long | Flag | 0 |
Possible values:
- Pt_GROUP_EQUAL_SIZE
- Force all children to be the same height and width.
- Pt_GROUP_EXCLUSIVE
- Allow only one child to be set at a time.
- Pt_GROUP_NO_SELECT_ALLOWED
- Allow any exclusive group to have no selected item. If this flag is set, you can deselect the currently selected child without having to select another child. To do this, click on the currently selected child.
- Pt_GROUP_NO_KEYS
- Prevent the group from using any keys (e.g. arrows).
- Pt_GROUP_NO_KEY_WRAP_HORIZONTAL
- Don't use keys that would cause horizontal wrap.
- Pt_GROUP_NO_KEY_WRAP_VERTICAL
- Don't use keys that would cause vertical wrap.
- Pt_GROUP_NO_KEY_WRAP
- Don't use keys that would cause horizontal or vertical wrap.
- Pt_GROUP_EQUAL_SIZE_HORIZONTAL
- Make the children in the group the same width.
- Pt_GROUP_EQUAL_SIZE_VERTICAL
- Make the children in the group the same height.
- Pt_GROUP_STRETCH_HORIZONTAL
- Stretch the rightmost children in the group horizontally to fill its canvas.
- Pt_GROUP_STRETCH_VERTICAL
- Stretch the bottommost children in the group vertically to fill its canvas.
- Pt_GROUP_STRETCH_FILL
- Stretch the last widget(s) to fill the available space in the direction indicated by the orientation.
The default setting of this resource is 0; that is, no flags have been set.
![]() |
Don't set the Pt_GROUP_EQUAL_SIZE_... and Pt_GROUP_STRETCH_... flags for the same direction — the group will expand every time its extent is calculated. |
Pt_ARG_GROUP_HORZ_ALIGN
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | Pt_GROUP_HORZ_CENTER |
How the children are aligned horizontally within the group. The children retain their relative positions to each other. Possible values:
- Pt_GROUP_HORZ_LEFT
- Pt_GROUP_HORZ_CENTER
- Pt_GROUP_HORZ_RIGHT
Pt_ARG_GROUP_ORIENTATION
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | Pt_GROUP_HORIZONTAL |
The orientation of the group; one of:
- Pt_GROUP_ASIS
- Don't align children.
- Pt_GROUP_HORIZONTAL
- Align children in a row.
- Pt_GROUP_VERTICAL
- Align children in a column.
Pt_ARG_GROUP_ROWS_COLS
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | 0 |
For a horizontally aligned group, this resource indicates the number of columns to distribute children into. For a vertically aligned group, this resource indicates the number of rows to distribute children into. Not used for an “as is” group; see Pt_ARG_GROUP_ORIENTATION, above.
Pt_ARG_GROUP_SPACING
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | 0 |
If alignment is in effect, this resource defines how many pixels separate each child of the group.
![]() |
If you set this resource, you automatically set Pt_ARG_GROUP_SPACING_X and Pt_ARG_GROUP_SPACING_Y to the same value. |
Pt_ARG_GROUP_SPACING_X
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | 0 |
If alignment is in effect, this resource defines how many pixels separate each child of the group horizontally. Setting Pt_ARG_GROUP_SPACING automatically sets this resource.
Pt_ARG_GROUP_SPACING_Y
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | 0 |
If alignment is in effect, this resource defines how many pixels separate each child of the group vertically. Setting Pt_ARG_GROUP_SPACING automatically sets this resource.
Pt_ARG_GROUP_VERT_ALIGN
| C type | Pt type | Default |
|---|---|---|
| unsigned short | Scalar | Pt_GROUP_VERT_CENTER |
Determines how the children are aligned within the group. The children retain their relative positions to each other. Possible values:
- Pt_GROUP_VERT_TOP
- Pt_GROUP_VERT_CENTER
- Pt_GROUP_VERT_BOTTOM
Inherited resources:
If the widget modifies an inherited resource, the “Default override” column indicates the new value. This modification affects any subclasses of the widget.
![]() |
![]() |
![]() |
![]() |

![[Previous]](prev.gif)
![[Contents]](contents.gif)
![[Index]](keyword_index.gif)
![[Next]](next.gif)

