
    g
fL                         d Z 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
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Custom script for SeaMonkey.z$Id$z
$Revision$z$Date$zCopyright (c) 2016 Igalia, S.L.LGPL    NAtspiz2.0)r   )cmdnames)debug)focus_manager)input_event)AXObject)AXTable)Geckoc                   l     e Zd Z fdZ fdZ fdZ fdZd	 fd	Zd
 fd	Zd
 fd	Z	d	 fd	Z
 xZS )Scriptc                 $    t         |   |       y N)super__init__)selfapp	__class__s     D/usr/lib/python3/dist-packages/orca/scripts/apps/SeaMonkey/script.pyr   zScript.__init__-   s        c                    t         |           t        j                  t        j
                  t        j                        | j                  d<   t        j                  t        j                  t        j                        | j                  d<   t        j                  t        j                  t        j                        | j                  d<   y )NtogglePresentationModeHandlerenableStickyFocusModeHandlerenableStickyBrowseModeHandler)r   setupInputEventHandlersr   InputEventHandlerr   togglePresentationModer   TOGGLE_PRESENTATION_MODEinputEventHandlersenableStickyFocusModeSET_FOCUS_MODE_STICKYenableStickyBrowseModeSET_BROWSE_MODE_STICKY)r   r   s    r   r   zScript.setupInputEventHandlers0   s    ') ))--113 	 ?@ )),,..0 	 >? ))--//1 	 ?@r   c                    | j                   j                  |j                        r(d}t        j                  t        j
                  |d       yt        j                  t        j                         j                               }|rC| j                   j                  |      s(d}t        j                  t        j
                  |d       yt        | 5  |       y)z<Callback for object:state-changed:busy accessibility events.z5SEAMONKEY: Ignoring, event source is content editableTNz5SEAMONKEY: Ignoring, table is not text-document table)	utilities$isContentEditableWithEmbeddedObjectssourcer   printMessage
LEVEL_INFOr
   	get_tabler   
getManagerget_locus_of_focusisTextDocumentTabler   onBusyChanged)r   eventmsgtabler   s       r   r.   zScript.onBusyChangedB   s     >>>>u||LICu//d;!!-":":"<"O"O"QR;;EBICu//d;e$r   c                    | j                   j                  |j                        ryt        j                  t        j                         j                               }|t        j                  j                  k7  s| j                   j                         st        | 1  |       yt        j                  |j                        t        j                  j                  k(  rid}t        j                  t        j                   |d       | j                   j#                         r(d}t        j                  t        j                   |d       yt        | 1  |       y)z)Callback for focus: accessibility events.Nz>SEAMONKEY: Non-document menu claimed focus from document entryTz=SEAMONKEY: Ignoring, believed to be result of printable input)r%   inDocumentContentr'   r	   get_roler   r+   r,   r   RoleENTRYr   onFocusMENUr   r(   r)   lastInputEventWasPrintableKey)r   r/   	focusRoler0   r   s       r   r7   zScript.onFocusR   s     >>++ELL9%%m&>&>&@&S&S&UV	

(((0P0P0RGOE"U\\*ejjoo=RCu//d;~~;;=U""5#3#3S$?r   c                    | j                   j                  |      r*d|g}t        j                  t        j                  |d       yd|dg}t        j                  t        j                  |d       t
        |   ||      S )Nz0SEAMONKEY: Using focus mode for editable messageTz
SEAMONKEY:zis not an editable message.)r%   isEditableMessager   printTokensr)   r   useFocusMode)r   objprevObjtokensr   s       r   r>   zScript.useFocusModei   sq    >>++C0H#NFe..=%BC%**FD9w#C11r   c                     | j                   j                  t        j                         j	                               ry t
        |   ||       y r   )r%   r<   r   r+   r,   r   r"   r   
inputEventforceMessager   s      r   r"   zScript.enableStickyBrowseModes   s9    >>++M,D,D,F,Y,Y,[\&z<@r   c                     | j                   j                  t        j                         j	                               ry t
        |   ||       y r   )r%   r<   r   r+   r,   r   r    rC   s      r   r    zScript.enableStickyFocusModey   s9    >>++M,D,D,F,Y,Y,[\%j,?r   c                     | j                   r<| j                  j                  t        j                         j                               ry t        |   ||       y r   )_inFocusModer%   r<   r   r+   r,   r   r   )r   rD   documentFramer   s      r   r   zScript.togglePresentationMode   sB    ~~//0H0H0J0]0]0_`&z=Ar   r   )F)__name__
__module____qualname__r   r   r.   r7   r>   r"   r    r   __classcell__)r   s   @r   r   r   +   s4    1$% .2A@B Br   r   )__doc____id____version____date____copyright____license__girequire_versiongi.repositoryr   orcar   r   r   r   orca.ax_objectr	   orca.ax_tabler
   orca.scripts.toolkitsr   r    r   r   <module>r\      sd   , #1 	   7E "      # ! 'YBU\\ YBr   