
    g
fi                         d Z 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  G d de
j"                        Zy)z0Custom script for basic switchers like Metacity.z$Id$z
$Revision$z$Date$zCopyright (c) 2019 Igalia, S.L.LGPL    )debug)focus_manager)default)AXObject)AXUtilities   	Utilitiesc                        e Zd Z fdZd Z fdZd Z fdZ fdZ fdZ	 fdZ
 fd	Z fd
Z fdZ fdZ fdZ xZS )Scriptc                 $    t         |   |       y)z/Creates a new script for the given application.N)super__init__)selfapp	__class__s     >/usr/lib/python3/dist-packages/orca/scripts/switcher/script.pyr   zScript.__init__(   s     	    c                     t        |       S )z&Returns the utilities for this script.r
   )r   s    r   getUtilitieszScript.getUtilities-   s     r   c                 Z    | j                   j                  |      ryt        |   |      S )z8Allows scripts to insist that they should become active.T)	utilities"isSwitcherSelectionChangeEventTyper   forceScriptActivationr   eventr   s     r   r   zScript.forceScriptActivation2   s*     >><<UCw,U33r   c                    | j                   j                  |j                        s(d}t        j                  t        j
                  |d       y| j                   j                  |      s(d}t        j                  t        j
                  |d       yd}t        j                  t        j
                  |d       | j                          t        j                         j                  | j                   j                  |j                               t        j                         j                  ||j                  d       | j                  | j                   j                  |j                        dd       y)z5Presents the currently selected item, if appropriate.z.SWITCHER: Event is not from switcher containerTFz1SWITCHER: Not treating event as selection change.z,SWITCHER: Treating event as selection change)resetStylesforce)r   isSwitcherContainersourcer   printMessage
LEVEL_INFOr   presentationInterruptr   
getManagerset_active_windowtopLevelObjectset_locus_of_focuspresentMessagegetSelectionName)r   r   msgs      r   _handleSwitcherEventzScript._handleSwitcherEvent:   s    ~~11%,,?BCu//d;~~@@GECu//d;<5++S$7""$  "44T^^5R5RSXS_S_5`a  "55eU\\5QDNN;;ELLI(-T 	 	;r   c                     t        j                  |      r=t        j                  |      s(d}t	        j
                  t        j                  |d       y t        | !  |||       y )Nz7SWITCHER: Not presenting newly-focused nameless window.T)	r   	is_windowr   get_namer   r#   r$   r   locusOfFocusChanged)r   r   oldLocusOfFocusnewLocusOfFocusr,   r   s        r   r1   zScript.locusOfFocusChangedQ   sO      1(:K:KO:\KCu//d;#E?OLr   c                 H    | j                  |      ryt        | 	  |       y)z?Callback for object:state-changed:focused accessibility events.N)r-   r   onFocusedChangedr   s     r   r5   zScript.onFocusedChangedY   #     $$U+ 'r   c                 H    | j                  |      ryt        | 	  |       y)z;Callback for object:property-change:accessible-name events.N)r-   r   onNameChangedr   s     r   r8   zScript.onNameChangeda   #     $$U+e$r   c                 H    | j                  |      ryt        | 	  |       y)z@Callback for object:state-changed:selected accessibility events.N)r-   r   onSelectedChangedr   s     r   r;   zScript.onSelectedChangedi   s#     $$U+!%(r   c                 H    | j                  |      ryt        | 	  |       y)z;Callback for object:selection-changed accessibility events.N)r-   r   onSelectionChangedr   s     r   r=   zScript.onSelectionChangedq   s#     $$U+"5)r   c                 H    | j                  |      ryt        | 	  |       y)z?Callback for object:state-changed:showing accessibility events.N)r-   r   onShowingChangedr   s     r   r?   zScript.onShowingChangedy   r6   r   c                 H    | j                  |      ryt        | 	  |       y)z:Callback for object:text-caret-moved accessibility events.N)r-   r   onCaretMovedr   s     r   rA   zScript.onCaretMoved   s#     $$U+U#r   c                 H    | j                  |      ryt        | 	  |       y)z=Callback for object:text-changed:delete accessibility events.N)r-   r   onTextDeletedr   s     r   rC   zScript.onTextDeleted   r9   r   c                 H    | j                  |      ryt        | 	  |       y)z=Callback for object:text-changed:insert accessibility events.N)r-   r   onTextInsertedr   s     r   rE   zScript.onTextInserted   s#     $$U+u%r   )__name__
__module____qualname__r   r   r   r-   r1   r5   r8   r;   r=   r?   rA   rC   rE   __classcell__)r   s   @r   r   r   &   sJ    

4.M(%)*($%& &r   r   N)__doc____id____version____date____copyright____license__orcar   r   orca.scriptsr   orca.ax_objectr   orca.ax_utilitiesr   script_utilitiesr   r    r   r   <module>rV      sG   * 71     # ) 'q&W^^ q&r   