+
    Qip c                  s   R t ^ RIHt RtRtRtRtRt^ RIt^ RI	H
t
HtHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH t  ^ RI!H"t" ^ RI#H$t$ ^ RI%H&t& ^ R I'H(t( ^ R!I)H*t* ^ R"I+H,t, ^ R#I-H.t. ^ R$I/H0t0 ]'       d&   ^ RI1t1]1Pd                  ! R%R&4       ^ R'I3H4t4 ^ R(I5H6t6H7t7  ! R) R*]Pp                  4      t8R# )+:The default Script for presenting information to the user.)annotationsz$Id$z
$Revision$z$Date$zQCopyright (c) 2004-2009 Sun Microsystems Inc.Copyright (c) 2011-2025 Igalia, S.L.ZLGPLN)AnyCallableTYPE_CHECKING)braille)cmdnames)debug)event_manager)focus_manager)input_event_manager)input_event)keybindings)messages)orca)orca_gui_prefs)orca_modifier_manager)	phonnames)script)script_manager)settings)settings_manager)sound)speech)speech_and_verbosity_manager)ACSS)
AXDocument)AXObject)AXTable)AXText)AXUtilities)TextEventReason)AXValueAtspiz2.0)r!   )IconTonec                  s>  a  ] tR t^RtRtR V 3R lltR R ltR R ltR R	 ltRR
 R llt	R R lt
R R ltR R ltR R ltR R ltRR R lltRR R lltRR R lltR R ltR R ltR  tR! R" ltR# R$ ltRR& R' lltRR( R) lltRR* R+ lltRR, R- lltRR. R/ lltRR0 R1 lltRR2 R3 lltRR4 R5 lltRR6 R7 lltRR8 R9 llt RR: R; llt!RR< R= llt"RR> R? llt#RR@ RA llt$RB RC lt%RD RE lt&RF RG lt'RH RI lt(RJ RK lt)RL RM lt*RN RO lt+RP RQ lt,RR RS lt-RT RU lt.RV RW lt/RX RY lt0RZ R[ lt1R\ R] lt2R^ R_ lt3R` Ra lt4Rb Rc lt5Rd Re lt6Rf Rg lt7Rh Ri lt8Rj Rk lt9Rl Rm lt:Rn Ro lt;Rp Rq lt<Rr Rs lt=Rt Ru lt>Rv Rw lt?Rx Ry lt@Rz R{ ltAR| R} ltBR~ R ltCR R ltDR R ltER R ltFR R ltGR R ltHR R ltIR R ltJR%]KP                  3R R lltMR R ltNRR R lltOR R ltPR R ltQR R ltRR R ltSR R ltTR R ltURR R lltVRR ltWR R ltXRR R lltY]ZRR R ll4       t[]ZRR R ll4       t\R R lt]R R lt^RR R llt_RR R llt`RR R lltaRR R lltbRR R lltcR R ltdR R lteR R ltfR R ltgRthV ;ti# )Scriptr    c                    V ^8  d   QhRRRR/# )   appAtspi.AccessiblereturnNone Zformat   "9/usr/lib/python3.14/site-packages/orca/scripts/default.py__annotate__Script.__annotate__U   s     $ $, $ $    c                	s>   < \         SV `  V4       \        .V n        R # N)Zsuper__init__intgrab_ids)selfr'   	__class__s   &&r.   r3   ZScript.__init__U   s    "er1   c                   V ^8  d   QhRR/# r&   r)   r*   r+   r,   r-   r.   r/   r0   Y   s     ]\ ]\D ]\r1   c                s,   \         P                  ! \        P                  \        P
                  4      V P                  R&   \         P                  ! \        P                  \        P                  4      V P                  R&   \         P                  ! \        P                  \        P                  4      V P                  R&   \         P                  ! \        P                  \        P                  R4      V P                  R&   \         P                  ! \        P                  \        P                  R4      V P                  R&   \         P                  ! \        P                  \        P                   4      V P                  R&   \         P                  ! \        P"                  \        P$                  4      V P                  R&   \         P                  ! \        P&                  \        P(                  4      V P                  R	&   \         P                  ! \        P*                  \        P,                  4      V P                  R
&   \         P                  ! \        P.                  \        P0                  4      V P                  R&   \         P                  ! \        P2                  \        P4                  4      V P                  R&   \         P                  ! \        P6                  \        P8                  4      V P                  R&   \         P                  ! \        P:                  \        P<                  4      V P                  R&   \         P                  ! \        P>                  \        P@                  4      V P                  R&   V P                  PC                  V PE                  4       PG                  4       4       V P                  PC                  V PI                  4       PG                  4       4       V P                  PC                  V PK                  4       PG                  4       4       V P                  PC                  V PM                  4       PG                  4       4       V P                  PC                  V PO                  4       PG                  4       4       V P                  PC                  V PQ                  4       PG                  4       4       V P                  PC                  V PS                  4       PG                  4       4       V P                  PC                  V PT                  PG                  4       4       V P                  PC                  V PW                  4       PG                  4       4       V P                  PC                  V PY                  4       PG                  4       4       V P                  PC                  V P[                  4       PG                  4       4       V P                  PC                  V P]                  4       PG                  4       4       V P                  PC                  V P_                  4       PG                  4       4       V P                  PC                  V Pa                  4       PG                  4       4       V P                  PC                  V Pc                  4       PG                  4       4       V P                  PC                  V Pe                  4       PG                  4       4       V P                  PC                  V Pg                  4       PG                  4       4       V P                  PC                  V Pi                  4       PG                  4       4       V P                  PC                  V Pk                  4       PG                  4       4       R# )z1Defines the input event handlers for this script.routePointerToItemHandlerleftClickReviewItemHandlerrightClickReviewItemHandlerFpanBrailleLeftHandlerpanBrailleRightHandlergoBrailleHomeHandlercontractedBrailleHandlerprocessRoutingKeyHandlerprocessBrailleCutBeginHandlerprocessBrailleCutLineHandlershutdownHandlerpreferencesSettingsHandlerappPreferencesSettingsHandlercycleSettingsProfileHandlerN)6r   ZInputEventHandlerr$   route_pointer_to_itemr   ZROUTE_POINTER_TO_ITEMinput_event_handlersleft_click_itemZLEFT_CLICK_REVIEW_ITEMright_click_itemZRIGHT_CLICK_REVIEW_ITEMpan_braille_leftZPAN_BRAILLE_LEFTpan_braille_rightZPAN_BRAILLE_RIGHTgo_braille_homeZGO_BRAILLE_HOMEset_contracted_brailleZSET_CONTRACTED_BRAILLEprocess_routing_keyZPROCESS_ROUTING_KEYprocess_braille_cut_beginZPROCESS_BRAILLE_CUT_BEGINprocess_braille_cut_lineZPROCESS_BRAILLE_CUT_LINE	quit_orcaZ	QUIT_ORCAshow_preferences_guiZSHOW_PREFERENCES_GUIshow_app_preferences_guiZSHOW_APP_PREFERENCES_GUIcycle_settings_profileZCYCLE_SETTINGS_PROFILEupdateget_clipboard_presenterZget_handlersget_notification_presenterget_flat_review_finderget_flat_review_presenter get_speech_and_verbosity_managerget_bypass_mode_manager get_system_information_presenter	bookmarksget_object_navigatorget_say_all_presenterget_caret_navigatorget_structural_navigatorget_table_navigatorget_typing_echo_presenterget_where_am_i_presenterget_learn_mode_presenterget_mouse_reviewerget_action_presenterget_debugging_tools_managerr6      &r.   setup_input_event_handlersZ!Script.setup_input_event_handlersY   s    )),,..0 	!!"=> ))&&//1 	!!">? **''002 	!!"?@ ))'')) 	!!"9: ))((** 	!!":; ))&&((* 	!!"89 ))--//1 	!!"<= ))**,,. 	!!"<= ))00224 	!!"AB ))//113 	!!"@A ))  ""$ 	!!"34 ))++--/ 	!!">? ))//113 	!!"AB ))--//1 	!!"?@
 	!!(()E)E)G)T)T)VW!!(()H)H)J)W)W)YZ!!(()D)D)F)S)S)UV!!(()G)G)I)V)V)XY!!(()N)N)P)])])_`!!(()E)E)G)T)T)VW!!(()N)N)P)])])_`!!(()D)D)FG!!(()B)B)D)Q)Q)ST!!(()C)C)E)R)R)TU!!(()A)A)C)P)P)RS!!(()F)F)H)U)U)WX!!(()A)A)C)P)P)RS!!(()G)G)I)V)V)XY!!(()F)F)H)U)U)WX!!(()F)F)H)U)U)WX!!(()@)@)B)O)O)QR!!(()B)B)D)Q)Q)ST!!(()I)I)K)X)X)Z[r1   c               r8   )r&   r)   zdict[str, Callable]r+   r,   r-   r.   r/   r0      s     * *2 *r1   c                s   \         P                  P                  V 4      pV P                  VR&   V P                  VR&   V P
                  VR&   V P                  VR&   V P                  VR&   V P                  VR&   V P                  VR&   V P                  VR&   V P                  VR	&   V P                  VR
&   V P                  VR&   V P                  VR&   V P                  VR&   V P                   VR&   V P"                  VR&   V P$                  VR&   V P&                  VR&   V P(                  VR&   V P*                  VR&   V P,                  VR&   V P.                  VR&   V P0                  VR&   V P2                  VR&   V P4                  VR&   V P6                  VR&   V P8                  VR&   V P:                  VR&   V P<                  VR&   V P>                  VR&   V P@                  VR&   V PB                  VR&   V PD                  VR &   V PF                  VR!&   V P"                  VR"&   V PH                  VR#&   V PJ                  VR$&   V PL                  VR%&   V PN                  VR&&   V# )'z3Sets up the AT-SPI event listeners for this script.zdocument:attributes-changedzdocument:reloadzdocument:load-completezdocument:load-stoppedzdocument:page-changedzmouse:buttonzobject:announcementz object:active-descendant-changedzobject:attributes-changedzobject:children-changed:addzobject:children-changed:removezobject:column-reorderedz-object:property-change:accessible-descriptionz&object:property-change:accessible-namez'object:property-change:accessible-valuezobject:row-reorderedzobject:selection-changedzobject:state-changed:activezobject:state-changed:busyzobject:state-changed:checkedzobject:state-changed:expandedzobject:state-changed:focusedz"object:state-changed:indeterminatez"object:state-changed:invalid-entryzobject:state-changed:pressedzobject:state-changed:selectedzobject:state-changed:sensitivezobject:state-changed:showingzobject:text-attributes-changedzobject:text-caret-movedzobject:text-changed:deletezobject:text-changed:insertzobject:text-selection-changedzobject:value-changedzwindow:activatezwindow:createzwindow:deactivatezwindow:destroy)(r   r$   get_listenerson_document_attributes_changedon_document_reloadon_document_load_completeon_document_load_stoppedon_document_page_changedon_mouse_buttonon_announcementon_active_descendant_changedon_object_attributes_changedon_children_addedon_children_removedon_column_reorderedon_description_changedon_name_changedon_value_changedon_row_reorderedon_selection_changedon_active_changedon_busy_changedon_checked_changedon_expanded_changedon_focused_changedon_indeterminate_changedon_invalid_entry_changedon_pressed_changedon_selected_changedon_sensitive_changedon_showing_changedon_text_attributes_changedon_caret_movedon_text_deletedon_text_insertedon_text_selection_changedon_window_activatedon_window_createdon_window_deactivatedon_window_destroyed)r6   Z	listeners   & r.   rn   ZScript.get_listeners   s    MM//5	373V3V	/0'+'>'>	#$.2.L.L	*+-1-J-J	)*-1-J-J	)*$($8$8	.!+/+?+?	'(8<8Y8Y	45151R1R	-.373I3I	/06:6N6N	23/3/G/G	+,EIE`E`	AB>B>R>R	:;@D@U@U	;<,0,A,A	()040I0I	,-373I3I	/0151E1E	-.484K4K	01595M5M	12484K4K	01:>:W:W	67:>:W:W	67484K4K	01595M5M	126:6O6O	23484K4K	016:6U6U	23/3/B/B	+,262F2F	./262G2G	./595S5S	12,0,A,A	()'+'?'?	#$%)%;%;	/")-)C)C	%&&*&>&>	"#r1   c               r8   r&   r)   keybindings.KeyBindingsr+   r,   r-   r.   r/   r0      s     [ [)@ [r1   c                	s	   \         P                  ! 4       p\        P                  ! 4       P	                  R 4      pV\
        P                  8H  pV P                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P!                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P#                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P%                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P'                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P)                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P+                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P-                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P.                  P                  RVR7      pVP                   F  pVP                  V4       K  	  V P1                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P3                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V P5                  4       P                  RVR7      pVP                   F  pVP                  V4       K  	  V# )keyboardLayoutTrefresh
is_desktop)r   KeyBindingsr   get_managerget_settingr   GENERAL_KEYBOARD_LAYOUT_DESKTOPZget_sleep_mode_managerget_bindingskey_bindingsaddrY   rX   rZ   r[   rf   rg   r\   r^   r`   rb   rc   rd   r_   rh   ri   rj   )r6   r   layoutr   bindingsbindings   &     r.   _get_extension_bindingsZScript._get_extension_bindings   s   "..0!--/;;<LMxGGG
..0==Z > 1,,GW% - 224AAZ B 1,,GW% - //1>>Z ? 1,,GW% - ..0==Z > 1,,GW% - 113@@Z A 1,,GW% - 002??Z @ 1,,GW% - 002??Z @ 1,,GW% - 88:GGZ H 1,,GW% - 88:GGZ H 1,,GW% - ,,.;;Z < 1,,GW% - ++-::Z ; 1,,GW% - 002??Z @ 1,,GW% - ++-::Z ; 1,,GW% - >>..Z / 1,,GW% - **,99Z : 1,,GW% - ,,.;;Z < 1,,GW% - 335BBZ C 1,,GW% - r1   c               r%   )r&   enabled_onlyboolr)   r   r+   r,   r-   r.   r/   r0   A  s      T =T r1   c                s0   RV .p\         P                  ! \         P                  VRR4       \        P                  P                  V 4      pV P                  4       pVP                   F  pVP                  V4       K  	  V P                  4       pVP                   F  pVP                  V4       K  	  V P                  4       pVP                   F  pVP                  V4       K  	  \        P                  ! 4       P                  V P                  W14      pV# )z)Returns the key bindings for this script.z DEFAULT: Getting keybindings forT)r   print_tokens
LEVEL_INFOr   r$   get_key_bindings"get_default_keybindings_deprecatedr   r   Zget_app_key_bindingsr   r   r   Zoverride_key_bindingsrI   )r6   r   tokensr   r   r      &&    r.   r   ZScript.get_key_bindingsA  s     5d;5++VT4@}}55d;::<,,GW% - ,,.,,GW% - //1,,GW% - (335KK))<G r1   c               r8   r   r+   r,   r-   r.   r/   r0   Z  s     q q4K qr1   c           	     sH
   \         P                  ! 4       p\        P                  ! 4       P	                  R4      pV\
        P                  8H  pV'       Ed   VP                  \         P                  ! R\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R\         P                  \         P                  V P                  R,          4      4       MVP                  \         P                  ! R\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R	\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R
\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R
\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R
\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R
\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R\         P                  \         P                  V P                  R,          4      4       VP                  \         P                  ! R\         P                  \         P                  V P                  R,          4      4       V P                  4       P                  RVR7      pVP                    F  pVP                  V4       K  	  V P#                  4       P                  RVR7      pVP                    F  pVP                  V4       K  	  V P%                  4       P                  RVR7      pVP                    F  pVP                  V4       K  	  V# )z?Returns the basic keybindings (i.e. without extension bindings)r   Z	KP_Divider:   r;   ZKP_Multiplyr<   Z9Z7Z8 rG   r=   r>   rD   ZspacerE   rF   Tr   )r   r   r   r   r   r   r   r   Z
KeyBindingZDEFAULT_MODIFIER_MASKZORCA_MODIFIER_MASKrI   ZNO_MODIFIER_MASKZORCA_CTRL_MODIFIER_MASKr]   r   r   ra   re   )r6   r   r   r   Zbypass_mode_bindingsr   Zsay_all_bindingsZtyping_echo_bindingss   &       r.   r   Z)Script.get_default_keybindings_deprecatedZ  s%    **,!--/;;<LMxGGG
:LL&&5522--.IJ	LM LL&&2200--.JK	MN LL&&!2200--.KL	NO LL&&5522--.IJ	LM LL&&2222--.JK	MN LL&&2222--.KL	NO 	""11,,))*GH	J	K 	""11,,))*AB	D	E 	""11,,))*BC	E	F 	""11,,))*;<	>	? 	""11..))*FG	I	J 	""1133))*IJ	L	M  $;;=JJZ  K  1+88GLL! 9  557DDZ E 1'44GLL! 5  $==?LLZ  M  1+88GLL! 9 r1   c               r8   r&   r)   Zdictr+   r,   r-   r.   r/   r0     s     ,  , d , r1   c                s   Rp\         P                  ! \         P                  VR4       \        P                  P                  V 4      p V P                  R,          V\        P                  P                  &   V P                  R,          V\        P                  P                  &   V P                  R,          V\        P                  P                  &   V P                  R,          V\        P                  P                  &   V P                  R,          V\        P                  P                  &   V P                  R,          V\        P                  P                  &   V P                  R,          V\        P                  P                  &   V P                  R,          V\        P                  P                   &   V P                  R,          V\        P                  P"                  &   V P                  R,          V\        P                  P$                  &   V P                  R	,          V\        P                  P&                  &   V P                  R,          V\        P                  P                  &   VP1                  V P3                  4       P                  4       4       Rp\         P                  ! \         P                  VR4       V#   \(         d.    R
T .p\         P*                  ! \         P                  TR4        L\,        \.        3 d7   pRT RT.p\         P*                  ! \         P                  TR4        Rp?LRp?ii ; i)z-Returns the braille bindings for this script.z"DEFAULT: Getting braille bindings.Tr=   r>   r?   r@   rA   rB   rC   z(DEFAULT: Braille bindings unavailable inz.DEFAULT: Exception getting braille bindings inZ:Nz+DEFAULT: Finished getting braille bindings.)r   print_messager   r   r$   get_braille_bindingsrI   r   ZbrlapiZKEY_CMD_HWINLTZKEY_CMD_FWINLTZKEY_CMD_FWINLTSKIPZKEY_CMD_HWINRTZKEY_CMD_FWINRTZKEY_CMD_FWINRTSKIPZKEY_CMD_HOMEZKEY_CMD_SIXDOTSZKEY_CMD_ROUTEZKEY_CMD_CUTBEGINZKEY_CMD_CUTLINEZAttributeErrorr   ZKeyErrorZ	TypeErrorrW   r[   )r6   msgZbraille_bindingsr   errors   &    r.   r   ZScript.get_braille_bindings  s    3E,,c48!====dC	?))*AB W^^::; ))*AB W^^::; ))*AB W^^>>? ))*BC W^^::; ))*BC W^^::; ))*BC W^^>>? ))*@A W^^889 ))*DE W^^;;< ))*DE W^^99: ))*IJ W^^<<= ))*HI W^^;;< ))*@A W^^889 	 > > @ U U WX;E,,c48  	?@$GFu//>)$ 	?FcSXYFu//>>	?s%   	H(K 5M?MM,M  Mc               r8   r9   r+   r,   r-   r.   r/   r0     s       r1   c                    R# )z8Return a GtkGrid, or None if there's no app-specific UI.Nr+   rk   rl   r.   get_app_preferences_guiZScript.get_app_preferences_gui       r1   c               r8   r   r+   r,   r-   r.   r/   r0      s      $ r1   c                s    / # )z7Returns a dictionary with the app-specific preferences.r+   rk   rl   r.   get_preferences_from_guiZScript.get_preferences_from_gui   s	     	r1   c               r8   r9   r+   r,   r-   r.   r/   r0     s     C CD Cr1   c                s   / V n         V P                  4       P                  4       '       d    V P                  4       P                  V 4       V P	                  R4       \
        P                  ! 4       P                  4        R# )z'Called when this script is deactivated.zscript deactivationN)point_of_referencer]   	is_activeZtoggle_enabledremove_key_grabsr
   r   Zcheck_grabbed_bindingsrk   rl   r.   
deactivateZScript.deactivate  s_     #%'')3355((*99$?34'')@@Br1   c               r%   r&   reasonstrr)   r*   r+   r,   r-   r.   r/   r0     s     ? ?C ? ?r1   c                s&   RV .pV'       d   VP                  RV 24       \        P                  ! \        P                  VR4       V P	                  4       V n        V P
                  P                  V4       \        P                  ! 4       P                  4        \        P                  \        P                  8  dU   V P
                  P                  4       pRV R\        V4       R2.p\        P                  ! \        P                  VR4       R# R# )z7Sets up the key grabs currently needed by this script. zDEFAULT: Adding key grabs for: TDEFAULT:now has  key grabs.N)appendr   r   r   r   r   add_key_grabsr   r   Zadd_grabs_for_orca_modifiers
debugLevel%get_bindings_with_grabs_for_debugginglenr6   r   r   Z	has_grabs   &&  r.   r   ZScript.add_key_grabs  s     248MMBvh-(5++VT: 113''/))+HHJu///))OOQI $(3y>2B+(NOFu//> 0r1   c               r%   r   r+   r,   r-   r.   r/   r0      s     6 6s 6D 6r1   c                s,   RV .pV'       d   VP                  RV 24       \        P                  ! \        P                  VR4       \        P
                  ! 4       P                  4        V P                  P                  V4       \        P                  \        P                  8  dS   V P                  P                  4       pRV R\        V4       R2.p\        P                  ! \        P                  VR4       \        P                  ! 4       V n        R# )z(Removes this script's AT-SPI key grabs. zDEFAULT: Removing key grabs forr   Tr   r   r   N)r   r   r   r   r   r   Zremove_grabs_for_orca_modifiersr   r   r   r   r   r   r   r   r   r.   r   ZScript.remove_key_grabs   s     4T:MMBvh-(5++VT:))+KKM**62u///))OOQI $(3y>2B+(NOFu//>'335r1   c               r%   r   r+   r,   r-   r.   r/   r0   2  s     ) ) )T )r1   c                s    RpV'       d   VRV 2,          p\         P                  ! \         P                  VR4       V P                  R4       V P	                  R4       R# )z1Refreshes the enabled key grabs for this script. zDEFAULT: refreshing key grabsr   TZ
refreshingN)r   r   r   r   r   )r6   r   r      && r.   refresh_key_grabsZScript.refresh_key_grabs2  sR     .Rx= CE,,c48
 	l+<(r1   c               r8   r9   r+   r,   r-   r.   r/   r0   @  s     D D$ Dr1   c                N    \         P                  ! 4       P                  V 4       R# )z.Registers for listeners needed by this script.N)r   r   Zregister_script_listenersrk   rl   r.   register_event_listenersZScript.register_event_listeners@  s     	!!#==dCr1   c               r8   r9   r+   r,   r-   r.   r/   r0   E  s     F FD Fr1   c                r   )z1De-registers the listeners needed by this script.N)r   r   Zderegister_script_listenersrk   rl   r.   deregister_event_listenersZ!Script.deregister_event_listenersE  s     	!!#??Er1   c                s   V P                   P                  4       '       g   V P                   P                  4        V'       g   R# \        P                  ! V4      '       d   R# T;'       d    VP
                  P                  R4      pW#8X  d3   V'       g+   Rp\        P                  ! \        P                  VR4       R# V P                  '       d:   V P                  V8X  d'   RV n
        V P                  4       P                  V 4       R# V P                  4       P                  4       '       d   V P                  4       P                  4        V P!                  4       P                  4       '       d   V P!                  4       P                  4        V P                   P#                  V4      p\$        P&                  ! 4       P)                  V4       V P+                  V4       Vf   TpV P,                  P/                  VVR7      pV P                   P1                  W#V4      '       d   V P3                  4        \4        P6                  ! VRR7       R# )z1Called when the visual object with focus changes.Tzaccessible-namezDEFAULT: old focus == new focusN)priorObjF	interrupt)	utilitiesZ!handle_undo_locus_of_focus_change"handle_paste_locus_of_focus_changer   Z
is_defunctZtypeendswithr   r   r   run_find_command_onrZ   Zfindr[   r   quitrg   Ztop_level_objectr	   r   set_active_windowupdate_braillespeech_generatorgenerate_speechZ*should_interrupt_for_locus_of_focus_changeinterrupt_presentationr   speak)r6   eventZ	old_focusZ	new_focusZis_name_changer   active_window
utterances   &&&&    r.   locus_of_focus_changedZScript.locus_of_focus_changedJ  s    ~~??AANN==?!!),,II5::#6#67H#I!.3C 0 0#t<###''94+/(++-2248))+5577**,113((*4466))+00277	B!!#55mDI&%I**:: ;  
 >>DD( ('')Z51r1   c               r8   r9   r+   r,   r-   r.   r/   r0   y  s     ; ;$ ;r1   c                s   RV P                   .p\        P                  ! \        P                  VR4       \        P
                  ! 4       P                  V 4       V P                  4       P                  4        V P                  4       P                  4        V P                  4       P                  4        V P                  4       P                  W P                  4       V P                  4       P                  W P                   4       V P#                  R4       RV P                   R.p\        P                  ! \        P                  VR4       R# )z%Called when this script is activated.zDEFAULT: Activating script forTzscript activationzDEFAULT: Script forZ	activatedN)r'   r   r   r   r   r   Zload_app_settingsr\   Zupdate_punctuation_levelZupdate_capitalization_styleZupdate_synthesizerrc   Zset_modeZ_default_sn_moderb   Zset_enabled_for_scriptZ!_default_caret_navigation_enabledr   )r6   r   r   r.   activateZScript.activatey  s     3DHH=5++VT:$$&88> 	--/HHJ--/KKM--/BBD%%'007L7LM  "9988	: 	./';?5++VT:r1   c               r%   r&   objr(   r)   r*   r+   r,   r-   r.   r/   r0     s      "2 t r1   c                s   \         P                  ! 4       P                  R4      '       gS   \         P                  ! 4       P                  R4      '       g)   \        P                  ! \        P
                  RR4       R# V'       g   R# V P                  P                  ! V3/ VB w  r4V'       g   R# \        P                  ! 4        \        P                  ! 4       p\        P                  ! V4       VP                  V4       VP                  R4      pV'       d)   VP                  V4       \        P                  ! V4       M\        P                  ! V4       \        P                   ! R4       R# )z(Updates the braille display to show obj.enableBrailleenableBrailleMonitorzBRAILLE: update disabledTNZextraRegion)r   r   r   r   r   r   braille_generatorZgenerate_brailler   clearLineadd_lineadd_regionsgetZ
add_regionsetFocusr   )r6   r   argsresultfocused_regionlineZextra_region   &&,    r.   r   ZScript.update_braille  s      ++-99/JJ#//1==>TUU 0 02LdS!%!7!7!H!H!UPT!U||~ xx.OOL)\*^,r1   Nc               r%   r&   _eventinput_event.InputEvent | Noner)   r   r+   r,   r-   r.   r/   r0     s     
 
/L 
X\ 
r1   c                s    / p\         P                  ! 4       p\        P                   F  pVP	                  V4      W$&   K  	  \
        P                  ! W4      pVP                  4        R# )z!Shows the app Preferences dialog.T)r   r   r   ZuserCustomizableSettingsr   r   OrcaSetupGUIshowGUI)r6   r   prefsmanagerZkeyuir   r.   rU   ZScript.show_app_preferences_gui  sW     "..044C ,,S1EJ 5 ((5


r1   c               r%   r   r+   r,   r-   r.   r/   r0     s      +H TX r1   c                s
   \         P                  ! 4       pTP                  VP                  ;'       g    R4      p\        P
                  ! \        P                  ! 4       P                  4       V4      pVP                  4        R# )z Displays the Preferences dialog.ZdefaultT)	r   r   Zget_general_settingsprofiler   r   r   Zget_default_scriptr   )r6   r   r   r   r      &&   r.   rT   ZScript.show_preferences_gui  s_     #..0,,W__-I-I	J(()C)C)E)X)X)Z\ab


r1   c               r%   r   r+   r,   r-   r.   r/   r0     s       =  r1   c                s0    \         P                  ! 4        R# )z
Quit Orca.T)r   Zshutdown)r6   r      &&r.   rS   ZScript.quit_orca  s     	r1   c               $    V ^8  d   QhRRRRRR/# r&   r   r   
pan_amountr4   r)   r   r+   r,   r-   r.   r/   r0     s(     5 5,5 5 
	5r1   c                s   \        V\        P                  4      '       d   \        P                  ! 4       P                  R4      '       gU   \        P                  ! 4       P                  R4      '       g+   Rp\        P                  ! \        P                  VR4       R# V P                  4       P                  4       '       d!   V P                  4       P                  WV4      # \        P                  ! 4       P                  4       p\        P                  ! V4      ;'       g    \        P                   ! V4      p\"        P$                  '       d   V'       d   \&        P(                  ! V4      ^,          pRpV^ 8  d   \&        P*                  ! WF^,
          4      pV'       g[   \        P                   ! V4      '       d?   V P                  4       P-                  W4       V P                  4       P/                  W4       R# \"        P0                  ! V4       \"        P2                  ! 4        \"        P4                  ! RRR7       R# )a  Pans the braille display to the left.  If pan_amount is non-zero,
the display is panned by that many cells.  If it is 0, the display
is panned one full display width.  In flat review mode, panning
beyond the beginning will take you to the end of the previous line.

In focus tracking mode, the cursor stays at its logical position.
In flat review mode, the review cursor moves to character
associated with cell 0.r   r   zCDEFAULT: panBrailleLeft command requires braille or braille monitorTFZ	stopFlash)
isinstancer   KeyboardEventr   r   r   r   r   r   r[   r   rL   r	   get_locus_of_focusr   is_editableis_terminalr   ZbeginningIsShowingr   get_line_at_offsetset_caret_offsetZgo_start_of_lineZgo_previous_characterZpanLeftresetFlashTimerr   )r6   r   r   r   focusis_text_areastart_offsetZmoved_carets   &&&     r.   rL   ZScript.pan_braille_left  s    e[6677#//1==oNN#//1==>TUUWC 0 0#t<))+5577113DDTR\]]))+>>@"..u5WW9P9PQV9W%%%, "44U;A>LKa$55eA=MN ;#:#:5#A#A..0AA$N..0FFtS  OOJ'##%OOEU3r1   c               r   r   r+   r,   r-   r.   r/   r0     s(     + +,+ + 
	+r1   c                s   \        V\        P                  4      '       d   \        P                  ! 4       P                  R4      '       gU   \        P                  ! 4       P                  R4      '       g+   Rp\        P                  ! \        P                  VR4       R# V P                  4       P                  4       '       d!   V P                  4       P                  WV4      # \        P                  ! 4       P                  4       p\        P                  ! V4      ;'       g    \        P                   ! V4      p\"        P$                  '       dY   V'       dQ   \&        P(                  ! V4      ^,          pV\&        P*                  ! V4      8  d   \&        P,                  ! WF4       R# \"        P.                  ! V4       \"        P0                  ! 4        \"        P2                  ! RRR7       R# )a  Pans the braille display to the right.  If pan_amount is non-zero,
the display is panned by that many cells.  If it is 0, the display
is panned one full display width.  In flat review mode, panning
beyond the end will take you to the beginning of the next line.

In focus tracking mode, the cursor stays at its logical position.
In flat review mode, the review cursor moves to character
associated with cell 0.r   r   zDDEFAULT: panBrailleRight command requires braille or braille monitorTFr  )r  r   r  r   r   r   r   r   r   r[   r   rM   r	   r  r   r  r  r   ZendIsShowingr   r  get_character_countr  ZpanRightr	  r   )r6   r   r   r   r
  r  
end_offsets   &&&    r.   rM   ZScript.pan_braille_right  sT    e[6677#//1==oNN#//1==>TUUXC 0 0#t<))+5577113EEdS]^^))+>>@"..u5WW9P9PQV9WL  2259!<JF66u=='':  Z(##%OOEU3r1   c               r%   r&   r   r   r)   r   r+   r,   r-   r.   r/   r0   0  s     6 6%B 6d 6r1   c                s    V P                  4       P                  4       '       d!   V P                  4       P                  4        R# V P                  4        \        P
                  ! V4      # )z$Returns to the component with focus.T)r[   r   r   r   r   ZreturnToRegionWithFocusr6   r   r   r.   rN   ZScript.go_braille_home0  sQ     ))+5577**,113##%..u55r1   c               r%   r  r+   r,   r-   r.   r/   r0   :  s      ,I UY r1   c                s2    \         P                  ! V4       R# )zToggles contracted braille.T)r   rO   r  r   r.   rO   ZScript.set_contracted_braille:  s     	&&u-r1   c               r%   r  r+   r,   r-   r.   r/   r0   @  s      )F RV r1   c                sV    V P                  RR7       \        P                  ! V4       R# )zProcesses a cursor routing key.F)
kill_flashT)r   r   rP   r  r   r.   rP   ZScript.process_routing_key@  s&     	##u#5##E*r1   c               r%   r  r+   r,   r-   r.   r/   r0   J  s      /L X\ r1   c                s    \         P                  ! V4      w  r#V^ 8  d   R# V P                  4        \        P                  ! V4       V P
                  P                  W#4       R# )zSClears the selection and moves the caret offset in the currently
active text area.
T)r   getCaretContextr   r   Zclear_all_selected_textr   r  )r6   r   r   offsetr   r.   rQ   Z Script.process_braille_cut_beginJ  sO    
 --e4A:##%&&s+''4r1   c               r%   r  r+   r,   r-   r.   r/   r0   X  s      .K W[ r1   c                s   \         P                  ! V4      w  r#V^ 8  d   R# V P                  4        \        P                  ! V4      p\        P
                  ! V4      pV^ 8  g   V^ 8  d-   \        P                  ! V4      p\        W64      p\        W64      p\        P                  ! W$V4       \        P                  ! V4      ^ ,          pV P                  4       P                  V4       R# )zwExtends the text selection in the currently active text
area and also copies the selected text to the system clipboard.T)r   r  r   r   Zget_selection_start_offsetZget_selection_end_offsetget_caret_offsetZminmaxZset_selected_textZget_selected_textrX   Zset_text)r6   r   r   r  r  r  Zcaret_offsettext   &&      r.   rR   ZScript.process_braille_cut_lineX  s     --e4A:##%88=44S9
1
Q!2237Lv4LV2J  J?'',Q/$$&//5r1   c               r%   r  r+   r,   r-   r.   r/   r0   m  s      +H TX r1   c                s   V P                  4       P                  4       '       d"   V P                  4       P                  W4       R# \        P                  ! 4       P                  4       pV P                  4       P                  V4      '       g&   V P                  4       P                  V4      '       d"   V P                  \        P                  4       R# \        P                  p\        P                  pV P                  W44       R# )z,Moves the mouse pointer to the current item.TF)r[   r   Zroute_pointer_to_objectr	   r   r  get_event_synthesizerZroute_to_characterZroute_to_objectpresent_messager   ZMOUSE_MOVED_SUCCESSLOCATION_NOT_FOUND_FULLLOCATION_NOT_FOUND_BRIEFr6   r   r
  fullbriefr   r.   rH   ZScript.route_pointer_to_itemm  s     ))+5577**,DDTQ))+>>@%%'::5AA((*::5AA  !=!=>//11T)r1   c               r%   r  r+   r,   r-   r.   r/   r0     s      %B d r1   c                s   V P                  4       P                  4       '       df   V P                  4       P                  W4      pV P                  4       P	                  V4      '       d   R# V P                  4       P                  W4      # \        P                  ! 4       P                  4       pV P                  4       P	                  V4      '       d   R# \        P                  ! V4      '       d*   V P                  4       P                  VR^4      '       d   R# V P                  4       P                  V^4      '       d   R# \        P                  p\        P                  pV P!                  WE4       R# )z7Performs a left mouse button click on the current item.TNF)r[   r   Zget_current_objectr  Ztry_all_clickable_actionsZleft_click_on_objectr	   r   r  r   r  click_characterclick_objectr   r  r  r  )r6   r   r   r
  r  r  r   r.   rJ   ZScript.left_click_item  s    ))+5577002EEdRC))+EEcJJ113HHUU))+>>@%%'AA%HH%%e,,))+;;E4KK%%'44UA>>//11T)r1   c               r%   r  r+   r,   r-   r.   r/   r0     s      &C t r1   c                s   V P                  4       P                  4       '       d"   V P                  4       P                  W4       R# \        P                  ! 4       P                  4       pV P                  4       P                  VR^4      '       d   R# V P                  4       P                  V^4      '       d   R# \        P                  p\        P                  pV P                  W44       R# )z8Performs a right mouse button click on the current item.TNF)r[   r   Zright_click_on_objectr	   r   r  r  r  r   r   r  r  r  r  r   r.   rK   ZScript.right_click_item  s     ))+5577**,BB4O))+>>@%%'77tQGG%%'44UA>>//11T)r1   c               r%   r   r+   r,   r-   r.   r/   r0     s     $ $-J $VZ $r1   c                s   \         P                  ! 4       P                  4       pV'       g"   V P                  \        P
                  4       R# V Uu. uF  q3^ ,          V^,          3NK  	  ppR R lp\        \        WT4      4      pV'       g   ^ pMVP                  V^ ,          4      p WG^,           ,          w  r\         P                  ! 4       P                  V	RR7       \        P                  ! 4        \        P                  ! 4       P                  4        V P                  4        V P                  \        P                   V,          V4       R# u upi   \         d    T^ ,          w  r Li ; i)z4Cycle through the user's existing settings profiles.Tc               r%   )r&   xztuple[str, str]r)   r   r+   r,   r-   r.   r/   Z3Script.cycle_settings_profile.<locals>.__annotate__  s     	H 	H 	HD 	Hr1   c                s\    V ^,          \         P                  ! 4       P                  4       8H  # )i   )r   r   Zget_profile)r!  rl   r.   is_matchZ/Script.cycle_settings_profile.<locals>.is_match  s$    Q4+779EEGGGr1   )ZupdateLocale)r   r   Zavailable_profilesr  r   ZPROFILE_NOT_FOUNDlistZfilterZindexZ
IndexErrorZset_profiler   ZcheckBrailleSettingr   Zrefresh_speechrm   ZPROFILE_CHANGED)
r6   r   Zprofile_namesr   Zprofilesr"  Zcurrent_matchesZcurrent_indexZnameZ
profile_id
   &&        r.   rV   ZScript.cycle_settings_profile  s.    )446IIK  !;!;< =JJMQZ,MJ	H 26fX6P1QM$NN?1+=>M	+'(9:D 	$$&22:D2Q##%$002AAC 	'')X55<dC7 K  	+'{D*	+s   E+E E10E1c               r%   r&   r   Atspi.Eventr)   r   r+   r,   r-   r.   r/   r0     s      { t r1   c                s   VP                   p\        P                  ! V4      '       g   \        P                  ! V4      '       Ed   VP                  '       d   \        P
                  ! V4      '       g   R# V\        P                  ! 4       P                  4       8H  pV'       d   VP                  '       g   \        P                  ! 4       P                  4       p\        P                  ! V\        P                  4      '       d+   Rp\        P                  ! \        P                  VR4       R# Rp\        P                  ! \        P                  VR4       \        P                  ! 4       P!                  R4       R# V'       gb   VP                  '       dP   Rp\        P                  ! \        P                  VR4       \        P                  ! 4       P!                  VRRR7       R# )z>Callback for object:state-changed:active accessibility events.T!DEFAULT: Ignoring event. In menu.z4DEFAULT: Event is for active window. Clearing state.Nz DEFAULT: Updating active window.)Zset_window_as_focusZnotify_script)sourcer   Zis_dialog_or_alertZis_framedetail1can_be_active_windowr	   r   get_active_windowr  r   find_ancestor_inclusiveis_menur   r   r   r   )r6   r   windowZsource_is_active_windowr
  r   r   r.   r   ZScript.on_active_changed  sJ    ))&11[5I5I&5Q5Q}}}[%E%Ef%M%M&,0I0I0K0]0]0_&_#&u}}}%113FFH33E;;N;NOO=C''(8(8#tDL##E$4$4c4@))+==dC*u}}}8##E$4$4c4@))+==D > J r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      + $ r1   c                s    \         P                  ! V4      '       d/   \        P                  ! 4       P	                  WP
                  4       R# )zCCallback for object:active-descendant-changed accessibility events.T)r   Z'is_presentable_active_descendant_changer	   r   set_locus_of_focusany_datar  r   r.   rv   Z#Script.on_active_descendant_changed  s3     >>uEE%%'::5..Qr1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      [ T r1   c                r   )z<Callback for object:state-changed:busy accessibility events.Tr+   r  r   r.   r   ZScript.on_busy_changed  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0             r1   c                z    \         P                  ! V4      '       d   V P                  VP                  RRR7       R# )z?Callback for object:state-changed:checked accessibility events.TalreadyFocusedr   )r   Zis_presentable_checked_changepresent_objectr(  r  r   r.   r   ZScript.on_checked_changed  1     44U;;TTRr1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      { t r1   c                H    \         P                  ! VP                  R4       R# )z>Callback for object:children-changed:add accessibility events.children-changed event.Tr   clear_all_cache_nowr(  r  r   r.   rx   ZScript.on_children_added       	''6OPr1   c               r%   r%  r+   r,   r-   r.   r/   r0     s        r1   c                r7  )zACallback for object:children-changed:remove accessibility events.r8  Tr9  r  r   r.   ry   ZScript.on_children_removed  r;  r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s     7 7K 7D 7r1   c                s   \         P                  ! V4      p\        P                  ! 4       pVP	                  4       pWAP
                  8w  dm   \         P                  ! VP
                  4      '       g+   Rp\        P                  ! \        P                  VR4       R# VP                  WP
                  R4       VP                  4       w  rgWqP                  8X  d;   WaP
                  8X  d+   Rp\        P                  ! \        P                  VR4       R# V P                  4       P                  4       '       d   V P                  4       P                  4        \         P"                  ! VP
                  4      pVP%                  VP
                  V4       V P&                  P)                  VP
                  V4       \*        P,                  \*        P.                  \*        P0                  \*        P2                  .pW(9   dO   RV R2p\        P                  ! \        P                  VR4       \         P4                  ! VP
                  4       R# \         P6                  ! VP
                  4      '       dP   Rp\        P                  ! \        P                  VR4       V P&                  P9                  VP
                  4       R# \         P:                  ! V4      w  rpV	'       dL   V P&                  P9                  V4      '       d+   Rp\        P                  ! \        P                  VR4       R# R	p\        P                  ! \        P                  VR4       V P=                  WR
7       R# )z:Callback for object:text-caret-moved accessibility events.zGDEFAULT: Change is from unfocused source that is not the locus of focusTFz0DEFAULT: Event is for last saved cursor positionz'DEFAULT: Ignoring event due to reason ()z)DEFAULT: Event source has text selectionsz/DEFAULT: Event handled as text selection changez.DEFAULT: Presenting text at new caret positionr   )r   get_text_event_reasonr	   r   r  r(  
is_focusedr   r   r   r/  Zget_last_cursor_positionr)  r[   r   r   r   r  set_last_cursor_positionr   Zset_caret_contextr   CUTPASTEZREDOZUNDOupdate_cached_selected_textZhas_selected_texthandle_text_selection_changeget_cached_selected_text_present_caret_moved_event)r6   r   r   r   r
  r   r   r  Zignorer  _start_ends   &&          r.   r   ZScript.on_caret_moved  sk    2259++-**,LL ))%,,77_##E$4$4c4@&&ullEB668]]"sll':DC 0 0#t<))+5577**,113((6 	((v>((v>!%%!''!&&!&&( ;F81EC 0 0#t<..u||<##ELL11=C 0 0#t<NN77E#<<SAdDNN??DDCC 0 0#t<>E,,c48'''=r1   c               r%   r%  r+   r,   r-   r.   r/   r0   S  s      K D r1   c                st    \         P                  ! V4      '       d   V P                  VP                  4       R# )zBCallback for object:property-change:accessible-description events.T)r   Z!is_presentable_description_changer  r0  r  r   r.   r{   ZScript.on_description_changedS  s*     88??  0r1   c               r%   r%  r+   r,   r-   r.   r/   r0   Z  s      K D r1   c                r   )z>Callback for document:attributes-changed accessibility events.Tr+   r  r   r.   ro   Z%Script.on_document_attributes_changedZ  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0   _  s        r1   c                r   )z2Callback for document:reload accessibility events.Tr+   r  r   r.   rp   ZScript.on_document_reload_  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0   d  s      { t r1   c                r   )z9Callback for document:load-complete accessibility events.Tr+   r  r   r.   rq   Z Script.on_document_load_completed  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0   i  s      k d r1   c                r   )z8Callback for document:load-stopped accessibility events.Tr+   r  r   r.   rr   ZScript.on_document_load_stoppedi  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0   n  s     
 
k 
d 
r1   c                s    VP                   ^ 8  d   R# \        P                  ! VP                  4      '       g   R# V P	                  \
        P                  VP                   ,          4       R# )z8Callback for document:page-changed accessibility events.T)r)  r   Zdid_page_changer(  r  r   ZPAGE_NUMBERr  r   r.   rs   ZScript.on_document_page_changedn  sK     ==1))%,,77X11EMMABr1   c               r%   r%  r+   r,   r-   r.   r/   r0   z  s        r1   c                sB   \         P                  ! VP                  R4       \         P                  ! V4      '       g   R# V P	                  VP                  RRR7       V P
                  P                  VP                  4      pV F  pV P                  VRR7       K  	  R# )z@Callback for object:state-changed:expanded accessibility events.zexpanded-changed event.Tr3  Fr   )r   r:  r(  Zis_presentable_expanded_changer5  r   Zdetails_content_for_objectspeak_message)r6   r   ZdetailsZdetailr   r.   r   ZScript.on_expanded_changedz  s     	''6OP99%@@ELLN..;;ELLIFv7  r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      k d r1   c                r2  )zECallback for object:state-changed:indeterminate accessibility events.Tr3  )r   Z#is_presentable_indeterminate_changer5  r(  r  r   r.   r   ZScript.on_indeterminate_changed  s1     ::5AATTRr1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      k d r1   c                s*   \         P                  ! V4      '       g   R# VP                  '       d'   V P                  P	                  VP
                  4      pM\        P                  pV P                  V4       V P                  VP
                  4       R# )zECallback for object:state-changed:invalid-entry accessibility events.T)
r   Z#is_presentable_invalid_entry_changer)  r   Zget_error_messager(  r   ZINVALID_ENTRY_FIXEDrI  r   )r6   r   r   r   r.   r   ZScript.on_invalid_entry_changed  si     >>uEE===''99%,,GC..C3ELL)r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      [ T r1   c                sN    \         P                  ! 4       P                  V4       R# )z!Callback for mouse:button events.T)r
   r   Zprocess_mouse_button_eventr  r   r.   rt   ZScript.on_mouse_button  s     	'')DDUKr1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      [ T r1   c                s|    \        VP                  \        4      '       d   V P                  VP                  4       R# )z(Callback for object:announcement events.T)r  r0  r   r  r  r   r.   ru   ZScript.on_announcement  s*     ennc**  0r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      [ T r1   c                s   \         P                  ! V4      '       g   R# \        P                  ! 4       pVP                  VP                  4       8X  d    VP                  WP                  RR4       R# V P                  VP                  4       R# )z;Callback for object:property-change:accessible-name events.T)	r   Zis_presentable_name_changer	   r   r(  r  r/  r  r0  )r6   r   r   r   r.   r|   ZScript.on_name_changed  si     55e<<++-<<75577&&ullD$GU^^,r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s      + $ r1   c                r7  )z<Callback for object:attributes-changed accessibility events.z object-attributes-changed event.Tr9  r  r   r.   rw   Z#Script.on_object_attributes_changed  s     	''6XYr1   c               r%   r%  r+   r,   r-   r.   r/   r0     r1  r1   c                r2  )z?Callback for object:state-changed:pressed accessibility events.Tr3  )r   Zis_presentable_pressed_changer5  r(  r  r   r.   r   ZScript.on_pressed_changed  r6  r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s        r1   c                s   \         P                  ! V4      '       g   R# \        P                  ! 4       P	                  R4      '       d   R# Rp\
        P                  ! 4       pVP                  4       '       d   RpMrVP                  4       '       g   VP                  4       '       dG   \         P                  ! VP                  4      '       d!   \         P                  ! VP                  4      pV'       g   R# VP                  '       d$   V P                  \        P                  RR7       R# V P                  \        P                   RR7       R# )z@Callback for object:state-changed:selected accessibility events.TZonlySpeakDisplayedTextFr   )r   Zis_presentable_selected_changer   r   r   r
   last_event_was_spaceZlast_event_was_upZlast_event_was_downZis_table_cellr(  Zis_selectedr)  rI  r   ZTEXT_SELECTEDZTEXT_UNSELECTED)r6   r   Zannounce_stater   r   r.   r   ZScript.on_selected_changed  s     99%@@'')556NOO%113''))!N''))W-H-H-J-J--ell;;(44U\\BN ===x55G  x775Ir1   c               r%   r%  r+   r,   r-   r.   r/   r0     s     T T+ T$ Tr1   c                s  a	 \         P                  ! 4       P                  4       pV P                  P	                  4       '       d]   V P                  P                  VP                  4      '       d0   \         P                  ! 4       P                  WP                  R4       EMCV P                  P                  VP                  4      '       d   R# \        P                  ! VP                  4      '       d   R# VP                  V8X  d   M\        P                  ! VP                  4      '       d'   \        P                  ! VP                  4      '       g   \        P                  ! VP                  \        P                  4      pW28w  d\   VP                  \        P                   ! V4      8w  d7   RVP                  .p\"        P$                  ! \"        P&                  VR4       R# \        P(                  ! VP                  4      '       d   \         P                  ! 4       P+                  4       o	\        P                  ! VP                  V	3R l4      '       g9   RVP                  RS	.p\"        P$                  ! \"        P&                  VR4       R# \,        P                  ! 4       P/                  4       '       d   R# \        P                  ! VP                  4      '       ds   \        P0                  ! VP                  4      '       gM   \        P2                  ! \        P4                  ! VP                  \        P6                  4      4      '       d   R# Mh\        P8                  ! VP                  4      '       dC   V P;                  4       P=                  4       '       d   V P;                  4       P?                  4        V P                  PA                  VP                  4      p\         P                  ! 4       P                  4       pW%9   d+   Rp\"        PB                  ! \"        P&                  VR4       R# V PE                  4       PG                  4       pV EFl  p\        PH                  ! W(4      '       d/   RVR	.p\"        P$                  ! \"        P&                  VR4        R# W8X  d.   RVR
.p\"        P$                  ! \"        P&                  VR4       K  \        PJ                  ! V4      '       d   V'       d   \        PL                  ! V4      \        PL                  ! V4      8X  dV   \        P2                  ! VP                  4      '       g0   RVRV.p\"        P$                  ! \"        P&                  VR4        R# \        PN                  ! V4      '       d   EKH  \         P                  ! 4       P                  W4        R# 	  R# )z;Callback for object:selection-changed accessibility events.FTz7DEFAULT: Ignoring event: source lacks showing + visiblec                s"   < T ;'       d    V S8H  # r2   r+   )r!  r   s   &r.   Z<lambda>Z-Script.on_selection_changed.<locals>.<lambda>	  s    !BZBZ]HZBZr1   zDEFAULT: Ignoring event:zis not insidez@DEFAULT: Ignoring event believed to be redundant to focus changezDEFAULT: Childzis ancestor of locusOfFocuszis current mouse review itemr   z's selection redundant to)(r	   r   r  r   r   Z&top_level_object_is_active_and_currentr(  r/  Z!handle_container_selection_changer   Zmanages_descendantsZ
is_showingZ
is_visibler   Zfind_ancestoris_combo_boxZ
get_parentr   r   r   Zis_tree_or_tree_tabler+  r
   rJ  Zis_expandedr?  find_descendantZis_text_inputZis_page_tab_listr[   r   r   selected_childrenr   rh   Zget_current_itemZis_ancestorZis_page_tabZget_nameZis_layout_only)
r6   r   r
  Zcomboboxr   rM  r   Zmouse_review_itemchildr   s
   &&       @r.   r   ZScript.on_selection_changed  s     ))+>>@>><<>>~~DDU\\RR))+>>ullTYZ^^==ellKK,,U\\::\\U"
 ((66;;Q;QRWR^R^;_;_  --ellK<T<TUH U\\X5H5H5O%OSUZUaUab""5#3#3VTB,,U\\::)557IIKM))%,,8Z[[4ellOUbc""5#3#3VTB **,AACC##ELL11+:Q:QRWR^R^:_:_%%))%,,8Q8QRT TT ))%,,77..0::<<
 **,113 NN<<U\\J))+>>@%TC 0 0#t< 335FFH&E##E11*E3PQ""5#3#3VTB)*E3QR""5#3#3VTB&&u--%$$U+x/@/@/GG"--ell;;$e-H%P""5#3#3VTB 	 --e44))+>>uL- ', r1   c               r%   r%  r+   r,   r-   r.   r/   r0   ?  s      + $ r1   c                r   )zACallback for object:state-changed:sensitive accessibility events.Tr+   r  r   r.   r   ZScript.on_sensitive_changed?  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0   D  s        r1   c                s   VP                   '       g   R# \        P                  ! VP                  4      '       g   RVP                  R.p\        P
                  ! \        P                  VR4       \        P                  ! VP                  RR7       \        P                  ! VP                  4      '       g+   Rp\        P                  ! \        P                  VR4       R# VP                  pV P                  P                  V4      w  rVV'       d'   \        P                  ! V4      '       g   V'       g   R# \        P                  ! V4      '       dI   \        P                  ! V4      '       g-   V P                  P                  V4      pV'       d
   V^ ,          p\         P"                  ! 4       P%                  W4       R# )z?Callback for object:state-changed:focused accessibility events.Tr   z$lacks focused state. Clearing cache.z#Event detail1 does not match state.r=  z-DEFAULT: Clearing cache did not update state.)r)  r   r?  r(  r   r   r   r   Zclear_cacher   r   Zframe_and_dialogr*  get_child_countrK  rM  r	   r   r/  )r6   r   r   r   r   r.  ZdialogrM  r  r.   r   ZScript.on_focused_changedD  s,    }}}%%ell33 %,,0VWFu//>  6[\))%,,77E##E$4$4c4@ll88=+::6BB6##C((1I1I#1N1N $ @ @ E '*!!#66uBr1   c               r%   r%  r+   r,   r-   r.   r/   r0   `  s        r1   c                sL   VP                   p\        P                  ! V4      '       d   VP                  '       g   R# V P	                  V P
                  P                  V4      4       V P                  P                  V4      pV P                  VRR7       V P                  4       P                  V4       R# \        P                  ! V4      '       d   \        P                  ! 4       P                  4       pV'       g-   \         P                  ! 4       P#                  R4      '       g   R# VP                  '       d   V P%                  VRR7       R# \&        P                  ! 4       P)                  4       pV'       d*   V'       d"   TpV P%                  W!P                   RR7       R# R# )z?Callback for object:state-changed:showing accessibility events.TF)reset_stylesZpresentToolTipsr   )r   r   )r(  r   Zis_notificationr)  rI  r   Zget_localized_role_namer   Zget_notification_contentr  rY   Zsave_notificationZis_tool_tipr
   r   Zlast_event_was_f1r   r   r5  r	   r  )r6   r   r   r   Zwas_f1r
  r   r.   r   ZScript.on_showing_changed`  s0    ll&&s++===t44LLSQR..99#>C  5 9++-??D""3''(446HHJF"2">">"@"L"LM^"_"_}}}##C4#8!--/BBDE##C,,$#Or1   c               r%   r%  r+   r,   r-   r.   r/   r0   ~  s        r1   c                sx    \         P                  ! V4      '       g   R# V P                  VP                  4       R# )zACallback for object:text-attributes-changed accessibility events.T)r   Z%is_presentable_text_attributes_changespeak_misspelled_indicatorr(  r  r   r.   r   Z!Script.on_text_attributes_changed~  s-     @@GG''5r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s     ' '[ 'T 'r1   c                s   \         P                  ! V4      '       g   R# \         P                  ! V4      pV P                  P	                  V4       V P                  VP                  4       V\        P                  8X  dj   Rp\        P                  ! \        P                  VR4       V P                  \        P                  4       \        P                   ! VP                  4       R# V P                  P#                  V4      p\        P$                  ! VP                  4      w  rVpV\        P&                  8X  dQ   Rp\        P                  ! \        P                  VR4       \        P(                  ! VP                  4      ^ ,          pMnV\        P*                  8X  d0   WE8w  d*   Rp\        P                  ! \        P                  VR4       M*Rp\        P                  ! \        P                  VR4       R# \-        V4      ^8X  d   V P/                  V4       R# V P0                  P3                  VR7      p\4        P6                  ! 4       p	V	P9                  VP                  V4      pV P;                  WH4       R# )z=Callback for object:text-changed:delete accessibility events.TzADEFAULT: Deletion is believed to be due to deleting selected textz9DEFAULT: Deletion is believed to be due to Delete commandz<DEFAULT: Deletion is believed to be due to BackSpace commandz:DEFAULT: Event is not being presented due to lack of causestring)r   Zis_presentable_text_deletionr>  r   handle_undo_text_eventr   r(  r   ZSELECTED_TEXT_DELETIONr   r   r   r  r   ZSELECTION_DELETEDr   rC  Zdeleted_textrE  DELETEget_character_at_offset	BACKSPACEr   speak_characterr   voicer   r   adjust_for_presentationrI  )
r6   r   r   r   r  Zselected_textrG  rH  rY  r   r$  r.   r   ZScript.on_text_deleted  s    77>>2259--e4ELL)_;;;UC 0 0#t<  !;!;<..u||<~~**51&,&E&Eell&S#t_+++MC 0 0#t<11%,,?BD000T5JPC 0 0#t<NC 0 0#t<t9>  &  ))//t/<E2>>@G225<<FDt+r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s     B Bk Bd Br1   c                s   \         P                  ! V4      '       g   R# \         P                  ! V4      pV P                  P	                  V4       V P                  VP                  4       V\        P                  8X  dj   Rp\        P                  ! \        P                  VR4       V P                  \        P                  4       \        P                   ! VP                  4       R# RpV\        P"                  8X  d-   Rp\        P                  ! \        P                  VR4       RpEMV\        P$                  8X  d-   Rp\        P                  ! \        P                  VR4       RpEMaV\        P&                  8X  d+   Rp\        P                  ! \        P                  VR4       EM"V\        P(                  8X  d*   Rp\        P                  ! \        P                  VR4       MV\        P*                  8X  d*   Rp\        P                  ! \        P                  VR4       MV\        P,                  8X  d*   R	p\        P                  ! \        P                  VR4       MhV\        P.                  8X  d*   R
p\        P                  ! \        P                  VR4       M*Rp\        P                  ! \        P                  VR4       RpV P                  P1                  V4      pV'       d   \3        V4      ^8X  d   V P5                  V4       MiV P6                  P9                  VP                  VR7      p\:        P<                  ! 4       pVP?                  VP                  V4      pV PA                  WV4       \3        V4      ^8w  g&   V\        PB                  \        P*                  39  d   R# V PE                  4       pVPG                  WP                  4      '       d   R# VPI                  WP                  4       R# )z=Callback for object:text-changed:insert accessibility events.TzCDEFAULT: Insertion is believed to be due to restoring selected textz7DEFAULT: Insertion is believed to be due to page switchFz1DEFAULT: Insertion is believed to be due to pastez3DEFAULT: Insertion is believed to be due to commandz?DEFAULT: Insertion is believed to be due to middle mouse buttonz-DEFAULT: Insertion is believed to be echoablez@DEFAULT: Insertion is believed to be presentable auto text eventz#DEFAULT: Insertion is also selectedz:DEFAULT: Not speaking inserted string due to lack of causer   rS  )%r   Zis_presentable_text_insertionr>  r   rT  r   r(  r   ZSELECTED_TEXT_RESTORATIONr   r   r   r  r   ZSELECTION_RESTOREDr   rC  ZPAGE_SWITCHrB  ZUNSPECIFIED_COMMANDZMOUSE_MIDDLE_BUTTONZTYPING_ECHOABLEZAUTO_INSERTION_PRESENTABLEZSELECTED_TEXT_INSERTIONZinserted_textr   rX  r   rY  r   r   rZ  rI  ZTYPINGre   Zecho_previous_sentenceZecho_previous_word)	r6   r   r   r   Zspeak_stringr  rY  r   Z	presenters	   &&       r.   r   ZScript.on_text_inserted  s    88??2259--e4ELL)_>>>WC 0 0#t<  !<!<=..u||<_000KC 0 0#t< L,,,EC 0 0#t< L:::GC 0 0#t<:::SC 0 0#t<666AC 0 0#t<AAATC 0 0#t<>>>7C 0 0#t<NC 0 0#t< L ~~++E24yA~$$T*--33T3R6BBD66u||TJ""4/t9>_33_5T5TUU224	++D,,??$$T<<8r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s        {  t  r1   c                s   \         P                  ! V4      pV\        P                  8X  dK   Rp\        P
                  ! \        P                  VR4       \        P                  ! VP                  4       R# V\        P                  8X  df   Rp\        P
                  ! \        P                  VR4       V P                  VP                  4       \        P                  ! VP                  4       R# V\        P                  8X  dK   Rp\        P
                  ! \        P                  VR4       \        P                  ! VP                  4       R# V\        P                  \        P                  \        P                  39   dK   Rp\        P
                  ! \        P                  VR4       \        P                  ! VP                  4       R# V P                   P#                  VP                  4       V P%                  VP                  4       R# )z@Callback for object:text-selection-changed accessibility events.z<DEFAULT: Ignoring event because reason for change is unknownTz4DEFAULT: Presenting line believed to be search matchzJDEFAULT: Ignoring event believed to be unpresentable search results changez3DEFAULT: Ignoring event believed to be text removal)r   r>  r   UNKNOWNr   r   r   r   rC  r(  ZSEARCH_PRESENTABLEsay_lineZSEARCH_UNPRESENTABLErA  rW  rU  r   rD  r   )r6   r   r   r   r   r.   r   Z Script.on_text_selection_changed  sb    2259_,,,PC 0 0#t<..u||<_777HC 0 0#t<MM%,,'..u||<_999^C 0 0#t<..u||<o))?+D+DoF\F\]]GC 0 0#t<..u||<33ELLAELL)r1   c               r%   r%  r+   r,   r-   r.   r/   r0     s        r1   c                l   \         P                  ! VP                  R4       \        P                  ! 4       P                  4       '       g   R# VP                  \        P                  ! \        P                  ! 4       P                  4       4      8w  d   R# V P                  \        P                  4       R# )z:Callback for object:column-reordered accessibility events.zcolumn-reordered event.T)r   r:  r(  r
   r   last_event_was_table_sortr   	get_tabler	   r  r  r   ZTABLE_REORDERED_COLUMNSr  r   r.   rz   ZScript.on_column_reordered  sw     	''6OP"..0JJLL<<7,,]-F-F-H-[-[-]^^X==>r1   c               r%   r%  r+   r,   r-   r.   r/   r0   #  s      k d r1   c                r^  )z7Callback for object:row-reordered accessibility events.zrow-reordered event.T)r   r:  r(  r
   r   r_  r   r`  r	   r  r  r   ZTABLE_REORDERED_ROWSr  r   r.   r~   ZScript.on_row_reordered#  sw     	''6LM"..0JJLL<<7,,]-F-F-H-[-[-]^^X::;r1   c               r%   r%  r+   r,   r-   r.   r/   r0   0  s      k d r1   c                s   \         P                  ! VP                  4      '       g   R# V P                  P	                  VP                  4      w  r#RVRV.p\
        P                  ! \
        P                  VR4       \        P                  ! 4       pV'       gJ   VP                  VP                  4       8w  d+   Rp\
        P                  ! \
        P                  VR4       R# \        P                  ! VP                  4      '       d;   VP                  VP                  \        P                   ! VP                  4      4       V'       g   V P#                  4        V P%                  VP                  VR7       \&        P(                  ! V P*                  P-                  VP                  RVR7      4       V P/                  V P0                  P3                  VP                  RVR7      4       R# )zJCallback for object:property-change:accessible-value accessibility events.Tz DEFAULT: Is progress bar update:Z,zDEFAULT: Source != locusOfFocus)isProgressBarUpdate)r4  ra  )r    Zdid_value_changer(  r   is_progress_bar_updater   r   r   r	   r   r  r   r   Zis_spin_buttonr@  r   r  r   r   r   r   r   r   _Script__playZsound_generatorZgenerate_sound)r6   r   rb  r   r   r   r   r.   r}   ZScript.on_value_changed0  sn    ''55&*nn&K&KELL&Y#46LcSVW5++VT:++-%%,,':T:T:V*V3C 0 0#t<%%ell33,,U\\6;R;RSXS_S_;`a%'')ELL>TUT**::LLCY ; [ 	\D((77LLCY 8 [ 	\r1   c               r%   r%  r+   r,   r-   r.   r/   r0   M  s        r1   c                sf   \         P                  ! VP                  4      '       g   R# VP                  \        P                  ! 4       P                  4       8X  d+   Rp\        P                  ! \        P                  VR4       R# / V n	        \        P                  ! 4       P                  VP                  4       \        P                  ! VP                  4      ^8X  d   \        P                  ! VP                  ^ 4      p\         P                  ! V4      '       d&   \        P                  ! V\         P                   4      p\         P                   ! V4      '       d'   \        P                  ! 4       P#                  W4       R# \        P                  ! 4       P#                  WP                  4       R# )z2Callback for window:activate accessibility events.Tz$DEFAULT: Event is for active window.)r   r*  r(  r	   r   r+  r   r   r   r   r   r   rO  Z	get_childZis_menu_barrL  r-  r/  )r6   r   r   rN  r   r.   r   ZScript.on_window_activatedM  s    //==<<=446HHJJ8C 0 0#t<"$!!#55ellC##ELL1Q6&&u||Q7E&&u-- 008K8KL""5))))+>>uL!!#66ullKr1   c               r%   r%  r+   r,   r-   r.   r/   r0   g  s      { t r1   c                r   )z0Callback for window:create accessibility events.Tr+   r  r   r.   r   ZScript.on_window_createdg  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0   l  s        r1   c                r   )z1Callback for window:destroy accessibility events.Tr+   r  r   r.   r   ZScript.on_window_destroyedl  r   r1   c               r%   r%  r+   r,   r-   r.   r/   r0   q  s      ; 4 r1   c                sV   \         P                  ! 4       P                  4       p\        P                  ! V\
        P                  4      '       d+   Rp\        P                  ! \        P                  VR4       R# VP                  \         P                  ! 4       P                  4       8w  d+   Rp\        P                  ! \        P                  VR4       R# V P                  4       P                  4       '       d   V P                  4       P                  4        V P                  4       P                  4       '       d   V P                  4       P                  4        / V n        \         P                  ! 4       P#                  R4       \$        P                  ! 4       P'                  RR4       R# )z4Callback for window:deactivate accessibility events.r'  Tz.DEFAULT: Ignoring event. Not for active windowzWindow deactivatedN)r	   r   r  r   r,  r   r-  r   r   r   r(  r+  r[   r   r   rg   r   Zclear_stater   Zset_active_script)r6   r   r
  r   r   r.   r   ZScript.on_window_deactivatedq  s)    ))+>>@++E;3F3FGG5C 0 0#t<<<=446HHJJBC 0 0#t<))+5577**,113((*4466))+002"$!!#//0DE""$66t=QRr1   c               r%   r   r+   r,   r-   r.   r/   r0     s     % %2B %t %r1   c                sN   \         P                  ! 4       P                  R4      '       gS   \         P                  ! 4       P                  R4      '       g)   \        P                  ! \        P
                  RR4       R# Rp\        P                  ! 4       pVP                   Ff  p\        V\        P                  4      '       g   K%  VP                  V8X  g   K8  VP                  4       '       d   \        P                  ! R4       Rp M	  V'       d   V P                  V4       R# R# )z@Try to reposition the cursor without having to do a full update.r   r   zBRAILLE: update caret disabledTNF)r   r   r   r   r   r   r   ZgetShowingLineregionsr  ZTextZ
accessibleZreposition_cursorr   r   )r6   r   Zneeds_repaintingr   Zregionr   r.   _update_braille_caret_positionZ%Script._update_braille_caret_position  s      ++-99/JJ#//1==>TUU 0 02RTXY%%'llF&',,//F4E4E4L++--OOD)',$ # $ r1   c               s(    V ^8  d   QhRRRRRRRR/# )	r&   r   r&  r   Atspi.Accessible | Noner   r   r)   r   r+   r,   r-   r.   r/   r0     s2     / // %/  	/
 
/r1   c                s   T;'       g    VP                   pV P                  V4       V P                  4       P                  4       '       d+   Rp\        P
                  ! \        P                  VR4       R# V\        P                  8X  d+   Rp\        P
                  ! \        P                  VR4       R# V\        P                  8X  d   V P                  V4       R# V\        P                  8X  d   V P                  V4       R# V\        P                  8X  d   V P                  V4       R# V\        P                  8X  d   V P                  V4       R# V\        P                   8X  d   V P                  V4       R# V\        P"                  8X  d   V P                  V4       R# V\        P$                  8X  d?   \&        P(                  ! VP                   4      w  rVpV'       g   V P                  V4       R# R# )zPPresents text at the new position, based on heuristics. Returns True if handled.z2DEFAULT: Event ignored: Last command was caret navTz5DEFAULT: Not presenting text because SayAll is activeF)r(  re  rb   Z'last_input_event_was_navigation_commandr   r   r   r   ZSAY_ALLZNAVIGATION_BY_LINEr]  ZNAVIGATION_BY_WORDsay_wordZNAVIGATION_BY_CHARACTERsay_characterZNAVIGATION_BY_PAGEZNAVIGATION_TO_LINE_BOUNDARYZNAVIGATION_TO_FILE_BOUNDARYZMOUSE_PRIMARY_BUTTONr   rE  )r6   r   r   r   r   r  rG  rH  r   r.   rF  Z!Script._present_caret_moved_event  sy    !!U\\++C0 ##%MMOOFC 0 0#t<_,,,IC 0 0#t<_777MM#_777MM#_<<<s#_777MM#_@@@s#_@@@MM#_999!'!@!@!ND$c"r1   c               r%   r   r+   r,   r-   r.   r/   r0     s     )? )?!1 )?d )?r1   c                s~   V P                   P                  V4      w  r#W!8X  d   TpM\        P                  ! V4      p\        P
                  ! 4       P                  4       '       d
   V^,          p\        P                  ! W4      w  rVp\        P
                  ! 4       P                  WV\        P                  4       V'       d   VR8X  d   Rp\        P
                  ! 4       P                  R4      pVR8X  dc   \        P                  ! V\        ^ V4      4      ^ ,          p	V	'       d   V	R8X  d,   V'       d"   V P                  \         P"                  RR7       R# VR	9   d,   V'       d"   V P                  \         P"                  RR7       R# V P%                  W4       V P'                  V4       RV P(                  R&   R# )
z!Speak the character at the caret.Z
speakBlankLinesFr   NZcharlastTextUnitSpoken)ri  z
)r   get_caret_contextr   r  r
   r   Z&last_event_was_forward_caret_selectionrV  r	   emit_region_changedCARET_TRACKINGr   r   r  r  rI  r   BLANKrQ  rX  r   )
r6   r   context_objcontext_offsetr  	characterr  r  Zspeak_blank_linesZline_stringr$  r.   rh  ZScript.say_character  sa    '+nn&F&Fs&K##F,,S1F
 **,SSUUaKF.4.L.LS.Y+	!!#77z=+G+G	I I-I,88:FFGXY 33CQHKK+"5 %&&x~~&G& !""8>>U"C''4Y'8> 45r1   c               r   r&   r   r(   r  z
int | Noner)   r*   r+   r,   r-   r.   r/   r0     s"     +? +?, +?j +?D +?r1   c                s&   Vf   \         P                  ! V4      pM\         P                  ! W4       \         P                  ! W4      R,          w  r4V'       Ed^   VR8w  EdV   \        P
                  ! 4       pVP                  V4      pV'       d   V P                  V4       V\        V4      ,           p\        P
                  ! 4       P                  WV\        P                  4       . pV P                  P                  WV4      p	V	'       g   \        P                  ! V4       R# V	 Fu  w  rrpV'       g   K  V P                   P#                  WWR7      pVP%                  WV
4      pVP'                  4       pV.pVP)                  V4       VP+                  V4       Kw  	  \        P                  ! V4       MK\,        P
                  ! 4       P/                  R4      '       d"   V P                  \0        P2                  RR7       RV P4                  R	&   R# )
z3Speaks the line at the current or specified offset.N:    r&   Nri  )r   rS  languagedialectrj  Fr   r   rk  )r   r  r  r  r   r   get_indentation_descriptionrI  r   r	   rm  rn  r   Zsplit_substring_by_languager   r   r   rY  rZ  Zlstripextendr   r   r   r   ro  r   )r6   r   r  r   r  r   Zindentation_descriptionr  	utteranceZsplitstartrH  r  ru  rv  rY  r   s   &&&              r.   r]  ZScript.say_line  s    >,,S1F##C0#66sCCH4DDL2>>@G&-&I&I$&O#&""#:;%D	1J%%';;:}/K/KM INN>>sR\]ET"8=4TW --338 4 N66s%H {{}%)Fe$  ( 9> LL#))+778IJJx~~?8> 45r1   c               (    V ^8  d   QhRRRRRRRR/# )r&   r   r(   r  r4   r  r)   r*   r+   r,   r-   r.   r/   r0   .  s0     A A. Ac As AW[ Ar1   c                st   V P                   P                  WV4      pV'       g   R# \        V4      ^8  g   VP                  4       '       d   \        P
                  ! 4       pVP                  V4      pV'       d   V P                  V4       \        P
                  ! 4       P                  WV\        P                  4       V P                  P                  WR7      pVP                  W4      pV.pVP                  V4       \        P                   ! V4       MV P#                  V4       RV P$                  R&   R# )z2Speaks the substring between start and end offset.Nr[  phraserk  )r   Zexpand_eocsr   Zisalnumr   r   rw  rI  r	   rm  rn  r   rY  rZ  rx  r   r   rX  r   )	r6   r   r  r  r|  r   r   rY  ry  s	   &&&&     r.   
say_phraseZScript.say_phrase.  s     ++CzJv;?fnn..2>>@G88@F""6*%%';;:}/K/KM ))//C/GE44SAF$*8IU#LL#  (8@ 45r1   c               r%   r   r+   r,   r-   r.   r/   r0   H  s     '? '?, '? '?r1   c           	     s   V P                   P                  V4      w  r#W!8X  d   TpM\        P                  ! V4      pV P                   P	                  W4      w  rVpRV9   d   \
        P                  ! 4       P                  R4      '       d   V P                  R4       VP                  R4      '       d   V^,          pM VP                  R4      '       d
   V^,          p\        P                  ! WV4      p\        \        P                  ! RV4      4      pV'       dc   Wh^ ,          P                  4       ,          pV\!        V4      VR,          P#                  4       ,
          ,          p\        P                  ! WV4      pVP%                  RR4      p	RV RV	 RV RV R	2	p
\&        P(                  ! \&        P*                  V
R
4       V P-                  W4       V P/                  WV4       RV P0                  R&   R# )zNSpeaks the word at the caret, taking into account the previous caret position.ri  ZenableSpeechIndentationz\S+z\nzDEFAULT: Final word at offset z is 'z' (Z-r<  Twordrk  N)r   rl  r   r  Z*get_word_at_offset_adjusted_for_navigationr   r   r   rX  Z
startswithr   Zget_substringr#  reZfinditerrz  r   ZendZreplacer   r   r   rQ  r}  r   )r6   r   rp  rq  r  r~  r  r  Zmatchesr  r   s   &&         r.   rg  ZScript.say_wordH  s    '+nn&F&Fs&K##F,,S1F NNEEcR 	'J 4<++-99:STT$$T*t$$!t$$a
'':FD r{{6401AJ,,..L#d)gbkoo&777J'':FD||D%(,VHE$ @~Qzl!- 	 	E,,c48''::68> 45r1   c               r%   r   r+   r,   r-   r.   r/   r0   q  s     6 6"2 6t 6r1   c                s   VP                  RR4      pRVRV.p\        P                  ! \        P                  VR4       VP                  R4      pVe   \        P
                  ! W4       VP                  RR4      '       g   V P                  ! V3/ VB  V P                  P                  ! V3/ VB p\        P                  ! WcR	7       R# )
zPresents the current object.r   FzDEFAULT: Presenting objectz. Interrupt:Tr  NZ
speechonlyr   )r   r   r   r   r   r  r   r   r   r   r   )r6   r   r   r   r   r  r   r   r.   r5  ZScript.present_objectq  s     HH[%0	.^YO5++VT:(###C0xxe,,,t,**::3G$G
Z5r1   c               r%   r&   contentsz,list[tuple[Atspi.Accessible, int, int, str]]r)   r*   r+   r,   r-   r.   r/   r0     s     
! 
!>
! 
	
!r1   c                s    RW.p\         P                  ! \         P                  VRR4       V P                  P                  ! V3/ VB p\
        P                  ! V4       R# )zSpeaks the specified contents.zDEFAULT: SpeakingTN)r   r   r   r   generate_contentsr   r   )r6   r  r   r   r   s   &&,  r.   speak_contentsZScript.speak_contents  sO     &x65++VT4@**<<XNN
Z r1   c               r%   r  r+   r,   r-   r.   r/   r0     s"     $@ $@>$@ 
	$@r1   c                s   RW.p\         P                  ! \         P                  VRR4       \        P                  ! 4       P                  R4      '       gS   \        P                  ! 4       P                  R4      '       g)   \         P                  ! \         P                  RR4       R# \        P                  ! 4        \        P                  ! 4       p\        P                  ! V4       V P                  P                  ! V3/ VB w  rVV'       g+   Rp\         P                  ! \         P                  VR4       R# RTR	T;'       g    R
.p\         P                  ! \         P                  VR4       V F  pVP                  V4       K  	  VP                  '       dC   VP                  R,          P                  P!                  R4      VP                  R,          n        \        P"                  ! VRR7       \        P$                  ! RRR7       R# )zDisplays contents in braille.zDEFAULT: DisplayingTr   r   zDEFAULT: Braille disabledNz+DEFAULT: Generating braille contents failedzDEFAULT: Generated resultzfocused regionr*    F)indicate_links)ZpanToCursorr  r  )r   r   r   r   r   r   r   r   r   r   r   r   r  r   rd  rS  Zrstripr   r   )	r6   r  r   r   r   Zregions_listr   r   rd  s	   &&,      r.   display_contentsZScript.display_contents  s{    (85++VT4@++-99/JJ#//1==>TUU 0 02MtT||~'+'='='O'OPX'a\`'a$?C 0 0#t<-|"N$<$<f>5++VT:#GW% $ <<<&*ll2&6&=&=&D&DS&IDLL#>D?r1   c               r%   )r&   item_stringr   r)   r*   r+   r,   r-   r.   r/   r0     s     7 7c 7d 7r1   c                s    V FT  pV P                   P                  VR7      p\        P                  ! VP	                  4       4      pV P                  WC4       KV  	  R# )zPhonetically spell item_string.rR  N)r   rY  r   Zget_phonetic_nameZlowerrI  )r6   r  rr  rY  Zphonetic_stringr   r.   spell_phoneticallyZScript.spell_phonetically  sL     %I))//y/AE'99)//:KLO6 %r1   c               r   rs  r+   r,   r-   r.   r/   r0     s#     & &.> &
 &^b &r1   c                s    \         P                  ! 4       pVP                  W4      pV'       d   V P                  V4       R# R# )z%Speaks the misspelled-word indicator.N)r   r   Zget_error_descriptionrI  )r6   r   r  r   r   s   &&&  r.   rQ  Z!Script.speak_misspelled_indicator  s8     /::<--c:u% r1   c                s*   Rp\         P                  ! \         P                  VR4       \        P                  ! 4       P                  4        V'       d   \        P                  ! 4        V P                  e   V P                  P                  4        R# R# )zJConvenience method to interrupt whatever is being presented at the moment.z"DEFAULT: Interrupting presentationTN)
r   r   r   r   r   Zinterrupt_speechr   Z	killFlashZlive_region_managerZflushMessages)r6   r  r   r   r.   r   ZScript.interrupt_presentation  sh     3E,,c48$002CCE##/$$224 0r1   c               r%   )r&   r   zinput_event.KeyboardEventr)   r*   r+   r,   r-   r.   r/   r0     s     J J,E J$ Jr1   c                sD    V P                  4       P                  W4       R# )z!Presents the KeyboardEvent event.N)re   Zecho_keyboard_eventr  r   r.   present_keyboard_eventZScript.present_keyboard_event  s     	&&(<<TIr1   c               s0    V ^8  d   QhRRRRRRRRR	RR
R/# )r&   r  r   r  z
str | NonerY  zACSS | NonerP  r   forcer)   r*   r+   r,   r-   r.   r/   r0     sN     -@ -@-@ -@ 	-@
 -@ -@ 
-@r1   c                sN   V'       g   R# Vf   Tp\         P                  ! 4       P                  R4      '       dK   \         P                  ! 4       P                  R4      '       g   TpMTpV'       d   V P                  WcWER7       \         P                  ! 4       P                  R4      '       g,   \         P                  ! 4       P                  R4      '       EdG   \         P                  ! 4       P                  R4      '       Ed   \         P                  ! 4       P                  R4      '       g   TpMTpV'       g   R# \	        V^ ,          \
        4      '       d
   V^ ,          p\	        V\
        4      '       d;   V Uu. uF  p\	        V\        4      '       g   K  VNK  	  ppR	P                  V4      p\         P                  ! 4       P                  R
4      '       d   RpM$\         P                  ! 4       P                  R4      p\        P                  ! WhR7       R# R# R# u upi )z@Convenience method to speak a message and 'flash' it in braille.NZenableSpeechZmessagesAreDetailed)rY  rP  r  r   r   ZenableFlashMessagesZflashIsDetailedr  ZflashIsPersistentZbrailleFlashTime)Z	flashTimer  )
r   r   r   rI  r  r#  r   Zjoinr   displayMessage)	r6   r  r  rY  rP  r  messageiZdurations	   &&&&&&   r.   r  ZScript.present_message  s    =E'')55nEE#//1==>STT""7l"`((*66GG ,,.::;QRR++-99:OPP#//1==>OPP'!*d++!!*'4((&-DgAs1C11gD((7+++-99:MNN+779EEFXY""7?' Q S Es   >H"H"c               r   )r&   soundszlist[Icon | Tone] | Icon | Toner   r   r)   r*   r+   r,   r-   r.   r/   r0     s#     
5 
56 
54 
5SW 
5r1   c                	s   V '       g   R # \        V \        4      '       g   V .p \        P                  ! 4       pVP	                  V ^ ,          V4       \        ^\        V 4      4       F  pVP	                  W,          RR7       K  	  R # )NFr   )r  r#  r   Z
get_playerZplayZranger   )r  r   Z_playerr  r   r.   Z__playZScript.__play
  sc    &$''XF""$VAY	*q#f+&ALLeL4 'r1   c               r{  )r&   r  r   cursorr4   
flash_timer)   r*   r+   r,   r-   r.   r/   r0     s)     < < <c <C <PT <r1   c                s,   \         P                  ! 4       P                  R4      '       gS   \         P                  ! 4       P                  R4      '       g)   \        P                  ! \        P
                  RR4       R# \        P                  ! WV4       R# )a  Displays a single line, setting the cursor to the given position,
ensuring that the cursor is in view.

Arguments:
- message: the string to display
- cursor: the 0-based cursor position, where -1 (default) means no cursor
- flash_time:  if non-0, the number of milliseconds to display the
  regions before reverting back to what was there before. A 0 means
  to not do any flashing.  A negative number means to display the
  message until some other message comes along or the user presses
  a cursor routing key.
r   r   z!BRAILLE: display message disabledTN)r   r   r   r   r   r   r   r  )r  r  r     &&&r.   display_messageZScript.display_message  sf      ++-99/JJ#//1==>TUU 0 02UW[\w
;r1   c               r%   )r&   r  r   r)   r*   r+   r,   r-   r.   r/   r0   -  s     , ,s ,t ,r1   c                s:    V F  pV P                  V4       K  	  R# )z.Speak the characters in the string one by one.N)rX  )r6   r  rr  r   r.   
spell_itemZScript.spell_item-  s     I  + r1   c               r%   )r&   rr  r   r)   r*   r+   r,   r-   r.   r/   r0   3  s     G G G Gr1   c                s    V P                   P                  VR7      p\        P                  ! Y'       d   V^ ,          4       R# R4       R# )zSpeaks a single character.rR  N)r   rY  r   rX  )r6   rr  rY  r   r.   rX  ZScript.speak_character3  s8     %%++9+=ye%(FFr1   c               s4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r&   r  r   rY  zACSS | list[ACSS] | Noner   r   rP  r  r   rf  r)   r*   r+   r,   r-   r.   r/   r0   9  sP     ,> ,>,> (,> 	,>
 ,> ,> %,> 
,>r1   c                s    \        V\        4      '       g   Q h \        P                  ! 4       pTP                  4       '       g   TP                  4       '       d   T'       g   R# \        P                  ! 4       P                  R4      p	T	P                  \        P                   4      p
T;'       g    T
pY*8X  dK   T'       dC   TP#                  4       pTP%                  R4       TP'                  4       pTP)                  R4       TP+                  Ya4      pRp\        T\,        4      '       d   T'       d   T^ ,          pM\        T\,        4      '       g   Tp\.        P0                  ! YT4       Y*8X  d/   T'       d%   TP%                  X4       TP)                  X4       R# R# R#   \         dT    RT.p\        P                  ! \        P
                  TRR4       \        P                  ! \        P                  4        R# i ; i)z Method to speak a single string.z.DEFAULT: speak_message called with non-string:TNvoicesZnoneZsome)r  r   ZAssertionErrorr   r   r   Zprint_exceptionZLEVEL_WARNINGr   r   Zget_speech_is_mutedZget_only_speak_displayed_textr   r   r   r   ZSYSTEM_VOICEZget_capitalization_styleZset_capitalization_styleZget_punctuation_levelZset_punctuation_levelrZ  r#  r   r   )r6   r  rY  r   rP  r  r   r   Zspeech_managerr  Zsystem_voiceZ	cap_styleZpunct_styleZvoice_to_uses   &&&&&&&       r.   rI  ZScript.speak_message9  s   	dC(((( 6AAC--//;;==e!--/;;HEzz("7"78%% \&??AI33F;(>>@K00855c@59eT""u 8LE4(( LT3 \33I>00= &2 ;  	FMFu//tD!!%"5"56		s   F% %AHHc               s(    V ^8  d   QhRRRRRRRR/# )r&   r   r   documentrf  notify_userr   r)   r+   r,   r-   r.   r/   r0   j  s2      , * 	
 
r1   c                r   )z,Switches between browse mode and focus mode.Fr+   )r6   r   r  r  s   &&&&r.   toggle_presentation_modeZScript.toggle_presentation_modej  s     r1   c               $    V ^8  d   QhRRRRRR/# )r&   r   r   r  r   r)   r+   r,   r-   r.   r/   r0   t  s(      ,  
	r1   c                r   )zCSwitches between object mode and layout mode for line presentation.Fr+   )r6   r   r  r  r.   toggle_layout_modeZScript.toggle_layout_modet       r1   c               r  r&   r   r   force_messager   r)   r+   r,   r-   r.   r/   r0   }  (      ,  
	r1   c                r   )zEnables sticky browse mode.Fr+   r6   r   r  r  r.   enable_sticky_browse_modeZ Script.enable_sticky_browse_mode}  r  r1   c               r  r  r+   r,   r-   r.   r/   r0     r  r1   c                r   )zEnables sticky focus mode.Fr+   r  r  r.   enable_sticky_focus_modeZScript.enable_sticky_focus_mode  r  r1   c               r8   r&   r)   r   r+   r,   r-   r.   r/   r0     s      t r1   c                r   )z$Returns True if we're in focus mode.Fr+   rk   rl   r.   in_focus_modeZScript.in_focus_mode       r1   c               r8   r  r+   r,   r-   r.   r/   r0     s      d r1   c                r   )z-Returns True if we're in 'sticky' focus mode.Fr+   rk   rl   r.   focus_mode_is_stickyZScript.focus_mode_is_sticky  r  r1   c               r8   r  r+   r,   r-   r.   r/   r0     s      t r1   c                r   )z.Returns True if we're in 'sticky' browse mode.Fr+   rk   rl   r.   browse_mode_is_stickyZScript.browse_mode_is_sticky  r  r1   c               r8   r  r+   r,   r-   r.   r/   r0     s       r1   c                r   )z%Returns True if we're in layout mode.Fr+   rk   rl   r.   in_layout_modeZScript.in_layout_mode  r  r1   )r5   r   r   r   )T)r   r2   )Nrt  )NNTF)r  rt  )NTTFN)NNT)NT)NF)jZ__name__Z
__module__Z__qualname__Z__firstlineno____doc__r3   rm   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rU   rT   rS   rL   rM   rN   rO   rP   rQ   rR   rH   rJ   rK   rV   r   rv   r   r   rx   ry   r   r{   ro   rp   rq   rr   rs   r   r   r   rt   ru   r|   rw   r   r   r   r   r   r   r   r   r   r   rz   r~   r}   r   r   r   r   re  r   r\  rF  rh  r]  r}  rg  r5  r  r  r  rQ  r   r  r  Zstaticmethodrc  r  r  rX  rI  r  r  r  r  r  r  r  r  Z__static_attributes__Z__classcell__)r7   s   @r.   r$   r$   R   sB   D$ $]\~*X[z2qf, \

C?"6$)D
F
-^;*F
5n+Z6*$2&$b:
7r




@Tl
8<'RBH D:4

@%. (,"1"9"9	/b)?V+?ZA4'?R6 
!$@L7& 	5J
-@^ 
5 
5 < <*,G,>b


 r1   r$   )9r  Z
__future__r   Z__id__Z__version__Z__date__Z__copyright__Z__license__r  Ztypingr   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   Z	orca.acssr   Zorca.ax_documentr   Zorca.ax_objectr   Zorca.ax_tabler   Zorca.ax_textr   Zorca.ax_utilitiesr   Zorca.ax_utilities_eventr   Zorca.ax_valuer    ZgiZrequire_versionZgi.repositoryr!   Zorca.sound_generatorr"   r#   r$   r+   r1   r.   <module>r     s   < A #7 	 / /      $      &     !   -  ' # !  ) 3 !w&#/O!V]] O!r1   