[Previous] [Contents] [Index] [Next]

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 PhAB's Group Together button in the speedbar:

Group Together button in PhAB

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, and PtGroup may give them exclusive-selection behavior.


PtGroup


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_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_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, the user can deselect the currently selected child without having to select another child. To do this, the user simply clicks 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 key that would cause horizontal wrap.
Pt_GROUP_NO_KEY_WRAP_VERTICAL
Don't use key 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 children in group same width.
Pt_GROUP_EQUAL_SIZE_VERTICAL
Make children in group same height.
Pt_GROUP_STRETCH_HORIZONTAL
Stretch the rightmost children in group horizontally to fill its canvas.
Pt_GROUP_STRETCH_VERTICAL
Stretch the bottommost children in 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.


Note: 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

Determines how the children are aligned within the group. The children retain their relative positions to each other. Possible values:

Pt_ARG_GROUP_ORIENTATION

C type Pt type Default
unsigned short Scalar Pt_GROUP_HORIZONTAL

Possible values:

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 will separate each child of the group.


Note: If you set this resource, you'll 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 will separate each child of the group horizontally.

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 will separate each child of the group vertically.

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:

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.

Resource Inherited from Default override
Pt_ARG_ANCHOR_FLAGS PtContainer
Pt_ARG_ANCHOR_OFFSETS PtContainer
Pt_ARG_AREA PtWidget
Pt_ARG_BANDWIDTH_THRESHOLD PtBasic Not used by this class.
Pt_ARG_BITMAP_CURSOR PtWidget
Pt_ARG_BORDER_WIDTH PtWidget 0
Pt_ARG_BOT_BORDER_COLOR PtBasic
Pt_ARG_COLOR PtBasic
Pt_ARG_CONTAINER_FLAGS PtContainer
Pt_ARG_CURSOR_COLOR PtWidget
Pt_ARG_CURSOR_TYPE PtWidget
Pt_ARG_DATA PtWidget
Pt_ARG_DIM PtWidget
Pt_ARG_EFLAGS PtWidget Pt_CONSUME_EVENTS
Pt_ARG_FILL_COLOR PtBasic Pg_TRANSPARENT
Pt_ARG_FILL_PATTERN PtBasic
Pt_ARG_FLAGS PtWidget
Pt_ARG_HELP_TOPIC PtWidget
Pt_ARG_HIGHLIGHT_ROUNDNESS PtBasic
Pt_ARG_MARGIN_HEIGHT PtBasic 0
Pt_ARG_MARGIN_WIDTH PtBasic 0
Pt_ARG_POS PtWidget
Pt_ARG_RESIZE_FLAGS PtWidget Pt_RESIZE_XY_AS_REQUIRED
Pt_ARG_TOP_BORDER_COLOR PtBasic
Pt_ARG_TRANS_PATTERN PtBasic
Pt_ARG_USER_DATA PtWidget
Pt_CB_ACTIVATE PtBasic
Pt_CB_ARM PtBasic
Pt_CB_BALLOONS PtContainer
Pt_CB_BLOCKED PtWidget
Pt_CB_DESTROYED PtWidget
Pt_CB_DISARM PtBasic
Pt_CB_FILTER PtContainer
Pt_CB_GOT_FOCUS PtBasic
Pt_CB_HOTKEY PtWidget
Pt_CB_LOST_FOCUS PtBasic
Pt_CB_MENU PtBasic
Pt_CB_RAW PtWidget
Pt_CB_REALIZED PtWidget
Pt_CB_REPEAT PtBasic
Pt_CB_RESIZE PtContainer
Pt_CB_UNREALIZED PtWidget

[Previous] [Contents] [Index] [Next]