home *** CD-ROM | disk | FTP | other *** search
Wrap
XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) NNNNAAAAMMMMEEEE XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll - A function that determines which component receives keyboard events when a widget has the focus SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS #include <Xm/Xm.h> BBBBoooooooolllleeeeaaaannnn XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll( WWWWiiiiddddggggeeeetttt wwwwiiiiddddggggeeeetttt, XXXXmmmmTTTTrrrraaaavvvveeeerrrrssssaaaallllDDDDiiiirrrreeeeccccttttiiiioooonnnn ddddiiiirrrreeeeccccttttiiiioooonnnn); VVVVEEEERRRRSSSSIIIIOOOONNNN This page documents Motif 2.1. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll determines which component of a hierarchy receives keyboard events when the hierarchy that contains the given widget has keyboard focus. XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll changes focus only when the keyboard focus policy of the widget hierarchy is explicit. If the XXXXmmmmNNNNkkkkeeeeyyyybbbbooooaaaarrrrddddFFFFooooccccuuuussssPPPPoooolllliiiiccccyyyy of the nearest shell ancestor of the given widget is not XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallllreturns False without making any focus changes. _w_i_d_g_e_t Specifies the widget ID of the widget whose hierarchy is to be traversed _d_i_r_e_c_t_i_o_n Specifies the direction of traversal DDDDEEEEFFFFIIIINNNNIIIITTTTIIIIOOOONNNNSSSS In order to be eligible to receive keyboard focus when the shell's XXXXmmmmNNNNkkkkeeeeyyyybbbbooooaaaarrrrddddFFFFooooccccuuuussssPPPPoooolllliiiiccccyyyy is XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, a widget or gadget must meet the following conditions: +o The widget and its ancestors are not in the process of being destroyed. +o The widget and its ancestors are _s_e_n_s_i_t_i_v_e. A widget is sensitive when its XXXXmmmmNNNNsssseeeennnnssssiiiittttiiiivvvveeee and XXXXmmmmNNNNaaaannnncccceeeessssttttoooorrrrSSSSeeeennnnssssiiiittttiiiivvvveeee resources are both True. +o The XXXXmmmmNNNNttttrrrraaaavvvveeeerrrrssssaaaallllOOOOnnnn resource for the widget and its ancestors is True. +o 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 XXXXmmmmNNNNmmmmaaaappppppppeeeeddddWWWWhhhheeeennnnMMMMaaaannnnaaaaggggeeeedddd resource set to True, the result Page 1 (printed 4/6/01) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) is undefined. In a ScrolledWindow with an XXXXmmmmNNNNssssccccrrrroooolllllllliiiinnnnggggPPPPoooolllliiiiccccyyyy of XXXXmmmmAAAAUUUUTTTTOOOOMMMMAAAATTTTIIIICCCC, 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 XXXXmmmmNNNNttttrrrraaaavvvveeeerrrrsssseeeeOOOObbbbssssccccuuuurrrreeeeddddCCCCaaaallllllllbbbbaaaacccckkkkroutine 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 _d_i_r_e_c_t_i_o_n 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. +o 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. +o 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 XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee is: +o XXXXmmmmTTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP or XXXXmmmmSSSSTTTTIIIICCCCKKKKYYYY____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, if the hierarchy (up to the nearest shell ancestor) that contains the widget has no widget whose XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP +o XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP or XXXXmmmmSSSSTTTTIIIICCCCKKKKYYYY____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, if the hierarchy (up to the nearest shell ancestor) that contains the widget has any widget whose XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP TTTTRRRRAAAAVVVVEEEERRRRSSSSAAAALLLL AAAACCCCTTTTIIIIOOOONNNNSSSS The hierarchy to be traversed is that containing the _w_i_d_g_e_targument. This hierarchy is traversed only up to the nearest shell; XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll does not move focus from one shell to another. If the shell containing _w_i_d_g_e_t does not currently have the focus, any change that XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll makes to the element with focus within that shell does not take effect until the next time the shell receives focus. Page 2 (printed 4/6/01) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll 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 _d_i_r_e_c_t_i_o_n argument determines which of three kinds of traversal action to take: +o 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, XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallllreturns 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 currently 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, XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll returns False. Following are the possible values of the _d_i_r_e_c_t_i_o_n argument. Note that when actions wrap, wrapping occurs in the traversal direction. The following describes what happens in a left to right environment: +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____RRRRIIIIGGGGHHHHTTTT-If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is not XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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 Page 3 (printed 4/6/01) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) the tab group this action wraps to the non-tab-group widget at the leftmost widget in the bottom row. If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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' XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn lists. After the last widget in the tab group, this action wraps to the first non-tab-group widget. +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____LLLLEEEEFFFFTTTT-If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is not XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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 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 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 XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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' XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn lists. After the first widget in the tab group, this action wraps to the last non-tab-group widget. +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____DDDDOOOOWWWWNNNN-If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is not XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, focus moves to the Page 4 (printed 4/6/01) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) 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 XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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' XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn lists. After the last widget in the tab group, this action wraps to the first non-tab-group widget. +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____UUUUPPPP-If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is not XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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. Page 5 (printed 4/6/01) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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' XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn lists. After the first widget in the tab group, this action wraps to the last non-tab-group widget. +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____NNNNEEEEXXXXTTTT-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' XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn lists. After the last widget in the tab group, this action wraps to the first non- tab-group widget. +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____PPPPRRRREEEEVVVV-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' XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn lists. After the first widget in the tab group, this action wraps to the last non-tab-group widget. +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____HHHHOOOOMMMMEEEE-If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is not XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, focus moves to the first traversable non-tab-group widget at the initial focus of the tab group. If the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of the containing tab group is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, 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' XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn lists. +o 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, XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll returns False. Following are the possible values of the _d_i_r_e_c_t_i_o_n Page 6 (printed 4/6/01) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) argument. If any tab group in the current widget hierarchy has an XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, traversal of tab groups in the hierarchy proceeds to widgets in the order in which their XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee resources were specified as XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP or XXXXmmmmSSSSTTTTIIIICCCCKKKKYYYY____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP.: +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____NNNNEEEEXXXXTTTT____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP-Finds the hierarchy that contains _w_i_d_g_e_t, finds the active tab group (if any), and makes the next tab group the active tab group in the hierarchy. +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____PPPPRRRREEEEVVVV____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP-Finds the hierarchy that contains _w_i_d_g_e_t, finds the active tab group (if any), and makes the previous tab group the active tab group in the hierarchy. +o Traversal to any widget. In this case the _w_i_d_g_e_t argument is the widget to which XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll tries to give focus. If the widget is not traversable, XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll returns False. Following are the possible values of the _d_i_r_e_c_t_i_o_n argument: +o XXXXmmmmTTTTRRRRAAAAVVVVEEEERRRRSSSSEEEE____CCCCUUUURRRRRRRREEEENNNNTTTT-Finds the hierarchy and the tab group that contain _w_i_d_g_e_t. If this tab group is not the active tab group, this action makes it the active tab group. If _w_i_d_g_e_t is an item in the active tab group, this action makes it the active item. If _w_i_d_g_e_t is the active tab group, this action makes the first traversable item in the tab group the active item. CCCCAAAAUUUUTTTTIIIIOOOONNNNSSSS Using XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll to traverse to MenuBars, Pulldown menu panes, or Popup menu panes is not supported. XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll cannot be called recursively. In particular, an application cannot call this routine from an XXXXmmmmNNNNffffooooccccuuuussssCCCCaaaallllllllbbbbaaaacccckkkk or XXXXmmmmNNNNlllloooossssiiiinnnnggggFFFFooooccccuuuussssCCCCaaaallllllllbbbbaaaacccckkkk procedure. RRRREEEETTTTUUUURRRRNNNN Returns True if the traversal action succeeded. Returns False if the XXXXmmmmNNNNkkkkeeeeyyyybbbbooooaaaarrrrddddFFFFooooccccuuuussssPPPPoooolllliiiiccccyyyy of the nearest shell ancestor of _w_i_d_g_e_t is not XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, if the traversal action finds no traversable widget to receive focus, or if the call to the routine has invalid arguments. Page 7 (printed 4/6/01) XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll((((3333XXXX)))) RRRREEEELLLLAAAATTTTEEEEDDDD XXXXmmmmGGGGeeeettttVVVViiiissssiiiibbbbiiiilllliiiittttyyyy(3) and XXXXmmmmIIIIssssTTTTrrrraaaavvvveeeerrrrssssaaaabbbblllleeee(3). Page 8 (printed 4/6/01)