%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/orca/scripts/apps/soffice/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/orca/scripts/apps/soffice/__pycache__/script_utilities.cpython-312.pyc

�

g
fO���dZdZdZdZdZdZddlZejdd	�dd
lm	Z	ddl
mZddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd
lmZddlmZddlmZGd�dej<�Zy)z�Commonly-required utility methods needed by -- and potentially
   customized by -- application and toolkit scripts. They have
   been pulled out from the scripts because certain scripts had
   gotten way too large as a result of including these methods.z$Id$z
$Revision$z$Date$z#Copyright (c) 2010 Joanmarie Diggs.�LGPL�N�Atspiz2.0)r)�AXObject)�AXSelection)�AXTable)�AXText)�AXUtilitiesc���eZdZd�Z�fd�Zd�Zd�Z		d�fd�	Z�fd�Zd�Z	e
d��Zd�fd	�	Zd
�Z
d�Zd�Zd
�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Zdd�Zd�fd�	Zd�Zd�Zdd�Zd�Z�fd�Zd�Zd�Zd�Z�xZ S) �	Utilitiesc�n�tjj||�g|_g|_g|_y)z�Creates an instance of the Utilities class.

        Arguments:
        - script: the script with which this instance is associated.
        N)�script_utilitiesr�__init__�_calcSelectedCells�_calcSelectedRows�_calcSelectedColumns)�self�scripts  �L/usr/lib/python3/dist-packages/orca/scripts/apps/soffice/script_utilities.pyrzUtilities.__init__6s2��	�"�"�+�+�D�&�9�"$���!#���$&��!�c	�f��tj|�}|rtj|�r|Stj|�rctt
|jtj|�D�cgc]}|��c}��}dj|�}|j�r|S	t�|�|�}tj|�r(||k(r#|j|�s|j|�ry|j|�r||k(r|j!d�ry|Scc}w#t$rYywxYw)aiReturns the text being displayed for an object. Overridden here
        because OpenOffice uses symbols (e.g. ">>" for buttons but exposes
        more useful information via the accessible's name.

        Arguments:
        - obj: the object

        Returns the text being displayed for an object or None if there isn't
        any text being shown.
        �
�zfile:///)r�get_namer	�is_push_button�
is_table_cell�list�map�
displayedText�
iter_children�join�strip�super�	Exception�isSpreadSheetCell�isTextDocumentCell�
isDocument�
startswith)r�obj�name�x�strings�text�	__class__s      �rrzUtilities.displayedTextIs���� � ��%���K�.�.�s�3��K��$�$�S�)��3�t�1�1�x�?U�?U�VY�?Z�3[�!�A�3[�\�]�G��9�9�W�%�D��z�z�|���	��7�(��-�D��$�$�S�)�d�d�l��&�&�s�+�t�/F�/F�s�/K��
�?�?�3��D�D�L�T�_�_�Z�5P�����14\���	��	�s�1	D�)D$�$	D0�/D0c��tj|�}tj|�stj|�r|j|�Sy�NF)r�
get_parentr	�is_panel�is_extended�spreadSheetCellName)rr(�parents   r�isCellBeingEditedzUtilities.isCellBeingEditedtsA���$�$�S�)������'�;�+B�+B�6�+J��+�+�F�3�3�rc���tj|�j�}|D]9}|jdd�}|j	�r�&|j�s�7|cSy)N�.r)rr�split�replace�isalpha�isalnum)r�cell�nameListr)s    rr3zUtilities.spreadSheetCellName{sU���$�$�T�*�0�0�2���	�D��<�<��R�(�D��<�<�>�d�l�l�n���	�
rc���||k(rytj||�sytj|�rytj|�}|tj|�k(rtj
|�ryt�|�||||�S)NTF)r	�have_same_role�is_paragraphrr�is_framer"�isSameObject)r�obj1�obj2�comparePaths�ignoreNames�ignoreDescriptionsr)r-s       �rrBzUtilities.isSameObject�sz����4�<���)�)�$��5���#�#�D�)��� � ��&���8�$�$�T�*�*�{�/C�/C�D�/I���w�#�D�$��k�J�Jrc�P��tj|�r8tjtj|��ryt
�|�|�Stj|�}|st
�|�|�Stj|�r8|tjtj�j��k(Stj|�rBtj|�r-tjtj|d��|k(ryt
�|�|�S)z�Returns True if the given object is a container which has
        no presentable information (label, name, displayed text, etc.).Tr)r	�is_list�is_combo_boxrr0r"�isLayoutOnlyrrA�
focus_manager�
getManager�get_active_windowr1�get_child_count�	get_child)rr(r)r-s   �rrKzUtilities.isLayoutOnly�s�������s�#��'�'��(;�(;�C�(@�A���7�'��,�,�� � ��%����7�'��,�,�����$��8�,�,�]�-E�-E�-G�-Y�-Y�-[�\�\�\�����$��)A�)A�#�)F�� � ��!3�!3�C��!;�<��D���w�#�C�(�(rc��|j|�s tjj||�Sddg}t	j
|�}|r�t	j|�tjjk(r||d<t	j|�tjjk(r||d<t	j
|�}|r��|S)a�Returns the frame and (possibly) the dialog containing
        the object. Overridden here for presentation of the title
        bar information: If the locusOfFocus is a spreadsheet cell,
        1) we are not in a dialog and 2) we need to present both the
        frame name and the sheet name. So we might as well return the
        sheet in place of the dialog so that the default code can do
        its thing.
        Nr�)r$r
r�frameAndDialogr�get_parent_checked�get_roler�Role�FRAME�TABLE)rr(�resultsr4s    rrSzUtilities.frameAndDialog�s����%�%�c�*�#�-�-�<�<�T�3�G�G���,���,�,�S�1���� � ��(�E�J�J�,<�,<�<�#���
�� � ��(�E�J�J�,<�,<�<�#���
��0�0��8�F���rc�8��tj|�}tjjtjj
g�t
�fd�|�}|D�cgc]}|jd���}}|D]}tj|�s�yycc}w)Nc�(��|j��vS�N)�get_relation_type)�r�flowss �r�<lambda>z3Utilities._flowsFromOrToSelection.<locals>.<lambda>�s���Q�%8�%8�%:�e�%C�rrTF)
r�
get_relationsr�RelationType�
FLOWS_FROM�FLOWS_TO�filter�
get_targetr�has_selected_text)r(�relationSet�	relationsr^�targets�targetr_s      @r�_flowsFromOrToSelectionz!Utilities._flowsFromOrToSelection�s�����,�,�S�1���#�#�.�.��0B�0B�0K�0K�L���C�[�Q�	�,5�6�q�1�<�<��?�6��6��	�F��'�'��/��	���7s�Bc����|xs"tj�j�}|sy|j|�r)|j	�}|j|�xsd}||vSt�|�|�S)NFr)rLrM�get_locus_of_focusr$�getClipboardContentsrr"�objectContentsAreInClipboard)rr(�contents�stringr-s    �rrpz&Utilities.objectContentsAreInClipboard�sq����D�]�-�-�/�B�B�D�����!�!�#�&��0�0�2�H��'�'��,�4��F��X�%�%��w�3�C�8�8rc��tj|j�tjj
k7ry|j
�\}}|jjd�r'|jsy|dk(r|jdk7ry|dvry|jjd�r'|dk(r"tj|j�d	kDSy)
z�Returns True if event is associated with text being autocompleted
        or autoinserted or autocorrected or autosomethingelsed.

        Arguments:
        - event: the accessible event being examined
        Fzobject:text-changed:insert�Tab�	T)�	BackSpace�ISO_Left_Tabzfocus:�Returnr)rrU�sourcerrV�	PARAGRAPH�lastKeyAndModifiers�typer'�any_datar�get_character_count)r�event�lastKey�modss    r�isAutoTextEventzUtilities.isAutoTextEvent�s������U�\�\�*�e�j�j�.B�.B�B���0�0�2�
����:�:� � �!=�>��>�>���%��E�N�N�d�$:���7�7���:�:� � ��*�w�(�/B��-�-�e�l�l�;�a�?�?�rc�:�tj|�r|}n$tj|tj�}|sytj|�r|Stj
|�}|s|S|j
||�}|rtj|�r|}|Sr\)r	rJr�
find_ancestor�is_validr0�
findReplicant)rr(�comboBoxr4�	replicants     r�containingComboBoxzUtilities.containingComboBox�s����#�#�C�(��H��-�-�c�;�3K�3K�L�H������X�&��O��$�$�X�.����O��&�&�v�x�8�	���*�*�9�5� �H��rc�p�|j|j�}|sy|j�\}}|dvryy)NF)�Down�UpT)r�ryr{)rrr�r�r�s     r�isComboBoxSelectionChangez#Utilities.isComboBoxSelectionChanges<���*�*�5�<�<�8�����0�0�2�
����.�(��rc���tj|j�}|tjj
k(r,|jjd�r|j|�Sy)Nzobject:text-F)	rrUryrrV�TEXTr|r'r�)rr�roles   r�isComboBoxNoisezUtilities.isComboBoxNoisesK��� � ����.���5�:�:�?�?�"�u�z�z�'<�'<�^�'L��1�1�%�8�8�rc���|j|�r(d}tjtj|d�yt�|�|�S)Nz0SOFFICE: Event is believed to be combo box noiseTF)r��debug�printMessage�
LEVEL_INFOr"�,isPresentableTextChangedEventForLocusOfFocus)rr�msgr-s   �rr�z6Utilities.isPresentableTextChangedEventForLocusOfFocus%sA�������&�D�C����u�/�/��d�;���w�C�E�J�Jrc�H��t�|�|�sy|j|�Sr/)r"�isReadOnlyTextArea�inDocumentContent�rr(r-s  �rr�zUtilities.isReadOnlyTextArea-s'����w�)�#�.���)�)�#�.�.�.rc����|jjd�r@|js4|j�xr"t	j
�j
�St�|�!|�S)Nzobject:state-changed:selected)	r|r'�detail1�lastInputEventWasDeleterLrM�
focus_is_deadr"�isSelectedTextDeletionEvent)rrr-s  �rr�z%Utilities.isSelectedTextDeletionEvent3sR����:�:� � �!@�A�%�-�-��/�/�1�`�m�6N�6N�6P�6^�6^�6`�`��w�2�5�9�9rc���t�|��ry|j�\}}|tjzr'|j�dk(r|tjzSy)NT�yF)r"�lastInputEventWasRedor{�keybindings�COMMAND_MODIFIER_MASK�lower�SHIFT_MODIFIER_MASK)r�	keyStringr�r-s   �rr�zUtilities.lastInputEventWasRedo9sV����7�(�*���2�2�4��	�4��+�3�3�3�	���8I�S�8P��{�>�>�>�?�?�rc�b��|�gStj|�sJtj|�r5tj|tj�}|rt
�|�|�Stj|�st
�|�|�S|j|�rgStj|�Sr\)r�supports_selectionr	rJ�find_descendantr"�selectedChildren�is_table�isSpreadSheetTabler�get_selected_children)rr(�childr-s   �rr�zUtilities.selectedChildrenCs�����;��I��*�*�3�/�K�4L�4L�S�4Q��,�,�S�(�2M�2M�N�E���w�/��6�6��#�#�C�(��7�+�C�0�0�
�"�"�3�'��I��0�0��5�5rc�.�tj||�Sr\)r�get_word_at_offset)rr(�offsets   r�$getWordAtOffsetAdjustedForNavigationz.Utilities.getWordAtOffsetAdjustedForNavigation\s���(�(��f�5�5rc���|jj�j�ry|j�\}}|dvryt�|�||�S)NF)rtrw)�_script�getTableNavigator�'last_input_event_was_navigation_commandr{r"�shouldReadFullRow)rr(�prevObjr�r�r-s     �rr�zUtilities.shouldReadFullRow_sO����<�<�)�)�+�S�S�U���0�0�2�
����-�-���w�(��g�6�6rc�8�|j|j�Sr\)r�ry)rrs  r� presentEventFromNonShowingObjectz*Utilities.presentEventFromNonShowingObjectis���%�%�e�l�l�3�3rc��d}|t|�kr||dz
Sd}|dkDr9|t|�z}d||dz
z|z}t|t|�z�}|dkDr�9|S)z5 Convert a spreadsheet column into it's column label.�ABCDEFGHIJKLMNOPQRSTUVWXYZrRrr� )�len�int)r�column�base26�res�digits     r�
columnConvertzUtilities.columnConvertlsx��.���S��[� ��&��(�#�#����q�j��S��[�(�E���u�Q�w��'�#�-�C���#�f�+�-�.�F��q�j�
�
rc��tj|||�}|j|�}|r|j|�}|�d|��}|j	�S)Nr�)r�get_cell_atr3rr!)rr(�row�col�includeContentsr<r)r,s        r�_getCellNameForCoordinatesz$Utilities._getCellNameForCoordinates|sU���"�"�3��S�1���'�'��-����%�%�d�+�D��V�1�T�F�#�D��z�z�|�rc�X�tj|�rtj|�s+d|dg}tjtj
|d�yt
j|d�}t
j|d�}tj|�tj|�fS)NzSOFFICE:z+does not implement both selection and tableT)����r�r�rr�)
r�supports_tabler�r��printTokensr�r�get_selected_childr�get_cell_coordinates)rr(�tokens�first�lasts     r�_getCoordinatesForSelectedRangez)Utilities._getCoordinatesForSelectedRange�s����'�'��,��1L�1L�S�1Q� �#�'T�U�F����e�.�.���=�%��.�.�s�A�6���-�-�c�2�6���+�+�E�2�G�4P�4P�QU�4V�V�Vrc���tj|�rytj|tj�ryt�|�|�Sr\)r	�is_document_textrr�r"�getSelectionContainerr�s  �rr�zUtilities.getSelectionContainer�s?����'�'��,���!�!�#�{�'C�'C�D���w�,�S�1�1rc��|j|�\}}|dk(s|dk(ry|jj�||k(rB|j|g|�d���}|jj	t
j|z�y|j|g|�d���}|j|g|�d���}|jj	t
j||fz�y)Nr�FT)r�r��presentationInterruptr��speakMessage�messages�
CELL_SELECTED�CELL_RANGE_SELECTED)rr(�firstCoords�
lastCoordsr<�cell1�cell2s       r�speakSelectedCellRangez Utilities.speakSelectedCellRange�s���"&�"F�"F�s�"K���Z��(�"�j�H�&<�����*�*�,��*�$�2�4�2�2�3�K��K�d�K�D��L�L�%�%�h�&<�&<�t�&C�D��/��/�/��H�k�H�4�H��/��/�/��G�j�G�$�G�����!�!�(�">�">�%���"O�P�rc	����|j|�\}}|dk(s|dk(ryg}t|d|ddz�D]/�|j�fd�t|d|ddz�D���1t|�}t|j�}|jd�|jd�t
|j|��}t
|j|��}tjtj�j��}||vr|j|�t
|�|_g}	t|�dk(r;|j|g|d�d���}
|	j!t"j$|
z�nbt|�dkDrT|j|g|d�d���}|j|g|d�d���}|	j!t"j&||fz�t|�dk(r;|j|g|d�d���}
|	j!t"j(|
z�nbt|�dkDrT|j|g|d�d���}|j|g|d�d���}|	j!t"j*||fz�|	r|j,j/�|	D]}
|j,j1|
d���!t3t|	��S)	Nr�TrrRc3�&�K�|]}�|f���
y�wr\�)�.0�cr^s  �r�	<genexpr>z6Utilities.handleCellSelectionChange.<locals>.<genexpr>�s�����R�a�A�q�6�R�s�r�F��	interrupt)r��range�extend�setr�discard�sorted�
differencerr�rLrMrn�remover�r��appendr��CELL_UNSELECTED�CELL_RANGE_UNSELECTEDr�r�r�r�r��bool)rr(r�r��current�previous�
unselected�selected�focusCoords�msgsr<r�r�r�r^s              @r�handleCellSelectionChangez#Utilities.handleCellSelectionChange�s����"&�"F�"F�s�"K���Z��(�"�j�H�&<�����{�1�~�z�!�}�Q��7�	S�A��N�N�R�5��Q���A��q��+Q�R�R�	S��g�,���t�.�.�/������!�����"��H�/�/��8�9�
��'�,�,�X�6�7���2�2�=�3K�3K�3M�3`�3`�3b�c���(�"��O�O�K�(�"(��/������z�?�a��2�4�2�2�3�M��A��M��M�D��K�K��0�0�4�7�8�
��_�q�
 �3�D�3�3�C�N�*�Q�-�N��N�E�3�D�3�3�C�O�*�R�.�O�$�O�E��K�K��6�6�%���G�H��x�=�A��2�4�2�2�3�K��!��K�d�K�D��K�K��.�.��5�6�
��]�Q�
�3�D�3�3�C�L�(�1�+�L�t�L�E�3�D�3�3�C�M�(�2�,�M��M�E��K�K��4�4��u�~�E�F���L�L�.�.�0��	<�C��L�L�%�%�c�U�%�;�	<��C��I��rc�L��tj|�rtj|�sytt	j
|��}tt	j|��}t|jt�j���}tt�j�j|��}�fd�}d�}tt||��}tt||��}t|jt�j���}tt�j�j|��}	tt||��}tt||	��}	t|��_	t|��_t	j|�}
t|�|
k(r*�jj!t"j$�y|s8t|�|
k(r*�jj!t"j&�yg}t|�dk(r&|j)t"j*|dz�n8t|�dkDr*|j)t"j,|d|dfz�t|	�dk(r&|j)t"j.|	dz�n8t|	�dkDr*|j)t"j0|	d|	dfz�t|�dk(r&|j)t"j2|dz�n8t|�dkDr*|j)t"j4|d|dfz�t|�dk(r&|j)t"j6|dz�n8t|�dkDr*|j)t"j8|d|dfz�|r�jj;�|D]}�jj!|d���!t=t|��S)	NTc�,���j|dz�S�NrR)r�)r*rs �r�
convertColumnzBUtilities.handleRowAndColumnSelectionChange.<locals>.convertColumn�s����%�%�a��c�*�*rc��|dzSrr�)r*s r�
convertRowz?Utilities.handleRowAndColumnSelectionChange.<locals>.convertRow�s���q�5�LrrRrr�Fr�)rr�r�r�r�get_selected_columns�get_selected_rowsr�r�rrrr�get_column_countr�r�r�r��DOCUMENT_SELECTED_ALL�DOCUMENT_UNSELECTED_ALLr��TABLE_COLUMN_UNSELECTED�TABLE_COLUMN_RANGE_UNSELECTED�TABLE_ROW_UNSELECTED�TABLE_ROW_RANGE_UNSELECTED�TABLE_COLUMN_SELECTED�TABLE_COLUMN_RANGE_SELECTED�TABLE_ROW_SELECTED�TABLE_ROW_RANGE_SELECTEDr�r�)
rr(�cols�rows�selectedCols�unselectedColsrr�selectedRows�unselectedRows�columnCountr�r�s
`            r�!handleRowAndColumnSelectionChangez+Utilities.handleRowAndColumnSelectionChange�s_����'�'��,��1L�1L�S�1Q���7�/�/��4�5���7�,�,�S�1�2���d�o�o�c�$�2K�2K�.L�M�N����D�$=�$=� >� I� I�$� O�P��	+�	��C�
�|�<�=���c�-��@�A���d�o�o�c�$�2H�2H�.I�J�K����D�$:�$:� ;� F� F�t� L�M���C�
�L�9�:���c�*�n�=�>��$(��J��!�!%�d�����.�.�s�3���t�9��#��L�L�%�%�h�&D�&D�E����N�+�{�:��L�L�%�%�h�&F�&F�G�����~��!�#��K�K��8�8�>�!�;L�L�M�
��
 �1�
$��K�K��>�>�'��*�N�2�,>�?�@�
A��~��!�#��K�K��5�5��q�8I�I�J�
��
 �1�
$��K�K��;�;�'��*�N�2�,>�?�@�
A��|���!��K�K��6�6��a��H�I�
��
��
"��K�K��<�<��Q��Q]�^`�Qa�?b�b�c��|���!��K�K��3�3�l�1�o�E�F�
��
��
"��K�K��9�9�\�!�_�l�[]�N^�<_�_�`���L�L�.�.�0��	<�C��L�L�%�%�c�U�%�;�	<��C��I��r)FFTr\)F)!�__name__�
__module__�__qualname__rrr5r3rBrKrS�staticmethodrlrpr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�
__classcell__)r-s@rrr4s����'�&)�V��HM�(,�K�")�,�2�	��	�
9�$�6�,	��K�/�:��6�26�7�4�� �W�2��"-�^Brr)�__doc__�__id__�__version__�__date__�
__copyright__�__license__�gi�require_version�
gi.repositoryr�
orca.debugr��orca.focus_managerrL�orca.keybindingsr��
orca.messagesr��orca.script_utilitiesr
�orca.ax_objectr�orca.ax_selectionr�
orca.ax_tabler�orca.ax_textr�orca.ax_utilitiesr	rr�rr�<module>r3sq��(C�

������5�
���	�����7�E�"���*�&� �0�#�)�!��)�h� �*�*�hr

Zerion Mini Shell 1.0