
    g
f1                         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	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$Id$z
$Revision$z$Date$z$Copyright (c) 2013-2014 Igalia, S.L.LGPL    NAtspiz2.0)r   )AXObject)AXUtilitiesc                   |     e Zd Z fdZd Zd Zd Z fdZd Zd Z	ddZ
d	 Zd
 Z	 	 d fd	Zd Zd Zd Z xZS )	Utilitiesc                 j    t         |   |       i | _        i | _        i | _        i | _        i | _        y N)super__init___isComboBoxWithToggleDescendant_isToggleDescendantOfComboBox_isTypeahead_isUselessPanel_isLayoutOnly)selfscript	__class__s     L/usr/lib/python3/dist-packages/orca/scripts/toolkits/gtk/script_utilities.pyr   zUtilities.__init__(   s8     /1,-/*!    c                 J    i | _         i | _        i | _        i | _        i | _        y r
   )r   r   r   r   r   )r   s    r   clearCachedObjectszUtilities.clearCachedObjects0   s*    /1,-/*!r   c                 J    t        j                  |t        j                        S r
   )r   find_descendantr   is_info_bar)r   roots     r   infoBarzUtilities.infoBar7   s    ''k.E.EFFr   c                    t        j                  |      sy| j                  j                  t	        |            }||S t        j                  |      D ]\  }t        j                  |      st        j                  |t         j                        }|d u}|sDd| j                  t	        |      <    n || j                  t	        |      <   |S NFT)r   is_combo_boxr   gethashr   iter_children	is_fillerr   is_toggle_buttonr   )r   objrvchildtoggles        r   isComboBoxWithToggleDescendantz(Utilities.isComboBoxWithToggleDescendant:   s    '',1155d3i@>I++C0 	E((/--e[5Q5QRFt#BCG224<@	 ;=,,T#Y7	r   c                     | j                   j                  t        |            }|.|r*d|dg}t        j                  t        j
                  |d       |S t        |   |      }|| j                   t        |      <   |S )NzGTK:zis deemed to be layout onlyT)r   r!   r"   debugprintTokens
LEVEL_INFOr   isLayoutOnly)r   r&   r'   tokensr   s       r   r/   zUtilities.isLayoutOnlyO   sw    ##DI.> #'DE!!%"2"2FDAIW!#&(*49%	r   c                 6   t        j                  |      sy| j                  j                  t	        |            }||S t        j                  |t         j                        }|rd| j                  t	        |      <   |d u}|| j                  t	        |      <   |S r   )	r   r%   r   r!   r"   r   find_ancestorr    r   )r   r&   r'   comboBoxs       r   isToggleDescendantOfComboBoxz&Utilities.isToggleDescendantOfComboBox[   s    ++C0//33DI>>I))#{/G/GHCGD00h@T!8:**495	r   c                    |rt        j                  |      ryt        j                  |      sy| j                  j                  t        |            }||S t        j                  |      }|r:| j                  |      r)t        j                  |      }|r| j                  |      r)t        j                  |      }|| j                  t        |      <   |S NF)
r   is_deadr   is_textr   r!   r"   
get_parentr/   	is_window)r   r&   r'   parents       r   isTypeaheadzUtilities.isTypeaheadk   s    h&&s+""3'""49->I$$S)**62((0F **62 ""6*')$s)$	r   c                     t        j                  |      rt        j                  |      sy|rt        j                  |      syt        j
                  |t        j                        D cg c]  }| }}|ryyc c}w r   )r   get_namer   is_single_line
is_focusedr#   is_icon)r   r&   focusedOnlyxiconss        r   isSearchEntryzUtilities.isSearchEntry~   sh    !!#&;+E+Ec+J{55c:$2238K8KLMqMM	 Ns   *	A9c                 |    t        j                  |      xr& t        j                  |t         j                        d uS r
   )r   is_table_cellr   r2   r:   r   r&   s     r   isEntryCompletionPopupItemz$Utilities.isEntryCompletionPopupItem   s7    ((- O&&sK,A,AB$N	Or   c                 ^    t        j                  |t        j                  j                        S r
   )r   has_relationr   RelationType	POPUP_FORrH   s     r   	isPopOverzUtilities.isPopOver   s!    $$S%*<*<*F*FGGr   c                 *    t         |   ||||d      S r6   )r   isSameObject)r   obj1obj2comparePathsignoreNamesignoreDescriptionsr   s         r   rP   zUtilities.isSameObject   s    w#D$k5QQr   c                 B   t        j                  |      sy| j                  j                  t	        |            }||S t        j                  |      }t        j                  |      }|xs |xs t        j                  |       }|| j                  t	        |      <   |S r6   )	r   is_panelr   r!   r"   r   get_child_countr>   supports_text)r   r&   r'   
childCountnames        r   isUselessPanelzUtilities.isUselessPanel   s    ##C(!!%%d3i0>I--c2
  %C*C(>(>s(CD*,T#Y'	r   c                     t        j                  dt         j                        }t        j                  |d|      }|j	                  d      \  }}}t        |      dz	  t        |      dz	  t        |      dz	  fS )Nz
rgb|[^\w,] ,   )recompile
IGNORECASEsubsplitint)r   attributeValueregexstringredgreenblues          r   rgbFromStringzUtilities.rgbFromString   sb    

="--8r>2!<<,UD3x1}c%jAos4yA~==r   c                     t        j                  |j                        sy| j                  |j                        s(d}t	        j
                  t        j                  |d       yy)NFz)GTK: Event is believed to be canvas noiseT)r   	is_canvassourcetopLevelObjectIsActiveWindowr,   printMessager.   )r   eventmsgs      r   eventIsCanvasNoisezUtilities.eventIsCanvasNoise   sL    $$U\\200>=Cu//d;r   )F)FFT)__name__
__module____qualname__r   r   r   r*   r/   r4   r<   rE   rI   rN   rP   r\   rm   ru   __classcell__)r   s   @r   r   r   &   sW      G*
 &OH HM(,R>	r   r   )__id____version____date____copyright____license__girequire_versiongi.repositoryr   ra   
orca.debugr,   orca.script_utilitiesscript_utilitiesorca.ax_objectr   orca.ax_utilitiesr   r    r   r   <module>r      s\   , 
6 	   7E "  	  0 # )O ** Or   