XmProcessTraversal(3X)
Prev | Reference Pages | Next

## Name

XmProcessTraversal(3X) — XmProcessTraversal--A function that determines which component receives keyboard events when a widget has the focus XmProcessTraversal

## Synopsis

#include <Xm/Xm.h>
Boolean XmProcessTraversal (`widget, direction`)
Widget `widget`;
XmTraversalDirection `direction`;

## DESCRIPTION

XmProcessTraversal determines which component of a hierarchy receives keyboard events when the hierarchy that contains the given widget has keyboard focus. Using XmProcessTraversal to traverse to MenuBars, Pulldown MenuPanes, or Popup MenuPanes is not supported.

`widget` |  | Specifies the widget ID of the widget whose hierarchy is to be traversed. The hierarchy is only traversed up to the top of the shell. If that shell does not currently have the focus, any changes to the element with focus within that shell will not occur until the next time the shell recieves focus.
`direction` |  | Specifies the direction of traversal

The `direction` parameter can have the following values, which cause the routine to take the corresponding actions:

- XmTRAVERSE_CURRENT--Finds the hierarchy and the tab group that contain `widget`. If this tab group is not the active tab group, makes it the active tab group. If `widget` is an item in the active tab group, makes it the active item. If `widget` is the active tab group, makes the first traversable item in the tab group the active item.

- XmTRAVERSE_DOWN--Finds the hierarchy that contains `widget`. Finds the active item in the active tab group and makes the item below it the active item. If there is no item below, wraps.

- XmTRAVERSE_HOME--Finds the hierarchy that contains `widget`. Finds the active item in the active tab group and makes the first traversable item in the tab group the active item.

- XmTRAVERSE_LEFT--Finds the hierarchy that contains `widget`. Finds the active item in the active tab group and makes the item to the left the active item. If there is no item to the left, wraps.

- XmTRAVERSE_NEXT--Finds the hierarchy that contains `widget`. Finds the active item in the active tab group and makes the next item in child order the active item.

- XmTRAVERSE_NEXT_TAB_GROUP--Finds the hierarchy that contains `widget`. Finds the active tab group (if any) and makes the next tab group the active tab group in the hierarchy.

- XmTRAVERSE_PREV--Finds the hierarchy that contains `widget`. Finds the active item in the active tab group and makes the previous item in child order the active item.

- XmTRAVERSE_PREV_TAB_GROUP--Finds the hierarchy that contains `widget`. Finds the active tab group (if any) and makes the previous tab group the active tab group in the hierarchy.

- XmTRAVERSE_RIGHT--Finds the hierarchy that contains `widget`. Finds the active item in the active tab group and makes the item to the right the active item. If there is no item to the right, wraps.

- XmTRAVERSE_UP--Finds the hierarchy that contains `widget`. Finds the active item in the active tab group and makes the item above it the active item. If there is no item above, wraps.

### CAUTIONS

- XmProcessTraversal will not allow traversal to a widget in a different shell.

- XmProcessTraversal will only allow traversal to widgets that are currently mapped.

- You cannot call XmProcessTraversal from inside a focusCallback routine (or you will get a segmentation fault).

## RETURN VALUE

Returns True if the setting succeeded. Returns False if the keyboard focus policy is not XmEXPLICIT, if there are no traversable items, or if the call to the routine has invalid parameters.

## RELATED INFORMATION

XmGetVisibility(3X) and XmIsTraversable(3X).

Prev | Table of Contents | Next
XmPrimitive(3X) |  | XmPushButton(3X)