
    g
f2t                     ^   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c 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! 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 LibreOffice.z$Id$z
$Revision$z$Date$zSCopyright (c) 2005-2009 Sun Microsystems Inc.Copyright (c) 2010-2013 The Orca Team.LGPL    NAtspiz2.0)r   )Gtk)AXObject)AXTable)AXText)AXUtilities   BrailleGenerator	Utilities
SpellCheckSpeechGeneratorc                        e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zdd
ZddZd Zd Zd Zd Zd Zd Zd Z fdZd Z fdZ fdZ fdZd fd	Z fdZ fdZ xZS )Scriptc                     t         j                  j                  | |       d| _        d| _        d| _        d| _        d| _        d| _        y)zCreates a new script for the given application.

        Arguments:
        - app: the application to create a script for.
        N)	defaultr   __init__&speakSpreadsheetCoordinatesCheckButton.alwaysSpeakSelectedSpreadsheetRangeCheckButtonskipBlankCellsCheckButtonspeakCellCoordinatesCheckButtonspeakCellHeadersCheckButtonspeakCellSpanCheckButton)selfapps     B/usr/lib/python3/dist-packages/orca/scripts/apps/soffice/script.pyr   zScript.__init__9   sH     	c*6:3>B;)-&/3,+/((,%    c                     t        |       S )z7Returns the braille generator for this script.
        r   r   s    r    getBrailleGeneratorzScript.getBrailleGeneratorI   s      %%r!   c                     t        |       S )z6Returns the speech generator for this script.
        r   r#   s    r    getSpeechGeneratorzScript.getSpeechGeneratorN   s     t$$r!   c                     t        |       S )z'Returns the spellcheck for this script.r   r#   s    r    getSpellCheckzScript.getSpellCheckS   s     $r!   c                     t        |       S )z&Returns the utilities for this script.r   r#   s    r    getUtilitieszScript.getUtilitiesX   s     r!   c                    t         j                  j                  |        t        j                  t        j
                  t        j                        | j                  d<   t        j                  t        j                  t        j                  d      | j                  d<   t        j                  t        j                  t        j                  d      | j                  d<   y)zDefines InputEventHandler fields for this script that can be
        called by the key and braille bindings. In this particular case,
        we just want to be able to add a handler to return the contents of
        the input line.
        presentInputLineHandlerFpanBrailleLeftHandlerpanBrailleRightHandlerN)r   r   setupInputEventHandlersinput_eventInputEventHandlerpresentInputLinecmdnamesPRESENT_INPUT_LINEinputEventHandlerspanBrailleLeftPAN_BRAILLE_LEFTpanBrailleRightPAN_BRAILLE_RIGHTr#   s    r    r/   zScript.setupInputEventHandlers]   s     	..t4))''++- 	 9: ))%%)) 	 78 ))&&** 	 89r!   c           	          t        j                         }|j                  t        j                  dt         j                  t         j
                  | j                  d                |S )z=Returns the application-specific keybindings for this script.ar,   )keybindingsKeyBindingsadd
KeyBindingdefaultModifierMaskORCA_MODIFIER_MASKr5   )r   keyBindingss     r    getAppKeyBindingszScript.getAppKeyBindingsv   sZ     "--/""//..''(AB	D	E r!   c                 	   t        j                         }|j                  d       t        j                  }t        j                         j                  d      }t         j                  j                  |      | _
        | j                  j                  |       |j                  | j                  dddd       t        j                  }t        j                         j                  d      }t         j                  j                  |      | _        | j                  j                  |       |j                  | j                  dddd       t        j                         }|j                  |dddd       t        j                   dt        j"                   d	      }|j%                  d
       |j'                  |       t         j(                  j+                  dddd      }|j-                  dddd       |j/                  |       t        j                         }|j/                  |       t        j0                  }t        j                         j                  d      }t         j                  j                  |      | _        | j2                  j                  |       |j                  | j2                  dddd       t        j4                  }t        j                         j                  d      }t         j                  j                  |      | _        | j6                  j                  |       |j                  | j6                  dddd       t        j8                  }t        j                         j                  d      }t         j                  j                  |      | _        | j:                  j                  |       |j                  | j:                  dddd       t        j<                  }t        j                         j                  d      }t         j                  j                  |      | _        | j>                  j                  |       |j                  | j>                  dddd       | j@                  jC                         }|j                  |dtE        |jG                               dd       |jI                          |S )zoReturn a GtkGrid containing the application unique configuration
        GUI items for the current application.   speakSpreadsheetCoordinatesr   r
   #alwaysSpeakSelectedSpreadsheetRange   z<b>z</b>)labelTg      ?speakCellCoordinatesspeakCellSpanspeakCellHeadersskipBlankCells   )%r   Gridset_border_width	guilabels"SPREADSHEET_SPEAK_CELL_COORDINATESsettings_manager
getManager
getSettingCheckButtonnew_with_mnemonicr   
set_activeattach SPREADSHEET_SPEAK_SELECTED_RANGEr   FrameLabelTABLE_NAVIGATIONset_use_markupset_label_widget	Alignmentnewset_paddingr>   TABLE_SPEAK_CELL_COORDINATESr   TABLE_SPEAK_CELL_SPANSr   TABLE_ANNOUNCE_CELL_HEADERr   TABLE_SKIP_BLANK_CELLSr   
spellcheckgetAppPreferencesGUIlenget_childrenshow_all)r   gridrI   value
tableFrametableAlignment	tableGridrg   s           r    rh   zScript.getAppPreferencesGUI   s    xxzb!<< ++-889VWOO--e4 	333>>uED??Aq!L:: ++-889^_OO--e4 	;;;FFuMDGGAqRSTYY[
J1a+		#i&@&@%A FGT"##E***3Q:""1aQ/~&HHJ	9%66 ++-889OPOO--e4 	,,,77>==q!QJ00 ++-88IOO--e4 	%%%007661aC44 ++-889KLOO--e4 	(((33E:991aAF00 ++-889IJOO--e4 	&&&11%877Aq!D__99;
J3t'8'8':#;QBr!   c                    | j                   j                         | j                  j                         | j                  j                         | j                  j                         | j
                  j                         | j                  j                         d}|j                  | j                  j                                |S )z7Returns a dictionary with the app-specific preferences.)rK   rL   rM   rJ   rF   rG   )
r   
get_activer   r   r   r   r   updaterg   getPreferencesFromGUI)r   prefss     r    rt   zScript.getPreferencesFromGUI   s    
 --88:00;;=..99;44??A;;FFHCCNNP
 	T__::<=r!   c                    t        j                         j                         }| j                  j	                         sF| j                         r6| j                  j                  |      s| j                  j                  |      s!t        j                  j                  | ||      S t        j                  |      d   }d|k  rt        j                  ||dz
         y| j                  j                  |      }|<t        j                         j!                  d|d       t        j"                  |       yt        j                  j                  | ||      S )dIn document content, we want to use the panning keys to browse the
        entire document.
        r
   r   TNFnotify_script)focus_managerrT   get_locus_of_focusflatReviewPresenter	is_activeisBrailleBeginningShowing	utilitiesisSpreadSheetCell
isTextArear   r   r6   r   get_line_at_offsetset_caret_offsetfindPreviousObjectset_locus_of_focusset_caret_offset_to_end)r   
inputEvent	panAmountfocusstartOffsetobjs         r    r6   zScript.panBrailleLeft   s   
 ((*==?##--/002nn..u5..++E2>>00z9MM//6q9{?##E;?;nn//6?$$&99$SX9Y**3/~~,,T:yIIr!   c                    t        j                         j                         }| j                  j	                         sF| j                         r6| j                  j                  |      s| j                  j                  |      s!t        j                  j                  | ||      S t        j                  |      d   }|t        j                  |      k  rt        j                  ||       y| j                  j!                  |      }|<t        j                         j#                  d|d       t        j$                  |       yt        j                  j                  | ||      S )rw   rH   TNFrx   )rz   rT   r{   r|   r}   isBrailleEndShowingr   r   r   r   r   r8   r   r   get_character_countr   findNextObjectr   set_caret_offset_to_start)r   r   r   r   	endOffsetr   s         r    r8   zScript.panBrailleRight   s   
 ((*==?##--/**,nn..u5..++E2>>11$
INN--e4Q7	v11%88##E95nn++E2?$$&99$SX9Y,,S1~~--dJ	JJr!   c                 h   t        j                         j                         }| j                  j	                  |      s | j                  t        j                         yt        j                  |      }|s-| j                  j                  |      xs t        j                  }| j                  |       y)zPresents the contents of the input line for the current cell.

        Arguments:
        - inputEvent: if not None, the input event that caused this action.
        T)rz   rT   r{   r   r   presentMessagemessagesSPREADSHEET_NOT_IN_Ar   get_cell_formuladisplayedTextEMPTY)r   r   r   texts       r    r2   zScript.presentInputLine  s     ((*==?~~//6 = =>''.>>//6H(..DD!r!   c                 ~   | j                   r3|j                  j                  d      rd| _         | j                          y| j                  j                         r| j                  j                          | j                  j                  |      rI| j                  j                  |      s.| j                  |       | j                  j                  d       yt        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                   t        j                  j"                  g}| j$                  j'                  ||      rzt)        j*                  |      }t)        j,                  |t.        j0                        D ]<  }t)        j,                  |t.        j2                        D ]  }| j5                  |        > n|r|rt)        j6                  |      t        j                  j8                  k(  r_t)        j6                  |      t        j                  j8                  k(  r.||k7  r(| j$                  j;                         \  }}	|dk(  r5t=        j>                         jA                  d      r| jC                  |       y| j$                  j;                         \  }
}	|	tD        jF                  z  }|	tD        jH                  z  }|
dv r|r|s| j$                  jK                  |      }|ri| jL                  jO                  ||	      }| jQ                  ||
       | j                  |       tS        jT                  |      }| jW                  ||       ytX        jZ                  j]                  | |||       y)a  Called when the visual object with focus changes.

        Arguments:
        - event: if not None, the Event that caused the change
        - oldLocusOfFocus: Accessible that is the old locus of focus
        - newLocusOfFocus: Accessible that is the new locus of focus
        zobject:state-changed:focusedFNT)includeLabelReturnenableEchoByWord)UpDown)r   string)voice)/findCommandRuntype
startswithfindr|   r}   quitrg   isSuggestionsItemupdateBraillepresentSuggestionListItemr   RoleSCROLL_PANEPANEL	ROOT_PANEFRAMEAPPLICATIONr   hasMatchingHierarchyr   
get_parentiter_childrenr	   is_page_tab_listis_selectedpresentObjectget_role	PARAGRAPHlastKeyAndModifiersrS   rT   rU   echoPreviousWordr<   CTRL_MODIFIER_MASKSHIFT_MODIFIER_MASKr   speechGeneratorr   speakMessager   get_caret_offset_saveLastCursorPositionr   r   locusOfFocusChanged)r   eventoldLocusOfFocusnewLocusOfFocus	rolesListparentchildtablastKeymodsevent_stringisControlKey
isShiftKeyr   r   offsets                   r    r   zScript.locusOfFocusChanged#  s    ::  !?@"'DIIK##--/$$))+??,,_=??44_E/OO5545H ZZ++ZZ%%ZZ%%ZZ))ZZ%%ZZ++-	 >>..	J((9F!//8T8TU ,#11%9P9PQ ,C&&s+,,   1UZZ5I5II  1UZZ5I5II/1 NN>>@MGT("'7'B'B'D'O'OPb'c%%o6
 "&!C!C!EL$+"@"@@L ? ??J~-,z55oF 0066?SY6ZE%%fE%:&&7#44_EF00H 	**4+:O	Mr!   c                     t        j                  |j                        s(d}t        j                  t        j
                  |d       y| j                  ryt        j                  j                  | |       y)z>Callback for object:state-changed:active accessibility events.z"SOFFICE: Event source lacks parentTN)
r   r   sourcedebugprintMessage
LEVEL_INFOr   r   r   onActiveChanged)r   r   msgs      r    r   zScript.onActiveChangedm  sX     ""5<<06Cu//d; &&tU3r!   c                 Z   t        j                         j                         }| j                  j	                  |j
                  |      ry|j                  | j                  j                         k(  rt        j                  |j                        r[t        j                         j                  ||j
                  d       | j                  |       | j                  j                          y| j                  j                          y| j                  j                  |j
                        rat        j                  |j
                        sBt        j                  |j                        s#d}t!        j"                  |j                  d|       t$        j&                  j)                  | |       y)zCalled when an object who manages its own descendants detects a
        change in one of its children.

        Arguments:
        - event: the Event
        NFzNSOFFICE: Neither source nor child have focused state. Clearing cache on table.)rz   rT   r{   r   isSameObjectany_datar   rg   getSuggestionsListr	   
is_focusedr   r   r   presentErrorDetailsr   r   clear_cacher   r   onActiveDescendantChanged)r   r   r   r   s       r    r   z Script.onActiveDescendantChanged|  s"    ((*==?>>&&u~~u=<<4??==??%%ell3((*==eU^^UZ[""5)99;  335>>++ENN;))%..9))%,,7bC  uc:00u=r!   c                    | j                   j                  |j                        r/t        j                         j                  ||j                         yt        j                  d       t        j                  |j                        rt        j                  d       t        j                  |j                        r'| j                  j                  dd      }| j                  j                  dd      }|dk  s|dk  ryt        j                         j                         r/t        j                         j                  ||j                  d       | j                   j!                  |       t        j"                  |j                        }||k(  r!t$        j&                  }t$        j(                  }n t$        j*                  }t$        j,                  }| j/                  ||       yt0        j2                  j5                  | |       y)z>Callback for object:children-changed:add accessibility events.Nzchildren-changed event.lastRow
lastColumnr   F)r   r   r   rz   rT   r   r   clear_cache_nowr	   is_table_relatedr   r   is_last_cellpointOfReferencegetfocus_is_deadhandleUndoTextEventget_row_countr   TABLE_ROW_DELETED_FROM_ENDTABLE_ROW_DELETEDTABLE_ROW_INSERTED_AT_ENDTABLE_ROW_INSERTEDr   r   r   onChildrenAdded)r   r   	activeRow	activeColrowCountfullbriefs          r    r   zScript.onChildrenAdded  sr    >>++ENN;$$&99%P  !:;''5##$=>/--11)R@I--11,CI1}	A'')779((*==eU\\SXYNN..u5,,U\\:HH$:: 2299 33e,&&tU3r!   c                    t        j                         j                         }| j                  j	                  ||j
                        ry| j                  j                  |j
                        r/t        j                         j                  ||j
                         yt        j                  |j
                        }|t        j                  j                  t        j                  j                  fv rM| j                  j                  |j
                        }|r&t        j                         j                  ||d       y|t        j                  j                  t        j                  j                  fv r/t        j                         j                  ||j
                         y|t        j                  j                   k(  r/t        j                         j                  ||j
                         y|t        j                  j"                  k(  r/t        j                         j                  ||j
                         y|t        j                  j$                  k(  r/t        j                         j                  ||j
                         y|t        j                  j&                  k(  rOt        j(                  |j
                        r/t        j                         j                  ||j
                         yyy)z)Callback for focus: accessibility events.NT)rz   rT   r{   r   r   r   isFocusableLabelr   r   r   r   r   TEXTLISTcontainingComboBoxPASSWORD_TEXTPUSH_BUTTONTOGGLE_BUTTON	COMBO_BOXr   get_name)r   r   r   rolecomboBoxs        r    onFocuszScript.onFocus  s    ((*==?>>&&uell;>>**5<<8$$&99%N  .EJJOOUZZ__55~~88FH((*==eXtT EJJOOUZZ%=%=>>$$&99%N 5::)))$$&99%N 5::+++$$&99%N 5::'''$$&99%N 5::###(9(9%,,(G$$&99%N )H#r!   c                    | j                   ry| j                  j                         r'd}t        j                  t        j
                  |d       |j                  syt        j                  |j                        }|t        j                  j                  t        j                  j                  fv rM| j                  j                  |j                        }|r&t!        j"                         j%                  ||d       yt        j&                  |j                        }|rQt        j                  |      t        j                  j(                  k(  r!t*        j,                  j/                  | |       yt        j                  j0                  t        j                  j2                  g}||v ry|t        j                  j4                  k(  ry| j                  j7                  |j                        ry|t        j                  j8                  k(  r| j:                  j=                  dd      \  }}| j                  j?                  |      \  }	}
}|	|
k7  ry| j                  jA                         \  }}|dv r0t!        j"                         j%                  ||j                  d       y| j                  jC                  |j                        rt!        j"                         jE                         rWd}t        j                  t        j
                  |d       t!        j"                         j%                  ||j                  d       yt!        j"                         jG                         }tI        jJ                  |      stI        jL                  |      rWd	}t        j                  t        j
                  |d       t!        j"                         j%                  ||j                  d       yt*        j,                  j/                  | |       y)
z?Callback for object:state-changed:focused accessibility events.N>SOFFICE: Event ignored: Last input event was table navigation.TlastCursorPosition)Nr   )LeftRightFz7SOFFICE: Event believed to be post-editing focus claim.zESOFFICE: Event believed to be post-editing focus claim based on role.)'	_inSayAlltableNavigator'last_input_event_was_navigation_commandr   r   r   detail1r   r   r   r   r   r   r   r   r   rz   rT   r   r   TOOL_BARr   r   onFocusedChangedFILLERr   MENU_flowsFromOrToSelectionr   r   r   getCachedTextSelectionr   isSpreadSheetTabler   r{   r	   is_paragraphis_table_cell)r   r   r   r   r   r   ignoreRolesr   r   startendr   	keyStringr   r   s                  r    r
  zScript.onFocusedChanged  s    >>FFHRCu//d;}}  .EJJOOUZZ__55~~88FH((*==eXtT$$U\\2h''/5::3F3FFNN++D%8 zz((%***:*:;; 5::??">>11%,,?5::'''//334H*UKC!%!F!Fs!KE3|"nn@@BOIt--((*==eU\\SXY>>,,U\\:'')779O""5#3#3S$?((*==eU\\SXY!,,.AACE''.+2K2KE2R]""5#3#3S$?((*==eU\\SXY''e4r!   c                    |j                   dk(  ryt        j                  |j                        t        j
                  j                  k(  rt        j                  |j                        sgt        j                  |j                  dd       t        j                  |j                        r'd}t        j                  t        j                  |d       | j                  j                  |j                        ry| j                  j!                         r(d}t        j                  t        j                  |d       y| j                  j#                  t%        j&                         j)                               rM| j                  j+                  |j                        s(d}t        j                  t        j                  |d       yt,        | ]  |       y)	z:Callback for object:text-caret-moved accessibility events.r   NFz8Caret-moved event from object which lacks focused state.zFSOFFICE: Clearing cache was needed due to missing state-changed event.Tr  z8SOFFICE: Event ignored: Source is not cell being edited.)r  r   r   r   r   r   r   r	   r   r   r   r   r   r   r  r  r  r   rz   rT   r{   isCellBeingEditedsuperonCaretMovedr   r   r   	__class__s      r    r  zScript.onCaretMoved*  sE    ==BU\\*ejj.B.BB))%,,7  !&![] %%ell3^""5#3#3S$?>>11%,,?FFHRCu//d;>>++M,D,D,F,Y,Y,[\>>33ELLAP""5#3#3S$?U#r!   c                    |j                   }t        j                  |      }t        j                  t        j                  |            }|t        j
                  j                  t        j
                  j                  fvs|t        j
                  j                  k(  s!t        j                  j                  | |       y| j                  j                  |      }| j                  j                  t        j                         j!                               }||k7  ryd}t#        j$                  |      rd}n<| j                  j'                         \  }}	g d}
|	t(        j*                  z  }|xr ||
v}|r| j-                  |dd       yy)z?Callback for object:state-changed:checked accessibility events.NFT)	r   r   r  r  Page_Up	Page_DownHomeEndN)alreadyFocused	interrupt)r   r   r   r   r   r   r   r   r	  r   r   onCheckedChangedr   topLevelObjectrz   rT   r{   r	   r   r   r<   COMMAND_MODIFIER_MASKr   )r   r   r   r   
parentRolesourceWindowfocusWindowweToggledItr  r   navKeys
wasCommands               r    r$  zScript.onCheckedChangedJ  s:    ll  %&&x':':3'?@


00%**2H2HII

 3 33NN++D%8~~44S9nn33M4L4L4N4a4a4cd;& !!#&K"nn@@BOIt+G A AAJ$A')AKs44H r!   c                 &   d\  }}| j                   j                  |      r8d}t        j                  t        j                  |d       t
        j                  }nm| j                   j                  |      rRd}t        j                  t        j                  |d       | j                   j                  |      rt
        j                  }|s|r8| j                  ||       | j                   j                  |j                         yt        | 9  |       y)z@Callback for object:state-changed:selected accessibility events.) r.  z?SOFFICE: Change is believed to be due to deleting selected textTzCSOFFICE: Selection is believed to be due to restoring selected textN)r   isSelectedTextDeletionEventr   r   r   r   SELECTION_DELETEDisSelectedTextRestoredEventr   SELECTION_RESTOREDr   updateCachedTextSelectionr   r  onSelectedChanged)r   r   r   r   r   r  s        r    r4  zScript.onSelectedChangedh  s     e>>55e<SCu//d;--D^^77>WCu//d;~~11%8225e,NN44U\\B!%(r!   c                    | j                   j                  |j                        rt        j                         j                  d      ryt        j                         j                  d      r&| j                   j                  |j                         y| j                   j                  |j                        ry| j                   j                  |j                         y|j                  | j                  j                         k(  rt        j                         j                         r(d}t        j                  t        j                  |d       yt!        j"                  |j                        ret        j                         j%                  ||j&                  d       | j)                  |j&                         | j                  j+                          y| j                  j-                          y| j                   j/                  |      st0        | e  |       y| j                   j5                  |j                        }t7        |      dk(  r| j                   j9                  |j                        | j                   j9                  t        j                         j;                               k(  r)t        j                         j%                  ||d   d       yyy)	z;Callback for object:selection-changed accessibility events.onlySpeakDisplayedTextNrG   z6SOFFICE: Not presenting because locusOfFocus is windowTFr
   r   )r   r  r   rS   rT   rU   speakSelectedCellRange!handleRowAndColumnSelectionChangehandleCellSelectionChangerg   r   rz   focus_is_active_windowr   r   r   r	   r   r   r   r   r   r   isComboBoxSelectionChanger  onSelectionChangedselectedChildrenri   r   r{   )r   r   r   r=  r  s       r    r<  zScript.onSelectionChanged}  s    >>,,U\\:**,778PQ**,778]^55ellC~~??MNN44U\\B<<4??==??'')@@BN""5#3#3S$?  ''5((*==eU^^UZ[""5>>299;  335~~77>G&u->>::5<<H A%~~00>~~001I1I1K1^1^1`ab$$&99%AQRSATVZ[b &r!   c                 8   | j                   j                  |      r(d}t        j                  t        j                  |d       yt        j                  |j                        r(d}t        j                  t        j                  |d       yt        | %  |       y)z@Callback for object:text-selection-changed accessibility events.z0SOFFICE: Event is believed to be combo box noiseTNz)SOFFICE: Ignoring event from dead source.)
r   isComboBoxNoiser   r   r   r   is_deadr   r  onTextSelectionChangedr  s      r    rA  zScript.onTextSelectionChanged  sv     >>))%0DCu//d;ELL)=Cu//d;&u-r!   c                    t        j                  t        j                  |            t        j                  j
                  k(  rDt        j                  |      dk  r,t        j                  |d      \  }}}|dd dk(  r|dd }|d|gS t        | )  ||||      }t        j                  |      s| j                  j                  |      |d<   |S )z<To-be-removed. Returns the string, caretOffset, startOffset.r   r   N
)r   r   r   r   r   r   r   r   r   r  getTextLineAtCaretr	   r   r   r   )r   r   r   r   r   
lineStringtextLiner  s          r    rD  zScript.getTextLineAtCaret  s     X0056%**:N:NN&&s+a/5;5N5NsTU5V2
K bc?d*!+CRJ"A{337-c6;	R%%c*..66s;HQKr!   c                    t         |   |       | j                  j                  |j                        syt        j                  |j                  d      }t        j                  |      t        j                  j                  k(  r%t        j                         j                  ||d       | j                  j                          y)z2Callback for window:activate accessibility events.Nr   F)r  onWindowActivatedrg   isCheckWindowr   r   	get_childr   r   r   DIALOGrz   rT   r   r   )r   r   r   r  s      r    rH  zScript.onWindowActivated  s     	!%(,,U\\:""5<<3U#uzz'8'88$$&99%N++-r!   c                 X    t         |   |       | j                  j                          y)z4Callback for window:deactivate accessibility events.N)r  onWindowDeactivatedrg   
deactivate)r   r   r  s     r    rM  zScript.onWindowDeactivated  s"     	#E*""$r!   )Nr   )NNN)__name__
__module____qualname__r   r$   r&   r(   r*   r/   rC   rh   rt   r6   r8   r2   r   r   r   r   r   r
  r  r$  r4  r<  rA  rD  rH  rM  __classcell__)r  s   @r    r   r   7   s    - &
%
 

2BH*J2K2&HMT4>:4B.`>5@$@I<)*"\H.(.% %r!   r   )/__doc____id____version____date____copyright____license__girequire_versiongi.repositoryr   r   orca.cmdnamesr3   
orca.debugr   orca.focus_managerrz   orca.scripts.defaultscriptsr   orca.guilabelsrQ   orca.keybindingsr<   orca.input_eventr0   orca.messagesr   orca.settings_managerrS   orca.ax_objectr   orca.ax_tabler   orca.ax_textr   orca.ax_utilitiesr	   braille_generatorr   script_utilitiesr   rg   r   speech_generatorr   r    r!   r    <module>rn     s   * %9 	   7E "      * & & " & &   0 # !  ) / ' " -^
%W^^ ^
%r!   