*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> XmProcessTraversal (3)              
Title
Content
Arch
Section
 

Contents


 XmProcessTraversal(library call)           XmProcessTraversal(library call)




 NAME    [Toc]    [Back]
      XmProcessTraversal - A function that determines which component
      receives keyboard events when a widget has the focus

 SYNOPSIS    [Toc]    [Back]
      #include <Xm/Xm.h>
      Boolean XmProcessTraversal(
      Widget widget,
      XmTraversalDirection direction);

 DESCRIPTION    [Toc]    [Back]
      XmProcessTraversal determines which component of a hierarchy receives
      keyboard events when the hierarchy that contains the given widget has
      keyboard focus.

      XmProcessTraversal changes focus only when the keyboard focus policy
      of the widget hierarchy is explicit.  If the XmNkeyboardFocusPolicy of
      the nearest shell ancestor of the given widget is not XmEXPLICIT,
      XmProcessTraversal returns False without making any focus changes.

      widget    Specifies the widget ID of the widget whose hierarchy is to
                be traversed

      direction Specifies the direction of traversal

    DEFINITIONS    [Toc]    [Back]
      In order to be eligible to receive keyboard focus when the shell's
      XmNkeyboardFocusPolicy is XmEXPLICIT, a widget or gadget must meet the
      following conditions:

         +  The widget and its ancestors are not in the process of being
            destroyed.

         +  The widget and its ancestors are sensitive.  A widget is
            sensitive when its XmNsensitive and XmNancestorSensitive
            resources are both True.

         +  The XmNtraversalOn resource for the widget and its ancestors is
            True.

         +  The widget is viewable.  This means that the widget and its
            ancestors are managed, realized, and (except for gadgets)
            mapped.  Furthermore, in general, some part of the widget's
            rectangular area must be unobscured by the widget's ancestors.
            If an application unmaps a widget that has its
            XmNmappedWhenManaged resource set to True, the result is
            undefined.

                In a ScrolledWindow with an XmNscrollingPolicy of
                XmAUTOMATIC, a widget that is obscured because it is not
                within the clip window may be able to receive focus if some



                                    - 1 -       Formatted:  January 24, 2005






 XmProcessTraversal(library call)           XmProcessTraversal(library call)




                part of the widget is within the work area and if an
                XmNtraverseObscuredCallback routine can make the widget at
                least partially visible by scrolling the window.

      In general only primitives, gadgets, and Drawing Area are eligible to
      receive focus.  Most managers cannot receive focus even if they meet
      all these conditions.

      The direction argument identifies the kind of traversal action to
      take.  The descriptions of these actions below refer to traversable
      non-tab-group widgets and traversable tab groups.

         +  A traversable non-tab-group widget is a widget that is not a tab
            group and that meets all the conditions for receiving focus
            described above.

         +  A traversable tab group widget is a tab group widget that meets
            the same conditions, except that a manager that is a tab group
            and meets the other conditions is also eligible for traversal as
            long as it contains a descendant that can receive focus.

      A tab group is a widget whose XmNnavigationType is:

         +  XmTAB_GROUP or XmSTICKY_TAB_GROUP, if the hierarchy (up to the
            nearest shell ancestor) that contains the widget has no widget
            whose XmNnavigationType is XmEXCLUSIVE_TAB_GROUP

         +  XmEXCLUSIVE_TAB_GROUP or XmSTICKY_TAB_GROUP, if the hierarchy
            (up to the nearest shell ancestor) that contains the widget has
            any widget whose XmNnavigationType is XmEXCLUSIVE_TAB_GROUP

    TRAVERSAL ACTIONS    [Toc]    [Back]
      The hierarchy to be traversed is that containing the widget argument.
      This hierarchy is traversed only up to the nearest shell;
      XmProcessTraversal does not move focus from one shell to another.  If
      the shell containing widget does not currently have the focus, any
      change that XmProcessTraversal makes to the element with focus within
      that shell does not take effect until the next time the shell receives
      focus.

      XmProcessTraversal begins the traversal action from the widget in the
      hierarchy that currently has keyboard focus or that last had focus
      when the user traversed away from the shell hierarchy.

      The value of the direction argument determines which of three kinds of
      traversal action to take:

         +  Traversal to a non-tab-group widget.  This kind of traversal is
            possible only when the widget that currently has focus is not a
            tab group; otherwise, XmProcessTraversal returns False for these
            actions.



                                    - 2 -       Formatted:  January 24, 2005






 XmProcessTraversal(library call)           XmProcessTraversal(library call)




                These actions do not move focus from one tab group to
                another.  The actions first determine the containing tab
                group.  This is the tab group containing the widget that
                currently has focus.  The actions traverse only to a nontab-group
 widget within the containing tab group.

                A non-tab-group widget is eligible for this kind of
                traversal if the widget is traversable and has no tab group
                ancestors up to the containing tab group.  If the tab group
                contains no traversable non-tab-group widgets,
                XmProcessTraversal returns False.

                Following are the possible values of the direction argument.
                Note that when actions wrap, wrapping occurs in the
                traversal direction. The following describes what happens in
                a left to right environment:

                   +  XmTRAVERSE_RIGHT-If the XmNnavigationType of the
                      containing tab group is not XmEXCLUSIVE_TAB_GROUP,
                      focus moves to the next traversable non-tab-group
                      widget to the right of the widget that currently has
                      focus.  In a left to right environment, at the right
                      side of the tab group this action wraps to the nontab-group
 widget at the left side and next toward the
                      bottom.  At the rightmost widget in the bottom row of
                      the tab group this action wraps to the non-tab-group
                      widget at the leftmost widget in the upper row.

                          In a right to left environment, at the right side
                          of the tab group, this action wraps to the nontab-group
 widget at the left side and next toward
                          the top. At the rightmost widget in the upper row
                          of the tab group this action wraps to the nontab-group
 widget at the leftmost widget in the
                          bottom row.

                          If the XmNnavigationType of the containing tab
                          group is XmEXCLUSIVE_TAB_GROUP, focus moves to the
                          next traversable non-tab-group widget in the tab
                          group, proceeding in the order in which the
                          widgets appear in their parents' XmNchildren
                          lists.  After the last widget in the tab group,
                          this action wraps to the first non-tab-group
                          widget.

                   +  XmTRAVERSE_LEFT-If the XmNnavigationType of the
                      containing tab group is not XmEXCLUSIVE_TAB_GROUP,
                      focus moves to the next traversable non-tab-group
                      widget to the left of the widget that currently has
                      focus.  In a left to right environment, at the left
                      side of the tab group this action wraps to the non


                                    - 3 -       Formatted:  January 24, 2005






 XmProcessTraversal(library call)           XmProcessTraversal(library call)




                      tab-group widget at the right side and next toward the
                      top.  At the leftmost widget in the upper row of the
                      tab group this action wraps to the non-tab-group
                      widget at the rightmost widget in the bottom row.

                          In a right to left environment, at the left side
                          of the tab group this action wraps to the nontab-group
 widget at the right side and next toward
                          the bottom. At the leftmost widget in the bottom
                          row of the tab group this action wraps to the
                          non-tab-group widget at the rightmost widget in
                          the upper row.

                          If the XmNnavigationType of the containing tab
                          group is XmEXCLUSIVE_TAB_GROUP, focus moves to the
                          previous traversable non-tab-group widget in the
                          tab group, proceeding in the reverse order in
                          which the widgets appear in their parents'
                          XmNchildren lists.  After the first widget in the
                          tab group, this action wraps to the last non-tabgroup
 widget.

                   +  XmTRAVERSE_DOWN-If the XmNnavigationType of the
                      containing tab group is not XmEXCLUSIVE_TAB_GROUP,
                      focus moves to the next traversable non-tab-group
                      widget below the widget that currently has focus.  In
                      a left to right environment, at the bottom of the tab
                      group this action wraps to the non-tab-group widget at
                      the top and next toward the right.  At the bottom
                      widget in the rightmost column of the tab group this
                      action wraps to the non-tab-group widget at the top
                      widget in the leftmost column.

                          In a right to left environment, at the bottom of
                          the tab group this action wraps to the non-tabgroup
 widget at the top and next toward the left.
                          At the bottom widget of the leftmost widget of the
                          tab group this action wraps to the non-tab-group
                          widget at the top widget of the rightmost column.

                          If the XmNnavigationType of the containing tab
                          group is XmEXCLUSIVE_TAB_GROUP, focus moves to the
                          next traversable non-tab-group widget in the tab
                          group, proceeding in the order in which the
                          widgets appear in their parents' XmNchildren
                          lists.  After the last widget in the tab group,
                          this action wraps to the first non-tab-group
                          widget.

                   +  XmTRAVERSE_UP-If the XmNnavigationType of the
                      containing tab group is not XmEXCLUSIVE_TAB_GROUP,



                                    - 4 -       Formatted:  January 24, 2005






 XmProcessTraversal(library call)           XmProcessTraversal(library call)




                      focus moves to the next traversable non-tab-group
                      widget above the widget that currently has focus.  In
                      a left to right environment, at the top of the tab
                      group this action wraps to the non-tab-group widget at
                      the bottom and next toward the left.  At the top
                      widget of the leftmost column of the tab group this
                      action wraps to the non-tab-group widget at the bottom
                      widget of the rightmost column.

                          In a right to left environment, at the top of the
                          tab group this action wraps to the non-tab-group
                          widget at the bottom and next toward the right. At
                          the top widget of the right most column of the tab
                          group this action wraps to the non-tab-group
                          widget at the bottom widget of the leftmost
                          column.

                          If the XmNnavigationType of the containing tab
                          group is XmEXCLUSIVE_TAB_GROUP, focus moves to the
                          previous traversable non-tab-group widget in the
                          tab group, proceeding in the reverse order in
                          which the widgets appear in their parents'
                          XmNchildren lists.  After the first widget in the
                          tab group, this action wraps to the last non-tabgroup
 widget.

                   +  XmTRAVERSE_NEXT-Focus moves to the next traversable
                      non-tab-group widget in the tab group, proceeding in
                      the order in which the widgets appear in their
                      parents' XmNchildren lists.  After the last widget in
                      the tab group, this action wraps to the first nontab-group
 widget.

                   +  XmTRAVERSE_PREV-Focus moves to the previous
                      traversable non-tab-group widget in the tab group,
                      proceeding in the reverse order in which the widgets
                      appear in their parents' XmNchildren lists.  After the
                      first widget in the tab group, this action wraps to
                      the last non-tab-group widget.

                   +  XmTRAVERSE_HOME-If the XmNnavigationType of the
                      containing tab group is not XmEXCLUSIVE_TAB_GROUP,
                      focus moves to the first traversable non-tab-group
                      widget at the initial focus of the tab group.

                          If the XmNnavigationType of the containing tab
                          group is XmEXCLUSIVE_TAB_GROUP, focus moves to the
                          first traversable non-tab-group widget in the tab
                          group, according to the order in which the widgets
                          appear in their parents' XmNchildren lists.




                                    - 5 -       Formatted:  January 24, 2005






 XmProcessTraversal(library call)           XmProcessTraversal(library call)




         +  Traversal to a tab group.  These actions first determine the
            current widget hierarchy and the containing tab group.  The
            current widget hierarchy is the widget hierarchy whose root is
            the nearest shell ancestor of the widget that currently has
            focus.  The containing tab group is is the tab group containing
            the widget that currently has focus.  If the current widget
            hierarchy contains no traversable tab groups, XmProcessTraversal
            returns False.

                Following are the possible values of the direction argument.
                If any tab group in the current widget hierarchy has an
                XmNnavigationType of XmEXCLUSIVE_TAB_GROUP, traversal of tab
                groups in the hierarchy proceeds to widgets in the order in
                which their XmNnavigationType resources were specified as
                XmEXCLUSIVE_TAB_GROUP or XmSTICKY_TAB_GROUP.:

                   +  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_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.

         +  Traversal to any widget.  In this case the widget argument is
            the widget to which XmProcessTraversal tries to give focus.  If
            the widget is not traversable, XmProcessTraversal returns False.

                Following are the possible values of the direction argument:

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

    CAUTIONS    [Toc]    [Back]
      Using XmProcessTraversal to traverse to MenuBars, Pulldown menu panes,
      or Popup menu panes is not supported.

      XmProcessTraversal cannot be called recursively.  In particular, an
      application cannot call this routine from an XmNfocusCallback or
      XmNlosingFocusCallback procedure.

 RETURN    [Toc]    [Back]




                                    - 6 -       Formatted:  January 24, 2005






 XmProcessTraversal(library call)           XmProcessTraversal(library call)




      Returns True if the traversal action succeeded.  Returns False if the
      XmNkeyboardFocusPolicy of the nearest shell ancestor of widget is not
      XmEXPLICIT, if the traversal action finds no traversable widget to
      receive focus, or if the call to the routine has invalid arguments.

 RELATED    [Toc]    [Back]
      XmGetVisibility(3) and XmIsTraversable(3).


                                    - 7 -       Formatted:  January 24, 2005
[ Back ]
 Similar pages
Name OS Title
XmGetFocusWidget IRIX Returns the ID of the widget that has keyboard focus
XmGetFocusWidget HP-UX Returns the ID of the widget that has keyboard focus
XmGetFocusWidget Tru64 Returns the ID of the widget that has keyboard focus
XmGetVisibility IRIX A function that determines if a widget is visible
XmGetVisibility Tru64 A function that determines if a widget is visible
XmGetVisibility HP-UX A function that determines if a widget is visible
SgFinderGetChild IRIX A Finder function used to access a widget component
XmImUnsetFocus HP-UX An input manager function that notifies an input method that a widget has lost input focus
XmImSetFocusValues HP-UX An input manager function that notifies an input manager that a widget has received input focus and updates th
XmImVaSetFocusValues HP-UX An input manager function that notifies an input manager that a widget has received input focus and updates th
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service