
    g
f,                         d Z dZdZdZdZdZddlmZmZm	Z	 dd	l
mZ dd
l
mZ ddl
mZ ddl
mZ ddlmZ ddlmZ  G d d      Zdg dgdfdZy)z/Displays a GUI for Orca navigation list dialogsz$Id$z
$Revision$z$Date$zCopyright (c) 2012 Igalia, S.L.LGPL    )GObjectGdkGtk   )debug)	guilabels)
orca_state)script_manager)AXEventSynthesizer)AXObjectc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)OrcaNavListGUIc                    d | _         d | _        d | _        | j                  |||      | _        | j                  j                  |       | j                  j                  d       | j                  j                  d       | j                  j                  d       | j                  j                  d       t        j                         j                         | _        d | _        y )NT)_tree_activateButton_jumpToButton_createNavListDialog_gui	set_title	set_modalset_keep_aboveset_focus_on_mapset_accept_focusr   
getManagergetActiveScript_script	_document)selftitlecolumnHeadersrowsselectedRows        7/usr/lib/python3/dist-packages/orca/orca_gui_navlist.py__init__zOrcaNavListGUI.__init__*   s    
#!--mT;O			E"		D!		  &		""4(		""4(%002BBD    c                 	   t        j                         }|j                  dd       t        j                         }|j	                         }|j                  |       t        j                         }|j                  |       t        j                         | _        | j                  j                  d       | j                  j                  d       |j                  | j                         t        j                  t        j                  g}|j                  t        |      t        j                   gz         t        j"                  | }	t        j$                         }
t        j&                  d|
d      }|j)                  d       | j                  j+                  |       t        j$                         }
t        j&                  d|
d	      }|j)                  d       | j                  j+                  |       t-        |      D ]c  \  }}t        j$                         }
t        j&                  ||
|d
z         }|j/                  |d
z          | j                  j+                  |       e |D ]9  }|	j1                  d       }t-        |      D ]  \  }}
|	j3                  |||
        ; | j                  j5                  |	       | j                  j7                         }|j9                  |       |j;                  t<        j>                  t         j@                  jB                        }|jE                  d| jF                         |j;                  t<        jH                  t         j@                  jJ                        | _&        | jL                  jE                  d| jN                         |j;                  t<        jP                  t         j@                  jR                        | _*        | jT                  jE                  d| jV                         | jT                  jY                          | j                  jE                  d| jZ                         | j                  jE                  d| j\                         | j                  j_                  d
       |S )Ni  i  T
Accessibler   )textFoffsetr      clickedzkey-release-eventzcursor-changed)0r   Dialogset_default_sizeGridget_content_areaaddScrolledWindowTreeViewr   set_hexpandset_vexpandr   TYPE_OBJECTTYPE_INTextendlenTYPE_STRING	ListStoreCellRendererTextTreeViewColumnset_visibleappend_column	enumerateset_sort_column_idappend	set_value	set_modelget_selectionselect_path
add_buttonr	   
BTN_CANCELResponseTypeCANCELconnect_onCancelClickedBTN_JUMP_TOAPPLYr   _onJumpToClickedACTIVATEOKr   _onActivateClickedgrab_default_onKeyRelease_onCursorChangedset_search_column)r   r!   r"   r#   dialoggridcontentAreascrolledWindowcolsmodelcellcolumniheaderrowrowIter	selectionbtns                     r$   r   z#OrcaNavListGUI._createNavListDialog7   sb   S)xxz--/++- \\^


t$

t$4::&##W%5%56C&'*=*=)>>?t$##%##L$Q?5!

  (##%##Hd;5!

  ("=1 	-IAv'')D''1Q3?F%%ac*JJ$$V,		-  	2Cll4(G$S> 24D12	2
 	

U#JJ,,.	k*	 4 4c6F6F6M6MNIt445#..y/D/DcFVFVF\F\]""9d.C.CD%00 0 0 3 3 5$$Y0G0GH))+

.0B0BC

+T-B-BC

$$Q'r&   c                     | j                   j                          t        j                  j                  }|dk(  rt        j                         }| j                   j                  |       y Nr   )r   show_allr
   lastInputEvent	timestampr   get_current_event_timepresent_with_time)r   tss     r$   showGUIzOrcaNavListGUI.showGUIu   sJ    		&&007++-B		##B'r&   c                    | j                         \  }}t        j                  |      }| j                  j	                  |dkD         |dkD  r| j                  j                          y | j                  j                          y rf   )_getSelectedAccessibleAndOffsetr   get_n_actionsr   set_sensitiverS   r   )r   widgetobjr*   	n_actionss        r$   rU   zOrcaNavListGUI._onCursorChanged|   sg    ::<V**3/	**9q=9q=  --/++-r&   c                     |j                   }t        j                  j                         }|j	                  |      }|d   }t        j
                  |d         }|dk(  r| j                  j                          y y )Nr   Return)hardware_keycoder   Keymapget_defaultget_entries_for_keycodekeyval_namer   activate_default)r   rr   eventkeycodekeymapentries_for_keycodeentrieseventStrings           r$   rT   zOrcaNavListGUI._onKeyRelease   si    (('')$<<WE%b)oogaj1("II&&( #r&   c                 8    | j                   j                          y N)r   destroy)r   rr   s     r$   rL   zOrcaNavListGUI._onCancelClicked   s    		r&   c                     | j                         \  }}| j                  j                          | j                  j                  j                  ||| j                         y r   )ro   r   r   r   	utilitiessetCaretPositionr   )r   rr   rs   r*   s       r$   rO   zOrcaNavListGUI._onJumpToClicked   sD    ::<V		//VT^^Lr&   c                 X   | j                         \  }}| j                  j                          |sy | j                  j                  j                  ||       t        j                  |      s?d|g}t        j                  t        j                  |d       t        j                  |       y y )Nz'INFO: Attempting a synthesized click onT)ro   r   r   r   r   r   r   try_all_clickable_actionsr   printTokens
LEVEL_INFOclick_object)r   rr   rs   r*   tokenss        r$   rR   z!OrcaNavListGUI._onActivateClicked   s    ::<V		//V<!;;C@?EFe..=++C0 Ar&   c                    | j                   s(d}t        j                  t        j                  |d       y| j                   j	                         }|s(d}t        j                  t        j                  |d       y|j                         \  }}|s(d}t        j                  t        j                  |d       y|j                  |j                  |d         d      }|j                  |j                  |d         d      }|t        d|      fS )Nz!ERROR: Could not get navlist treeT)Nrv   z/ERROR: Could not get selection for navlist treez+ERROR: Could not get paths for navlist treer   r   )	r   r   printMessager   rE   get_selected_rows	get_valueget_itermax)r   msgrc   r\   pathsrs   r*   s          r$   ro   z.OrcaNavListGUI._getSelectedAccessibleAndOffset   s    zz5Cu//d;JJ,,.	CCu//d; 224u?Cu//d;ooennU1X6:a!91=C6N""r&   N)__name__
__module____qualname__r%   r   rm   rU   rT   rL   rO   rR   ro    r&   r$   r   r   (   s1    <|(.)M

1#r&   r    r   c                 @    t        | |||      }|j                          y r   )r   rm   )r    r!   r"   r#   guis        r$   showUIr      s    
t[
ACKKMr&   N)__doc____id____version____date____copyright____license__gi.repositoryr   r   r   r   r   r	   r
   r   ax_event_synthesizerr   	ax_objectr   r   r   r   r&   r$   <module>r      sZ   , 61 + +     4 N# N#` 2RDa r&   