+
    Qi  c                  st  a  0 t $ R t^ RIHt RtRtRtRtRt^ RI	H
t
 ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ]
'       d*   ^ RIt]P<                  ! RR4       ^ RIH t  ^RIH!t! ^RI"H#t#  ! R R4      t$]$! 4       t%R]&R&   R R lt'R# ) 8Provides Orca-controlled navigation for tabular content.)annotationsz$Id$z
$Revision$z$Date$zyCopyright (c) 2005-2009 Sun Microsystems Inc.Copyright (c) 2011-2023 Igalia, S.L.Copyright (c) 2023 GNOME Foundation Inc.ZLGPL)TYPE_CHECKING)cmdnames)dbus_service)debug)focus_manager)input_event)input_event_manager)keybindings)messages)settings_manager)AXObject)AXTable)AXText)AXUtilitiesNAtspiz2.0)r   )
InputEvent)defaultc                  s   ] tR t^AtRtR R ltR@R R lltRAR R lltR R	 ltR
 R lt	R R lt
R R ltRBR R llt]P                  RCR R ll4       tRBR R lltR R ltR R ltR R lt]P                  RCR R ll4       t]P                  RCR R  ll4       t]P                  RCR! R" ll4       t]P                  RCR# R$ ll4       t]P                  RCR% R& ll4       t]P                  RCR' R( ll4       t]P                  RCR) R* ll4       t]P                  RCR+ R, ll4       t]P                  RCR- R. ll4       t]P                  RCR/ R0 ll4       t]P                  RCR1 R2 ll4       t]P                  RCR3 R4 ll4       t]P                  RCR5 R6 ll4       t ]P                  RCR7 R8 ll4       t!RDR9 R: llt"]PF                  R; R< l4       t$]PJ                  R= R> l4       t&R?t'R# )ETableNavigatorr    c                   V ^8  d   QhRR/#    returnNone Zformat   "9/usr/lib/python3.14/site-packages/orca/table_navigator.py__annotate__TableNavigator.__annotate__D   s     E E$ E    c                	sJ   R V n         R V n        R V n        RV n        RV n        V P                  R4      V n        \        P                  ! 4       V n	        Rp\        P                  ! \        P                  VR4       \        P                  ! 4       pVP                  RV 4       R # )NTFz,TABLE NAVIGATOR: Registering D-Bus commands.r   )_previous_reported_row_previous_reported_col_last_input_event_enabled
_suspendedget_handlers	_handlersr	   KeyBindings	_bindingsr   print_message
LEVEL_INFOr   Zget_remote_controllerZregister_decorated_module)selfmsgZ
controllers   &  r   __init__ZTableNavigator.__init__D   s    26#26#48" !&#0062=2I2I2K<E,,c48!779
,,-=tDr   c               s$    V ^8  d   QhRRRRRR/# )r   refreshbool
is_desktopr   zkeybindings.KeyBindingsr   r   r   r   r   r   U   s$      15	 r   c                sN   V'       dc   RV 2p\         P                  ! \         P                  VR4       V P                  P	                  R4       V P                  4        V P                  # V P                  P                  4       '       d   V P                  4        V P                  # )z(Returns the table-navigator keybindings.z2TABLE NAVIGATOR: Refreshing bindings. Is desktop: Tz%TABLE NAVIGATOR: Refreshing bindings.)r   r)   r*   r(   Zremove_key_grabs_setup_bindingsZis_empty)r+   r.   r0   r,   s   &&& r   get_bindingsZTableNavigator.get_bindingsU   s    
 FzlSC 0 0#t<NN++,ST  " ~~ ^^$$&&  "~~r   c                    V ^8  d   QhRRRR/# )r   r.   r/   r   z(dict[str, input_event.InputEventHandler]r   r   r   r   r   r   d   s      D 5] r   c                s    V'       d9   Rp\         P                  ! \         P                  VR4       V P                  4        V P                  # )z%Returns the table-navigator handlers.z%TABLE NAVIGATOR: Refreshing handlers.T)r   r)   r*   _setup_handlersr&   )r+   r.   r,      && r   r%   ZTableNavigator.get_handlersd   s:     9C 0 0#t<  "~~r   c               r   r   r   r/   r   r   r   r   r   r   n   s      D r   c                s    V P                   # )z4Returns true if table-navigation support is enabled.)r#   r+      &r   
is_enabledZTableNavigator.is_enabledn   s     }}r   c               r   r6   r   r   r   r   r   r   s   s       r   c                s8   V P                   f   R# \        P                  ! 4       pVP                  V P                   4      pV P                   e   V P                   P	                  4       pMRpRV RV 2p\
        P                  ! \
        P                  VR4       V# )z>Returns true if the last input event was a navigation command.Fr   z(TABLE NAVIGATOR: Last navigation event (z) is last input event: T)r"   r   get_managerZ)last_event_equals_or_is_release_for_eventZas_single_line_stringr   r)   r*   )r+   ZmanagerZresultZstringr,   s   &    r   'last_input_event_was_navigation_commandZ6TableNavigator.last_input_event_was_navigation_commands   s     !!)%113BB4CYCYZ!!-++AACFF8@WX^W_`E,,c48r   c               r   r   r   r   r   r   r   r      s     Q9 Q9 Q9r   c                sr   \         P                  ! 4       V n        V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R	\         P
                  \         P                  V P                  R
,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R	\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^V P                  ;'       d    V P                  '       * 4      4       \        P                  ! 4       P                  V P                  V P                  R4      V n        RV P                   2p\        P                   ! \        P"                  VR4       R# )z*Sets up the table-navigation key bindings.Zttable_navigator_toggle_enabledZLefttable_cell_leftZRighttable_cell_rightZUptable_cell_upZDowntable_cell_downZHometable_cell_firstZEndtable_cell_lasttable_cell_beginning_of_rowtable_cell_end_of_rowtable_cell_top_of_columntable_cell_bottom_of_columnZrset_dynamic_column_headers_row clear_dynamic_column_headers_rowZcset_dynamic_row_headers_column clear_dynamic_row_headers_columnFz-TABLE NAVIGATOR: Bindings set up. Suspended: TN)r	   r'   r(   addZ
KeyBindingZDEFAULT_MODIFIER_MASKZORCA_SHIFT_MODIFIER_MASKr&   r$   ZSHIFT_ALT_MODIFIER_MASKr#   ZORCA_ALT_SHIFT_MODIFIER_MASKr   r:   Zoverride_key_bindingsr   r)   r*   r+   r,      & r   r1   ZTableNavigator._setup_bindings   s    %002""1144?@OO#%	& 	""11330155doo"57	8 	""11331255doo"57	8 	""1133/55doo"57	8 	""11330155doo"57	8 	""11331255doo"57	8 	""11330155doo"57	8 	""1188<=55doo"57	8 	""11886755doo"57	8 	""11889:55doo"57	8 	""1188<=55doo"57	8 	""1144?@55doo"57	8 	""1144AB55doo"57	8 	""1144?@55doo"57	8 	""1144AB55doo"57	8 *557MMNNDNNE3 >doo=NOE,,c48r   c               r   r   r   r   r   r   r   r     s     `9 `9 `9r   c                s   / V n         \        P                  ! V P                  \        P
                  V P                  '       * R7      V P                   R&   \        P                  ! V P                  \        P                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P                  \        P                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P                  \        P                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P                  \        P                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P                   \        P"                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P$                  \        P&                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P(                  \        P*                  V P                  ;'       d    V P                  '       * R7      V P                   R	&   \        P                  ! V P,                  \        P.                  V P                  ;'       d    V P                  '       * R7      V P                   R
&   \        P                  ! V P0                  \        P2                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P4                  \        P6                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P8                  \        P:                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P<                  \        P>                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V P@                  \        PB                  V P                  ;'       d    V P                  '       * R7      V P                   R&   \        P                  ! V PD                  \        PF                  V P                  ;'       d    V P                  '       * R7      V P                   R&   RV P                   2p\H        PJ                  ! \H        PL                  VR4       R# )z1Sets up the table-navigator input event handlers.)Zenabledr<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   z-TABLE NAVIGATOR: Handlers set up. Suspended: TN)'r&   r   ZInputEventHandlertoggle_enabledr   ZTABLE_NAVIGATION_TOGGLEr$   	move_leftZTABLE_CELL_LEFTr#   
move_rightZTABLE_CELL_RIGHTmove_upZTABLE_CELL_UP	move_downZTABLE_CELL_DOWNmove_to_first_cellZTABLE_CELL_FIRSTmove_to_last_cellZTABLE_CELL_LASTmove_to_beginning_of_rowZTABLE_CELL_BEGINNING_OF_ROWmove_to_end_of_rowZTABLE_CELL_END_OF_ROWmove_to_top_of_columnZTABLE_CELL_TOP_OF_COLUMNmove_to_bottom_of_columnZTABLE_CELL_BOTTOM_OF_COLUMNrG   DYNAMIC_COLUMN_HEADER_SETrH   ZDYNAMIC_COLUMN_HEADER_CLEARrI   DYNAMIC_ROW_HEADER_SETrJ   ZDYNAMIC_ROW_HEADER_CLEARr   r)   r*   rL   rM   r   r4   ZTableNavigator._setup_handlers  sJ     ))##00 OO+- 	78 ))((==doo*=? 	() ))))==doo*=? 	)* ))&&==doo*=? 	' ))((==doo*=? 	() ))''))==doo*=? 	)* ))&&((==doo*=? 	() ))--44==doo*=? 	45 ))''..==doo*=? 	./ ))**11==doo*=? 	12 ))--44==doo*=? 	45 ))3322==doo*=? 	78 ))5544==doo*=? 	9: ))33//==doo*=? 	78 ))5511==doo*=? 	9: >doo=NOE,,c48r   c               s$    V ^8  d   QhRRRRRR/# )r   scriptdefault.Scriptreasonstrr   r   r   r   r   r   r   r   y  s'     P P P PVZ Pr   c                s   RpV'       d   VRV 2,          p\         P                  ! \         P                  VR4       V P                  P                   F   pVP                  P                  VRR7       K"  	  V P                  R4      V n        V P                  R4      V n        V P                  P                   F.  pVP                  P                  W@P                  '       * R7       K0  	  R# )z9Refreshes table navigation bindings and grabs for script.z.TABLE NAVIGATOR: Refreshing bindings and grabs: T)Zinclude_grabsN)r   r)   r*   r(   Zkey_bindingsZremover%   r&   r2   rK   r$   )r+   r[   r]   r,   Zbindings   &&&  r   refresh_bindings_and_grabsZ)TableNavigator.refresh_bindings_and_grabsy  s     ?Rx= CE,,c48~~22G&&wd&C 3 **40**40~~22G##G;N#O 3r   Nc               (    V ^8  d   QhRRRRRRRR/# r   r[   r\   eventzinput_event.InputEvent | Nonenotify_userr/   r   r   r   r   r   r   r     2       - 	
 
r   c                sr   V P                   '       * V n         RVRVRV.p\        P                  ! \        P                  VR4       V'       dR   V P                   '       d!   VP	                  \
        P                  4       MVP	                  \
        P                  4       RV n        V P                  VR4       R# )zToggles table navigation.z(TABLE NAVIGATOR: toggle_enabled. Script:Event:notify_user:TNztoggling table navigation)
r#   r   print_tokensr*   present_messager
   ZTABLE_NAVIGATION_ENABLEDZTABLE_NAVIGATION_DISABLEDr"   r`   )r+   r[   rc   rd   tokens   &&&& r   rN   ZTableNavigator.toggle_enabled  s     !MM)<fE>;@5++VT:}}}&&x'H'HI&&x'I'IJ!%''0KLr   c               s(    V ^8  d   QhRRRRRRRR/# )	r   r[   r\   	suspendedr/   r]   r^   r   r   r   r   r   r   r   r     s0     U U~ U$ UPS U]a Ur   c                s    W P                   8X  d   R# RV 2pV'       d   VRV 2,          p\        P                  ! \        P                  VR4       W n         V P	                  VRV 24       R# )z=Suspends table navigation independent of the enabled setting.NzTABLE NAVIGATOR: Suspended: r_   TzSuspended changed to )r$   r   r)   r*   r`   )r+   r[   rl   r]   r,   rk   r   suspend_commandsZTableNavigator.suspend_commands  se     ',YK8Rx= CE,,c48#''2G	{0STr   c               r3   )r   objAtspi.Accessibler   r/   r   r   r   r   r   r     s      - $ r   c                s   \         P                  ! V4      '       d.   RVR.p\        P                  ! \        P                  VR4       R# \
        P                  ! V4      '       d.   RVR.p\        P                  ! \        P                  VR4       R# \
        P                  ! V4      '       dg   \
        P                  ! V4       FJ  pV P                  V4      '       d   K  RVRVR.p\        P                  ! \        P                  VR4        R# 	  R# \        P                  ! V4      '       g.   RVR.p\        P                  ! \        P                  VR4       R# R	VR
.p\        P                  ! \        P                  VR4       R# )z<Returns True if obj is empty or consists of only whitespace.zTABLE NAVIGATOR:zis not blank: it is focusableTFzis not blank: it has a namezis not blank:zis not blankzis not blank: it has textzTABLE NAVIGATOR: Treatingzas blank)r   Zis_focusabler   rh   r*   r   Zget_nameZget_child_countZiter_children	_is_blankr   Zis_whitespace_or_empty)r+   rn   rj   Zchilds   &&  r   rp   ZTableNavigator._is_blank  s;    ##C(((#/NOFu//>S!!(#/LMFu//>##C((!//4~~e,,0#~^F&&u'7'7F 	 5
 ,,S11(#/JKFu//>-sJ?5++VT:r   c               r   )r   r   ro   r   r   r   r   r   r     s      #3 r   c                s   \         P                  ! 4       P                  4       p\        P                  ! V4      p\
        P                  ! V4      '       d   Tp\
        P                  ! V4      '       g&   \        P                  ! V\
        P                  4      pRV.p\        P                  ! \        P                  VR4       V# )zReturns the current cell.z TABLE NAVIGATOR: Current cell isT)r   r:   get_locus_of_focusr   Z
get_parentr   is_table_cell_or_headerZfind_ancestorr   rh   r*   )r+   cellZparentrj   s   &   r   _get_current_cellZ TableNavigator._get_current_cell  s     ((*==? $$T*..v66D 22488))$0S0STD4d;5++VT:r   c               r3   )r   rs   ro   r   Ztupler   r   r   r   r   r     s      *: u r   c                s6   \         P                  ! VRR7      w  r#V P                  e   V P                  f   W#3# \         P                  ! \         P
                  ! V4      V P                  V P                  4      pWA8X  d   V P                  V P                  3# W#3# )zGReturns the coordinates of cell, possibly adjusted for linear movement.F)Zprefer_attribute)r   get_cell_coordinatesr    r!   Zget_cell_at	get_table)r+   rs   rowcolZ	last_cells   &&   r   _get_cell_coordinatesZ$TableNavigator._get_cell_coordinates  s     //uM&&.$2M2M2U8O ''d#T%@%@$B]B]_	..0K0KKKxr   c               ra   rb   r   r   r   r   r   r     2          -  	 
 
 r   c                s   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      '       d*   V'       d    VP                  \        P                  4       R# V P                  V4      w  rg\        P                  ! V4      pV P                  4       '       dT   V'       dL   V P                  V4      '       d5   \        P                  ! V4      '       g   \        P                  ! V4      pKS  V P                  WWg^,
          WS4       R# )zMoves to the cell on the left.z#TABLE NAVIGATOR: move_left. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   TABLE_NOT_IN_Ar   is_start_of_rowTABLE_ROW_BEGINNINGry   Zget_cell_on_leftget_skip_blank_cellsrp   _present_cell	r+   r[   rc   rd   rj   currentrw   rx   rs   	   &&&&     r   rO   ZTableNavigator.move_left  s    8E>;@5++VT:!&((*?&&x'>'>?""7++&&x'C'CD--g6''0$$&&4>>$//8O8OPT8U8U//56AgwLr   c               ra   rb   r   r   r   r   r   r     rz   r   c                s   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      '       d*   V'       d    VP                  \        P                  4       R# V P                  V4      w  rg\        P                  ! V4      pV P                  4       '       dT   V'       dL   V P                  V4      '       d5   \        P                  ! V4      '       g   \        P                  ! V4      pKS  V P                  WWg^,           WS4       R# )zMoves to the cell on the right.z$TABLE NAVIGATOR: move_right. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   is_end_of_rowTABLE_ROW_ENDry   Zget_cell_on_rightr~   rp   r   r   r   r   rP   ZTableNavigator.move_right  s    9&E>;@5++VT:!&((*?&&x'>'>?  ))&&x'='=>--g6((1$$&&4>>$//8M8Md8S8S0066AgwLr   c               ra   rb   r   r   r   r   r   r   =  rz   r   c                s   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      '       d*   V'       d    VP                  \        P                  4       R# V P                  V4      w  rg\        P                  ! V4      pV P                  4       '       dT   V'       dL   V P                  V4      '       d5   \        P                  ! V4      '       g   \        P                  ! V4      pKS  V P                  WV^,
          WuV4       R# )zMoves to the cell above.z!TABLE NAVIGATOR: move_up. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   is_top_of_columnTABLE_COLUMN_TOPry   Zget_cell_abover~   rp   r   r   r   r   rQ   ZTableNavigator.move_up<  s    6vE>;@5++VT:!&((*?&&x'>'>?##G,,&&x'@'@A--g6%%g.$$&&4>>$//8P8PQU8V8V--d36q#Lr   c               ra   rb   r   r   r   r   r   r   `  rz   r   c                s   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      '       d*   V'       d    VP                  \        P                  4       R# V P                  V4      w  rg\        P                  ! V4      pV P                  4       '       dT   V'       dL   V P                  V4      '       d5   \        P                  ! V4      '       g   \        P                  ! V4      pKS  V P                  WV^,           WuV4       R# )zMoves to the cell below.z#TABLE NAVIGATOR: move_down. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   is_bottom_of_columnTABLE_COLUMN_BOTTOMry   Zget_cell_belowr~   rp   r   r   r   r   rR   ZTableNavigator.move_down_  s    8E>;@5++VT:!&((*?&&x'>'>?&&w//&&x'C'CD--g6%%g.$$&&4>>$//8S8STX8Y8Y--d36q#Lr   c               ra   rb   r   r   r   r   r   r     re   r   c                sh   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      p\        P                  ! V4      pV P                  W^ ^ WS4       R# )zMoves to the first cell.z,TABLE NAVIGATOR: move_to_first_cell. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   rv   Zget_first_cellr   r+   r[   rc   rd   rj   r   tablers      &&&&    r   rS   Z!TableNavigator.move_to_first_cell  s     A&E>;@5++VT:!&((*?&&x'>'>?!!'*%%e,6AwDr   c               ra   rb   r   r   r   r   r   r     s2       - 	
 
r   c                s   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      p\        P                  ! V4      pV P                  W\        P                  ! V4      \        P                  ! V4      WS4       R# )zMoves to the last cell.z+TABLE NAVIGATOR: move_to_last_cell. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   rv   Zget_last_cellr   Zget_row_countZget_column_countr   r   r   rT   Z TableNavigator.move_to_last_cell  s     @E>;@5++VT:!&((*?&&x'>'>?!!'*$$U+'//68P8PQV8W	
 r   c               ra   rb   r   r   r   r   r   r     2       - 	
 
r   c                   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      '       d*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      pV P                  V4      w  rxV P                  WWxWS4       R# )z"Moves to the beginning of the row.z2TABLE NAVIGATOR: move_to_beginning_of_row. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   r|   r}   Zget_start_of_rowry   r   	r+   r[   rc   rd   rj   r   rs   rw   rx   r   r   rU   Z'TableNavigator.move_to_beginning_of_row  s     GE>;@5++VT:!&((*?&&x'>'>?""7++&&x'C'CD''0--d367Hr   c               ra   rb   r   r   r   r   r   r     r   r   c                r   )zMoves to the end of the row.z,TABLE NAVIGATOR: move_to_end_of_row. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   r   r   Zget_end_of_rowry   r   r   r   r   rV   Z!TableNavigator.move_to_end_of_row  s     A&E>;@5++VT:!&((*?&&x'>'>?  ))&&x'='=>%%g.--d367Hr   c               ra   rb   r   r   r   r   r   r     2       - 	
 
r   c                $   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      '       d*   V'       d    VP                  \        P                  4       R# V P                  V4      ^ ,          p\        P                  ! V4      pV P                  V4      ^,          pV P                  WWhWS4       R# )zMoves to the top of the column.z/TABLE NAVIGATOR: move_to_top_of_column. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   r   r   ry   Zget_top_of_columnr   	r+   r[   rc   rd   rj   r   rw   rs   rx   r   r   rW   Z$TableNavigator.move_to_top_of_column  s     DVE>;@5++VT:!&((*?&&x'>'>?##G,,&&x'@'@A((1!4((1((.q167Hr   c               ra   rb   r   r   r   r   r   r     r   r   c                r   )z"Moves to the bottom of the column.z2TABLE NAVIGATOR: move_to_bottom_of_column. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   r   r   ry   Zget_bottom_of_columnr   r   r   r   rX   Z'TableNavigator.move_to_bottom_of_column  s     GE>;@5++VT:!&((*?&&x'>'>?&&w//&&x'C'CD((1!4++G4((.q167Hr   c               ra   rb   r   r   r   r   r   r   2  2       - 	
 
r   c                s   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      pV'       di   \        P                  ! V4      ^ ,          p\        P                  ! Wg4       V'       d.   VP                  \        P                  V^,           ,          4       R# )z?Sets the row for the dynamic header columns to the current row.z8TABLE NAVIGATOR: set_dynamic_column_headers_row. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   rv   ru   rG   rY   )r+   r[   rc   rd   rj   r   r   rw   r   r   rG   Z-TableNavigator.set_dynamic_column_headers_row1  s     MfE>;@5++VT:!&((*?&&x'>'>?!!'*..w7:C225>&&x'I'ISSTW'UVr   c               ra   rb   r   r   r   r   r   r   O  r   r   c                    RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! \        P                  ! 4       P                  4       4      pV'       dN   \        P                  ! V4       V'       d0   VP                  4        VP                  \        P                  4       R# )z.Clears the row for the dynamic column headers.z:TABLE NAVIGATOR: clear_dynamic_column_headers_row. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   rv   r   r:   rq   rH   interrupt_presentationZDYNAMIC_COLUMN_HEADER_CLEAREDr+   r[   rc   rd   rj   r   r      &&&&   r   rH   Z/TableNavigator.clear_dynamic_column_headers_rowN  s     OPVE>;@5++VT:!&((*?&&x'>'>?!!-";";"="P"P"RS44U;--/&&x'M'MNr   c               ra   rb   r   r   r   r   r   r   l  r   r   c                s&   RVRVRV.p\         P                  ! \         P                  VR4       W n        V P	                  4       pVf*   V'       d    VP                  \        P                  4       R# \        P                  ! V4      pV'       d   \        P                  ! V4      ^,          p\        P                  ! Wg4       V'       dG   VP                  \        P                  VP                  P                  V^,           4      ,          4       R# )zBSets the column for the dynamic row headers to the current column.z8TABLE NAVIGATOR: set_dynamic_row_headers_column. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   rv   ru   rI   rZ   	utilitiesZconvert_column_to_string)r+   r[   rc   rd   rj   r   r   columnr   r   rI   Z-TableNavigator.set_dynamic_row_headers_columnk  s     MfE>;@5++VT:!&((*?&&x'>'>?!!'*11':1=F225A&&33f6F6F6_6_
7$ $% r   c               ra   rb   r   r   r   r   r   r     r   r   c                r   )z.Clears the column for the dynamic row headers.z:TABLE NAVIGATOR: clear_dynamic_row_headers_column. Script:rf   rg   T)r   rh   r*   r"   rt   ri   r
   r{   r   rv   r   r:   rq   rJ   r   ZDYNAMIC_ROW_HEADER_CLEAREDr   r   r   rJ   Z/TableNavigator.clear_dynamic_row_headers_column  s     OPVE>;@5++VT:!&((*?&&x'>'>?!!-";";"="P"P"RS44U;--/&&x'J'JKr   c               s4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r   r[   r\   rs   ro   rw   Zintrx   previous_cellrd   r/   r   r   r   r   r   r   r   r     sY     +M +M+M +M 	+M
 +M (+M +M 
+Mr   c                s   \         P                  ! V4      '       g5   RVRV RV R2.p\        P                  ! \        P                  VR4       R# W0n        W@n        VP                  P                  V4      '       d   \        P                  ! V4       \        P                  ! V\        P                  4      ;'       g    Tp\        P                  ! 4       P                  RVR4       \        P                  ! V4      '       d>   VP                  P!                  V4      '       g   VP                  P#                  V^ 4       V'       g+   Rp	\        P$                  ! \        P                  V	R4       R# VP'                  V^ VRR	7       \(        P                  ! 4       P+                  R
4      '       d9   VP-                  \.        P0                  RV^,           RV^,           /,          4       \(        P                  ! 4       P+                  R4      '       dP   \2        P4                  ! V4      w  rV
^8  g   V^8  d(   VP-                  \.        P6                  ! W4      4       R# R# R# )zPresents cell to the user.zTABLE NAVIGATOR: z(row z	, column z) is not cell or headerTNFz<TABLE NAVIGATOR: _present_cell called with notify_user=False)ZoffsetZpriorObjZ	interruptZspeakCellCoordinatesrw   r   ZspeakCellSpan)r   rr   r   rh   r*   r    r!   r   Zgrab_focus_when_setting_caretr   Z
grab_focusZfind_descendantZsupports_textr   r:   Zset_locus_of_focusZis_gui_cellZset_caret_positionr)   Zpresent_objectr   get_settingri   r
   ZTABLE_CELL_COORDINATESr   Zget_cell_spansZ	cell_span)r+   r[   rs   rw   rx   r   rd   rj   rn   r,   ZrowspanZcolspans   &&&&&&&     r   r   ZTableNavigator._present_cell  s    22488)45YseKb1cdFu//>&)#&)#99$??%&&tX-C-CDLL!!#66tS%H!!#&&v/?/?/K/KD/Q/Q//Q7PC 0 0#t<d1}PTU '')556LMM""//537HsUVw2WWY '')55oFF&55d;G{gk&&x'9'9''KL * Gr   c               r   r6   r   r   r   r   r   r     s     L Ld Lr   c                sJ    \         P                  ! 4       P                  R4      # )z@Returns whether blank cells should be skipped during navigation.skipBlankCells)r   r:   r   r7   r8   r   r~   Z#TableNavigator.get_skip_blank_cells  s      ++-99:JKKr   c               s     V ^8  d   QhRRRR/# )r   valuer/   r   r   r   r   r   r   r     s     	 	$ 	4 	r   c                s    V P                  4       V8X  d   R# RV R2p\        P                  ! \        P                  VR4       \        P
                  ! 4       P                  RV4       R# )z=Sets whether blank cells should be skipped during navigation.Tz-TABLE NAVIGATOR: Setting skip blank cells to Z.r   )r~   r   r)   r*   r   r:   Zset_setting)r+   r   r,   r5   r   set_skip_blank_cellsZ#TableNavigator.set_skip_blank_cells  s[     $$&%/=eWAFE,,c48$$&223CUKr   )r(   r#   r&   r"   r!   r    r$   )FT)F) )NT)T)(Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__r-   r2   r%   r9   r;   r1   r4   r`   r   ZcommandrN   rm   rp   rt   ry   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rG   rH   rI   rJ   r   Zgetterr~   Zsetterr   Z__static_attributes__r   r   r   r   r   A   s   BE"
"Q9f`9DP"  0U<,$    D    D    D    D  0  6  :  :  <  <  8  8  <  8+MZ L L
 	 	r   r   
_navigatorc               r   )r   r   r   r   r   r   r   r   r     s      ~ r   c                 s    \         # )zReturns the Table Navigator)r   r   r   r   get_navigatorr     s
     r   )(__conditional_annotations__r   Z
__future__r   Z__id__Z__version__Z__date__Z__copyright__Z__license__Ztypingr   r   r   r   r   r   r   r   r	   r
   r   Z	ax_objectr   Zax_tabler   Zax_textr   Zax_utilitiesr   ZgiZrequire_versionZgi.repositoryr   r   Zscriptsr   r   r   Z__annotations__r   )r   s   @r   <module>r      s   8 ? #;         !       %w&#' c cJ -.
^ .r   