
    g
f;                         d Z dZdZdZdZddlmZ ddlmZ ddl	m
c mc 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) 2010-2013 Igalia, S.L.LGPL    N)AXObject)AXUtilities   
Formatting	Utilitiesc                   \     e Zd Zd Zd Zd Z fdZd Z fdZd Z	d Z
d	 Z fd
Z xZS )Scriptc                 D    t         j                  j                  | |       y N)clutterr   __init__)selfapps     F/usr/lib/python3/dist-packages/orca/scripts/apps/gnome-shell/script.pyr   zScript.__init__)   s    c*    c                     t        |       S )z/Returns the formatting strings for this script.r   r   s    r   getFormattingzScript.getFormatting,   s    $r   c                     t        |       S r   r	   r   s    r   getUtilitieszScript.getUtilities0   s    r   c                 V    | j                   j                          t        |           y)z'Called when this script is deactivated.N)	utilitiesclearCachedObjectssuper
deactivate)r   	__class__s    r   r   zScript.deactivate3   s      	))+r   c                     t        j                  |j                        r| j                  j	                  |      S t
        j                  j                  | |      S )zsDetermines whether or not this event should be skipped due to
        being redundant, part of an event flood, etc.)r   	is_windowsourcer   isBogusWindowFocusClaimr   r   skipObjectEventr   events     r   r$   zScript.skipObjectEvent9   sB       .>>99%@@~~--dE::r   c                 "   |{|j                   dk(  rl|jt        j                  |      sU| j                  dd      }|rA|j                  |j                  k7  r(d}t        j                  t
        j                  |d       y t        | %  |||       y )Nzwindow:activatezobject:state-changed:focusedTzIGNOME SHELL: Have matching focused event. Not announcing nameless window.)
typer   get_name_getQueuedEventr"   debugprintMessage
LEVEL_INFOr   locusOfFocusChanged)r   r&   oldFocusnewFocusqueuedEventmsgr   s         r   r.   zScript.locusOfFocusChangedB   s    /@!@"8+<+<X+F../MtTK{11U\\Aa""5#3#3S$?#E8X>r   c                 P   t        j                  |j                        s!t        j                  j                  | |       yt        j                  t        j                         j                         t         j                        }d|g}t        j                  t        j                  |d       |rwt        j                  |j                  |      rVd}t        j                   t        j                  |d       | j#                  t        j$                  |j                               yyy)z;Callback for object:property-change:accessible-name events.Nz GNOME SHELL: focus is in dialog:Tz>GNOME SHELL: Label changed name in current dialog. Presenting.)r   is_labelr"   r   r   onNameChangedr   find_ancestorfocus_manager
getManagerget_locus_of_focus	is_dialogr+   printTokensr-   is_ancestorr,   presentMessager)   )r   r&   dialogtokensr2   s        r   r5   zScript.onNameChangedM   s     ##ELL1NN((u5 ''$$&99;[=R=RT4f=%**FD9h**5<<@RCu//d; 1 1%,, ?@ A6r   c                 x   |j                   rt        j                  |j                        r!t	        j
                  |j                  dd       t        j                  |j                        r.t        j                         j                  ||j                         yt        j                  j                  | |       y)z@Callback for object:state-changed:selected accessibility events.Fz#Ensuring we have the correct state.N)detail1r   is_panelr"   r   clear_cacheis_selectedr7   r8   set_locus_of_focusr   r   onSelectedChangedr%   s     r   rF   zScript.onSelectedChanged_   sz     ==##ELL1$$U\\5:_`&&u||4((*==eU\\R((u5r   c                    |j                   syt        j                  |j                        ryt	        j
                  |j                        st        j                  |j                        rz| j                  j                  |j                        sUt	        j                  |j                  t        j                        }|%t        j                         j                  ||       yt        j                  j!                  | |       y)z?Callback for object:state-changed:focused accessibility events.N)rA   r   r!   r"   r   r)   is_menu_itemr   labelsForObjectfind_descendant	is_sliderr7   r8   rE   r   r   onFocusedChanged)r   r&   
descendants      r   rL   zScript.onFocusedChangedr   s     }}   .  .;3K3KELL3Y>>11%,,?!11%,,@U@UVJ%((*==eZP''e4r   c                     |j                   j                  d      r|j                  ry| j                  j	                  |      ryt
        |   |      S )Nzobject:state-changed:selectedTF)r(   
startswithrA   r   r#   r   isActivatableEvent)r   r&   r   s     r   rP   zScript.isActivatableEvent   sD    ::  !@Aemm>>11%8w)%00r   )__name__
__module____qualname__r   r   r   r   r$   r.   r5   rF   rL   rP   __classcell__)r   s   @r   r   r   '   s;    + ;	?A$6&5(1 1r   r   )__id____version____date____copyright____license__
orca.debugr+   orca.focus_managerr7   orca.scripts.toolkits.clutterscriptstoolkitsr   orca.ax_objectr   orca.ax_utilitiesr   
formattingr   script_utilitiesr
   r    r   r   <module>rd      sJ   . 6  * / / # ) " 'f1W^^ f1r   