
    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 ddlmZ  G d dej,                        Zy)z,Custom script for StarOffice and OpenOffice.z$Id$z
$Revision$z$Date$z-Copyright (c) 2005-2009 Sun Microsystems Inc.LGPL    NAtspiz2.0)r   )AXObject)AXTable)AXUtilitiesc                   f     e Zd Z fdZ fdZ fdZd Z fdZd Z fdZ	 fdZ
 fd	Z xZS )
BrailleGeneratorc                 $    t         |   |       y N)super__init__)selfscript	__class__s     M/usr/lib/python3/dist-packages/orca/scripts/apps/soffice/braille_generator.pyr   zBrailleGenerator.__init__*   s         c                     | j                   j                  j                  |      rg S | j                   j                  j                  |      rg S t	        |   |fi |S r   )_script	utilities
isDocumentisFocusableLabelr   _generateRoleNamer   objargsr   s      r   r   z"BrailleGenerator._generateRoleName-   sR    <<!!,,S1I<<!!2237Iw(555r   c                    | j                   j                  j                  |      st        |   |fi |S t        j                  |      st        |   |fi |}nYg }|j                  d      }d|d<   t        j                  |      D ]$  }|j                   | j                  |fi |       & ||d<   | j                   j                  j                  |      s|S 	 | j                   j                  j                  |dd      }t        j                  |      xs% | j                   j                  j                  |      }t#        j$                  |dj'                  ||f            gS # t         $ r g cY S w xY w)N
formatTypefocusedr    )r   r   inDocumentContentr   _generateRealTableCellr   get_child_countgetiter_childrenextendgenerateisSpreadSheetCell	substringr   get_label_for_cell_coordinatesspreadSheetCellName	Exceptionbraille	Componentjoin)	r   r   r   resultr   child
objectTextcellNamer   s	           r   r"   z'BrailleGenerator._generateRealTableCell6   s\   ||%%77<71#>>>'',W3C@4@FF,/J!*D!//4 <mdmmE:T:;<!+D||%%77<M	//99#q"EJ==cB C<<))==cB 
 !!#sxxX0F'GHII  	I	s   A#E) )E76E7c                 H    t        j                  t        j                        S r   )r-   Regionobject_propertiesTABLE_CELL_DELIMITER_BRAILLE)r   r   r   s      r   _generateTableCellDelimiterz,BrailleGenerator._generateTableCellDelimiterP   s    ~~/LLMMr   c                    | j                   j                  j                  ||j                  d            s | j                  |fi |S | j                   j                  j                  |      st        |   |fi |S | j                   j                  j                  |      }|sg S g }|D ]L  } | j                  |fi |}|r$|r"|j                   | j                  |fi |       |j                  |       N |S )NpriorObj)r   r   shouldReadFullRowr$   r"   r(   r   _generateTableCellRowgetShowingCellsInSameRowappendr8   r&   )r   r   r   cellsr0   cell
cellResultr   s          r   r<   z&BrailleGenerator._generateTableCellRowS   s    ||%%77TXXj=QR.4..s;d;;||%%77<70===&&??DI 	&D444TBTBJf>d>>sKdKLMM*%		& r   c           	         g }t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j
                  t         j                  j                  g}| j                  j                  j                  ||      rt        j                  |      }t        j                  |t        j                        D ]e  }t        j                  |t        j                        D ]<  }t        j                   |      |d<   |j#                   | j$                  |fi |       > g |S )zIf we are in the slide presentation scroll pane, also announce the
        current page tab. See bug #538056 for more details.
        role)r   RoleSCROLL_PANEPANEL	ROOT_PANEFRAMEAPPLICATIONr   r   hasMatchingHierarchyr   
get_parentr%   r   is_page_tab_listis_selectedget_roler&   r'   )r   r   r   r0   	rolesListparentr1   tabs           r   _generateChildTabz"BrailleGenerator._generateChildTabg   s    ZZ++ZZ%%ZZ%%ZZ))ZZ%%ZZ++-	 <<!!66sIF((-F!//8T8TU >#11%9P9PQ >C#+#4#4S#9DLMM-$--"<t"<=>> r   c                 x    | j                   j                         j                         rg S t        |   |fi |S r   )r   getTableNavigator'last_input_event_was_navigation_commandr   _generateAncestorsr   s      r   rV   z#BrailleGenerator._generateAncestorsz   s6    <<))+SSUIw)#666r   c                 v    | j                   j                         j                         ryt        |   |fi |S )NF)r   rT   rU   r   _generateIncludeContextr   s      r   rX   z(BrailleGenerator._generateIncludeContext   s4    <<))+SSUw.s;d;;r   c                     | j                   j                  j                  |      |d<   | j                   | j                  |fi ||      }t        |   |fi |}|d= | j                  ||       |S )NuseDefaultFormatting)r   r   isNonFocusableList_overrideRole_getAlternativeRoler   generateBraille_restoreRole)r   r   r   oldRoler0   r   s        r   r^   z BrailleGenerator.generateBraille   s{    '+||'='='P'PQT'U#$$$%=T%=%=c%JT%JDQ(55'('4(r   )__name__
__module____qualname__r   r   r"   r8   r<   rR   rV   rX   r^   __classcell__)r   s   @r   r	   r	   (   s7    !6J4N(&7< r   r	   )__doc____id____version____date____copyright____license__girequire_versiongi.repositoryr   orca.brailler-   orca.braille_generatorbraille_generatororca.object_propertiesr6   orca.ax_objectr   orca.ax_tabler   orca.ax_utilitiesr   r	    r   r   <module>rv      sb   ( 3? 	   7E "   2 2 # ! )f(99 fr   