XmProcessTraversal man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

XmProcessTraversal(library call)	      XmProcessTraversal(library call)

NAME
       XmProcessTraversal   —  A  function  that  determines  which  component
       receives keyboard events when a widget has the focus

SYNOPSIS
       #include <Xm/Xm.h>
       Boolean XmProcessTraversal(
       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.

       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,	XmPro‐
       cessTraversal 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
       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 sensi‐
	     tive 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 applica‐
	     tion unmaps a widget that has its	XmNmappedWhenManaged  resource
	     set to True, the result is undefined.

		 In  a	ScrolledWindow	with  an XmNscrollingPolicy of XmAUTO‐
		 MATIC, a widget that is obscured because it is not within the
		 clip  window may be able to receive focus if some part of the
		 widget is within the work area and if an XmNtraverseObscured‐
		 Callback routine can make the widget at least partially visi‐
		 ble 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
       The  hierarchy  to be traversed is that containing the widget argument.
       This hierarchy is traversed  only  up  to  the  nearest	shell;	XmPro‐
       cessTraversal  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.

		 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 cur‐
		 rently has focus.  The actions traverse only  to  a  non-tab-
		 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  con‐
		       taining	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 non-tab-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 non-tab-
			   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 non-tab-
			   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 con‐
		       taining 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-tab-group widget  at
		       the  right  side and next toward the top.  At the left‐
		       most widget in the upper row  of	 the  tab  group  this
		       action  wraps to the non-tab-group widget at the right‐
		       most widget in the bottom row.

			   In a right to left environment, at the left side of
			   the	tab  group  this  action wraps to the non-tab-
			   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-tab-group widget.

		    ·  XmTRAVERSE_DOWN—If the XmNnavigationType	 of  the  con‐
		       taining	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-tab-
			   group  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  contain‐
		       ing tab group is not XmEXCLUSIVE_TAB_GROUP, 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	 left‐
		       most  column  of the tab group this action wraps to the
		       non-tab-group widget at the bottom widget of the right‐
		       most 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-tab-group 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	 non-tab-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  con‐
		       taining	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.

	  ·  Traversal to a tab group.	These actions first determine the cur‐
	     rent widget hierarchy and the containing tab group.  The  current
	     widget  hierarchy is the widget hierarchy whose root is the near‐
	     est 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  con‐
	     tains  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 XmN‐
		 navigationType 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 con‐
		       tains 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 con‐
		       tains  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
       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 XmN‐
       losingFocusCallback procedure.

RETURN
       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
       XmGetVisibility(3) and XmIsTraversable(3).

					      XmProcessTraversal(library call)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net