
    g
fE                         d Z dZdZdZd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 dd
lmZ  G d de
j&                        Zy)z$Id$z
$Revision$z$Date$zCopyright (c) 2014 Igalia, S.L.LGPL    N)AXObject)AXSelection)AXUtilities)AXTextc                   H     e Zd Zd Zd Zd Zd Zd fd	Z fdZd Z	 xZ
S )		Utilitiesc                 R    t         j                  j                  | |       i | _        y N)script_utilitiesr	   __init___isLayoutOnly)selfscripts     P/usr/lib/python3/dist-packages/orca/scripts/apps/gnome-shell/script_utilities.pyr   zUtilities.__init__'   s     ""++D&9    c                     i | _         y r   )r   )r   s    r   clearCachedObjectszUtilities.clearCachedObjects+   s
    r   c                     t        j                  |      rt        j                  |      S t	        j
                  |      sg S t	        j                  |      S r   )r   supports_selectionr   get_selected_childrenr   is_panelfind_all_selected_objects)r   objs     r   selectedChildrenzUtilities.selectedChildren.   sG    &&s+44S99 ##C(I44S99r   c                    |j                   r|j                   S |j                  dk(  rd}t        j                  t        j                  |d       t        j                  |j                        }|r0d| d}t        j                  t        j                  |d       |d   S d}t        j                  t        j                  |d       y)Nz(GNOME SHELL: Broken text insertion eventTz%GNOME SHELL: Returning last char in ''z:GNOME SHELL: Unable to correct broken text insertion event )any_datadetail1debugprintMessage
LEVEL_INFOr   get_all_textsource)r   eventmsgstrings       r   insertedTextzUtilities.insertedText8   s    >>>>!==B<Cu//d;((6F=fXQG""5#3#3S$?bz!NCu//d;r   c                     |sg S d } ||      sAt        j                  ||      +d|g}t        j                  t        j                  |d       g S t
        |   |||      S )Nc                     t        j                  |       xs, t        j                  |       xs t        j                  |       S r   )r   	is_dialogis_notificationis_menu_item)xs    r   hasRolez*Utilities.unrelatedLabels.<locals>.hasRoleO   s;    ((+ /..q1/++A./r   z-GNOME SHELL: Not seeking unrelated labels forT)r   find_ancestorr"   printTokensr$   superunrelatedLabels)r   rootonlyShowingminimumWordsr1   tokens	__class__s         r   r5   zUtilities.unrelatedLabelsK   sf    I	/
 t}!7!7g!F!NEtLFe..=Iw&t[,GGr   c                     | j                   j                  t        |            }||S t        |   |      }|st        j                  |      rt        j                  |      dk(  r~t        j                  |d      }| j                  |      t        j                  |      k(  rAt        j                  |      s,d}d|dg}t        j                  t        j                  |d       || j                   t        |      <   |S )N   r   TzGNOME SHELL:zis deemed to be layout only)r   gethashr4   isLayoutOnlyr   r   r   get_child_count	get_childdisplayedLabelget_nameis_labelr"   r3   r$   )r   r   rvchildr9   r:   s        r   r?   zUtilities.isLayoutOnly[   s    ##DI.>IW!#&k**3/H4L4LS4QUV4V&&sA.E""3'8+<+<U+CC"++E2(#/LM!!%"2"2FDA(*49%	r   c                 :   |j                   j                  d      r|j                  rtt        j                  |j
                        rUt        j                         j                  |j
                        s(d}t        j                  t        j                  |d       yy)Nzobject:state-changed:focusedz=GNOME SHELL: Event is believed to be bogus window focus claimTF)type
startswithr!   r   	is_windowr&   focus_manager
getManagercan_be_active_windowr"   r#   r$   )r   r'   r(   s      r   isBogusWindowFocusClaimz!Utilities.isBogusWindowFocusClaimm   sk    ::  !?@U]]$$U\\2 ++-BB5<<PQCu//d;r   )T   )__name__
__module____qualname__r   r   r   r*   r5   r?   rN   __classcell__)r:   s   @r   r	   r	   %   s'      :&H $r   r	   )__id____version____date____copyright____license__
orca.debugr"   orca.focus_managerrK   orca.script_utilitiesr   orca.ax_objectr   orca.ax_selectionr   orca.ax_utilitiesr   orca.ax_textr   r	    r   r   <module>ra      sJ   , 1  * 0 # ) ) P ** Pr   