
    g
f                         d Z dZdZdZdZdZddlZ ej                  dd	       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ej(                        Zy)z%Custom speech generator for Chromium.z$Id$z
$Revision$z$Date$z$Copyright (c) 2018-2019 Igalia, S.L.LGPL    NAtspiz2.0)r   )debug)web)
AXDocument)AXObject)AXUtilitiesc                   P     e Zd Z fdZ fdZ fdZ fdZ fdZ fdZ xZ	S )SpeechGeneratorc                 $    t         |   |       y N)super__init__)selfscript	__class__s     Q/usr/lib/python3/dist-packages/orca/scripts/toolkits/Chromium/speech_generator.pyr   zSpeechGenerator.__init__/   s         c                     | j                   j                  j                  |      r+d|g}t        j                  t        j
                  |d       g S t        |   |fi |S )Nz*CHROMIUM: Not generating new ancestors forT)_script	utilitiestreatAsMenur   printTokens
LEVEL_INFOr   _generateNewAncestorsr   objargstokensr   s       r   r   z%SpeechGenerator._generateNewAncestors2   sY     <<!!--c2BCHFe..=Iw,S9D99r   c                     t        j                  |t        j                        r+d|g}t	        j
                  t        j                  |d       g S t        |    |fi |S )Nz@CHROMIUM: Not generating listbox item widgets for combobox childT)	r   find_ancestorr	   is_combo_boxr   r   r   r   _generateListBoxItemWidgetsr   s       r   r#   z+SpeechGenerator._generateListBoxItemWidgets=   sX     !!#{'?'?@XZ]^Fe..=Iw23?$??r   c                 
   t        j                  |      r^| j                  j                  j	                  |      }|r7t        j                  |      s"t        | !  t        j                  |            S t        |    |fi |S r   )r	   is_framer   r   activeDocumentr   get_urir   _generateLabelOrNamer   
get_parent)r   r   r   documentr   s       r   r(   z$SpeechGenerator._generateLabelOrNameG   sk    $||--<<SAH
 2 28 <w3H4G4G4LMMw+C8488r   c                 r    | j                   j                  j                  |      rg S t        |   |fi |S r   )r   r   isListItemMarkerr   _generateRoleName)r   r   r   r   s      r   r-   z!SpeechGenerator._generateRoleNameP   s5    <<!!2237Iw(555r   c                    | j                   j                  j                  |      rt        |   |fi |S d }| j                   j                  j                  |      rSd|g}t        j                  t        j                  |d       | j                  t        j                  j                  |      }t        |   |fi |}|| j                  ||       |S )Nz*CHROMIUM: HACK? Speaking menu item as menuT)r   r   inDocumentContentr   generateSpeechr   r   r   r   _overrideRoler   RoleMENU_restoreRole)r   r   r   oldRoler   resultr   s         r   r0   zSpeechGenerator.generateSpeechV   s    <<!!33C87)#666<<!!--c2BCHFe..=(($?G'4t4gt,r   )
__name__
__module____qualname__r   r   r#   r(   r-   r0   __classcell__)r   s   @r   r   r   -   s'    !	:@96 r   r   )__doc____id____version____date____copyright____license__girequire_versiongi.repositoryr   orcar   orca.scriptsr   orca.ax_documentr   orca.ax_objectr   orca.ax_utilitiesr	   r    r   r   <module>rJ      s^   , , 6 	   7E "    ' # )7c)) 7r   