+
    Qi  c                  s   R t ^ RIHt RtRtRtRtRt^ RIH	t	 ^ RI
t
]
P                  ! R	R
4       ^ 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 ]	'       d   ^RIHt  ! R R4      t]! 4       tR tR# )-Provides utilities for managing input events.)annotationsz$Id$z
$Revision$z$Date$zGCopyright (c) 2024 Igalia, S.L.Copyright (c) 2024 GNOME Foundation Inc.ZLGPL)TYPE_CHECKINGNAtspiz2.0)r   )debug)focus_manager)input_event)script_manager)settings)AXObject)AXUtilities)keybindingsc                  sl   ] tR t^7tRtR R ltR R ltR R ltReR R	 lltR
 R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltRfR R lltRfR R lltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. tR/ tR0 tR1 tR2 tR3 t R4 t!R5 t"R6 t#R7 t$R8 t%R9 t&R: t'R; t(R< t)R= t*R> t+R? t,R@ t-RA t.RB t/RC t0RD t1RE t2RF t3RG t4RH t5RI t6RJ t7RK t8RL t9RM t:RN t;RO t<RP t=RQ t>RR t?RS t@RT tARU tBRV tCRW tDRX tERY tFRZ tGR[ tHR\ tIR] tJR^ tKR_ tLR` tMRa tNRb tORctPRd# )gInputEventManagerr    c                   V ^8  d   QhRR/#    returnNone Zformat   "=/usr/lib/python3.14/site-packages/orca/input_event_manager.py__annotate__InputEventManager.__annotate__:   s     # #$ #    c                	sh    R V n         R V n        R V n        . V n        . V n        / V n        RV n        R # )NF)_last_input_event_last_non_modifier_key_event_device_mapped_keycodes_mapped_keysyms_grabbed_bindings_pausedself   &r   __init__ZInputEventManager.__init__:   s8    @DNR),0+-*,DF"r   c               r   r   r   r   r   r   r   r   C   s     	B 	B4 	Br   c                sd   Rp\         P                  ! \         P                  VR4       \        P                  ! 4       R8  d&   \        P
                  P                  R4      V n        M#\        P
                  P                  4       V n        V P                  P                  V P                  4       R# )-Starts the watcher for keyboard input events.z*INPUT EVENT MANAGER: Starting key watcher.Tzorg.gnome.OrcaN)r   i7   iZ   )r   print_message
LEVEL_INFOr   Zget_versionDeviceZnew_fullr   ZnewZadd_key_watcherprocess_keyboard_eventr!   msg   & r   start_key_watcherZ#InputEventManager.start_key_watcherC   su     ;E,,c48+- <<001ABDL <<++-DL$$T%@%@Ar   c               r   r   r   r   r   r   r   r   N   s      $ r   c                sd    Rp\         P                  ! \         P                  VR4       RV n        R# )r$   z*INPUT EVENT MANAGER: Stopping key watcher.TN)r   r%   r&   r   r)   r+   r   stop_key_watcherZ"InputEventManager.stop_key_watcherN   s(     ;E,,c48r   c               $    V ^8  d   QhRRRRRR/# )r   pauseboolreasonstrr   r   r   r   r   r   r   r   U   s!      t C  r   c                sn    RV RV 2p\         P                  ! \         P                  VR4       Wn        R# )z+Pauses processing of keyboard input events.z%INPUT EVENT MANAGER: Pause queueing: z. TN)r   r%   r&   r   )r!   r/   r1   r*      &&& r   pause_key_watcherZ#InputEventManager.pause_key_watcherU   s3     6eWBvhGE,,c48r   c               r   r   r   r   r   r   r   r   \   s     = = =r   c                s&   R\        V P                  4       R2p\        P                  ! \        P                  VR4       V P                  P                  4        F3  w  r#RV RV 2p\        P                  ! \        P                  VR4       K5  	  R# )z Checks the grabbed key bindings.INPUT EVENT MANAGER: z grabbed key bindings.Tz for: N)Zlenr   r   r%   r&   Zitems)r!   r*   grab_idbinding   &   r   check_grabbed_bindingsZ(InputEventManager.check_grabbed_bindings\   s}     &c$*@*@&A%BBXYE,,c48 $ 6 6 < < >G)'&	BC 0 0#t< !?r   c                    V ^8  d   QhRRRR/# )r   r7   keybindings.KeyBindingr   z	list[int]r   r   r   r   r   r   e   s      0F 9 r   c                s   VP                  4       '       d   VP                  4       '       g   . # VP                  4       '       d.   RVR.p\        P                  ! \        P
                  VR4       . # V P                  f-   RV.p\        P                  ! \        P
                  VR4       . # . pVP                  4        FG  pV P                  P                  VR4      pV^ 8X  d   K(  VP                  V4       WP                  V&   KI  	  V# )z:Adds grabs for binding if it is enabled, returns grab IDs.INPUT EVENT MANAGER:zalready has grabs.TNz.INPUT EVENT MANAGER: No device to add grab for)Z
is_enabledZis_boundZ	has_grabsr   print_tokensr&   r   Zkey_definitionsadd_key_grabappendr   )r!   r7   tokensgrab_idskdr6   s   &&    r   add_grabs_for_keybindingZ*InputEventManager.add_grabs_for_keybindinge   s     ""$$)9)9););I,g7KLFu//>I<<FPFu//>I))+Bll//D9G
 !|OOG$.5""7+ , r   c               r:   )r   r7   r;   r   r   r   r   r   r   r   r      s     A A3I Ad Ar   c                s   V P                   f-   RV.p\        P                  ! \        P                  VR4       R# VP	                  4       pV'       g.   RVR.p\        P                  ! \        P                  VR4       R# V Fk  pV P                   P                  V4       V P                  P                  VR4      pVe   K@  RV 2p\        P                  ! \        P                  VR4       Km  	  R# )zRemoves grabs for binding.Nz2INPUT EVENT MANAGER: No device to remove grab fromTr<   zdoesn't have grabs to remove.z0INPUT EVENT MANAGER: No key binding for grab id )	r   r   r=   r&   Zget_grab_idsremove_key_grabr   Zpopr%   )r!   r7   r@   rA   r6   Zremovedr*      &&     r   remove_grabs_for_keybindingZ-InputEventManager.remove_grabs_for_keybinding   s     <<JGTFu//>''),g7VWFu//>GLL((1,,00$?GH	R##E$4$4c4@  r   c                    V ^8  d   QhRRRR/# )r   keycodeintr   r   r   r   r   r   r      s     	2 	2s 	2s 	2r   c                    V P                   f/   RV R2p\        P                  ! \        P                  VR4       ^ # V P                  P                  V4       V P                   P                  V4      # )z>Maps keycode as a modifier, returns the newly-mapped modifier.z.INPUT EVENT MANAGER: No device to map keycode  to modifierT)r   r   r%   r&   r   r?   Zmap_modifier)r!   rH   r*      && r   map_keycode_to_modifierZ)InputEventManager.map_keycode_to_modifier   s`     <<B7)<XC 0 0#t<$$W-||((11r   c               rG   )r   keysymrI   r   r   r   r   r   r   r      s     	8 	8S 	8S 	8r   c                rJ   )z=Maps keysym as a modifier, returns the newly-mapped modifier.z-INPUT EVENT MANAGER: No device to map keysym rK   T)r   r   r%   r&   r   r?   Zmap_keysym_modifier)r!   rN   r*   rL   r   map_keysym_to_modifierZ(InputEventManager.map_keysym_to_modifier   s`     <<A&VC 0 0#t<##F+||//77r   c               r   r   r   r   r   r   r   r      s     % %T %r   c                s   V P                   f+   Rp\        P                  ! \        P                  VR4       R# V P                   F  pV P                   P                  V4       K   	  V P                   F  pV P                   P                  V4       K   	  V P                  P                  4        V P                  P                  4        R# )z'Unmaps all previously mapped modifiers.Nz:INPUT EVENT MANAGER: No device to unmap all modifiers fromT)	r   r   r%   r&   r   Zunmap_modifierr   Zunmap_keysym_modifierZclear)r!   r*   rH   rN   r8   r   unmap_all_modifiersZ%InputEventManager.unmap_all_modifiers   s     <<NC 0 0#t<,,GLL''0 - **FLL..v6 + 	##%""$r   c               s(    V ^8  d   QhRRRRRRRR/# )r   modifierr2   rN   rI   rH   r   r   r   r   r   r   r      s)      c 3  QT r   c                s^   V P                   f.   RV 2p\        P                  ! \        P                  VR4       R# \        P
                  ! 4       pW%n        W5n        ^ Vn        V P                   P                  V4      pRV RV 2p\        P                  ! \        P                  VR4       V# )z(Adds grab for modifier, returns grab id.z/INPUT EVENT MANAGER: No device to add grab for Tz!INPUT EVENT MANAGER: Grab id for : )
r   r   r%   r&   r   ZKeyDefinitionrN   rH   	modifiersr>   )r!   rQ   rN   rH   r*   rB   r6   s   &&&&   r   add_grab_for_modifierZ'InputEventManager.add_grab_for_modifier   s     <<CH:NC 0 0#t<I  "	
,,++B/1(2gYGE,,c48r   c               r.   )r   rQ   r2   r6   rI   r   r   r   r   r   r   r   r      s!     
9 
9 
9s 
9t 
9r   c                s   V P                   f.   RV 2p\        P                  ! \        P                  VR4       R# V P                   P	                  V4       RV RV 2p\        P                  ! \        P                  VR4       R# )zRemoves grab for modifier.Nz3INPUT EVENT MANAGER: No device to remove grab from Tz)INPUT EVENT MANAGER: Grab id removed for rR   )r   r   r%   r&   rD   )r!   rQ   r6   r*   r3   r   remove_grab_for_modifierZ*InputEventManager.remove_grab_for_modifier   sq     <<GzRC 0 0#t<$$W-9(2gYOE,,c48r   c               r:   r   r1   r2   r   r   r   r   r   r   r   r      s     1 1C 1 1r   c                    RpV'       d   VRV 2,          p\         P                  ! \         P                  VR4       \        P                  P                  V P                  4       R# )z2Grabs the keyboard, e.g. when entering learn mode.z&INPUT EVENT MANAGER: Grabbing keyboard	 Reason: TN)r   r%   r&   r   r'   grab_keyboardr   r!   r1   r*   rL   r   rZ   ZInputEventManager.grab_keyboard   sK     7Yvh''CE,,c48""4<<0r   c               r:   rW   r   r   r   r   r   r      s     3 3c 34 3r   c                rX   )z4Removes keyboard grab, e.g. when exiting learn mode.z(INPUT EVENT MANAGER: Ungrabbing keyboardrY   TN)r   r%   r&   r   r'   ungrab_keyboardr   r[   rL   r   r\   Z!InputEventManager.ungrab_keyboard   sK     9Yvh''CE,,c48$$T\\2r   c               r:   )r   eventAtspi.Eventr   r0   r   r   r   r   r   r      s      ; 4 r   c                sl    \         P                  ! V4      pVP                  4       pW n        RV n        V# )zProcesses this Braille event.N)r   ZBrailleEventprocessr   r   )r!   r]   Zbraille_eventresult   &&  r   process_braille_eventZ'InputEventManager.process_braille_event   s5     $007&&(!.,0)r   c               r:   )r   r]   r^   r   r   r   r   r   r   r   r      s     - - - -r   c                s~    \         P                  ! V4      pVP                  V P                  V4      4       W n        R# )zProcesses this Mouse event.N)r   MouseButtonEventset_click_count"_determine_mouse_event_click_countr   )r!   r]   Zmouse_eventrL   r   process_mouse_button_eventZ,InputEventManager.process_mouse_button_event   s3     "2259##D$K$KK$XY!,r   c               r:   )r   r]   z!input_event.RemoteControllerEventr   r   r   r   r   r   r   r      s     1 15V 1[_ 1r   c                s     Wn         RV n        R# )z&Processes this RemoteController event.N)r   r   r!   r]      &&r   process_remote_controller_eventZ1InputEventManager.process_remote_controller_event   s    
 "',0)r   c               s4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r   r   zAtspi.Devicepressedr0   rH   rI   rN   rT   textr2   r   r   r   r   r   r   r   	  sP     < << < 	<
 < < < 
<r   c                s<   V P                   '       d+   Rp\        P                  ! \        P                  VR4       R# \        P
                  ! W#WEV4      pWP                  V P                  39   d+   Rp\        P                  ! \        P                  VR4       R# \        P                  ! 4       p	V'       Ed   V	P                  4       p
\        P                  ! V
4      '       g   \        P                  ! 4       pVe?   Tp
RV
.p\        P                  ! \        P                  VR4       V	P                  V
4       M+RV
R.p\        P                  ! \        P                   VR4       VP#                  V
4       VP%                  V	P'                  4       4       VP)                  \*        P                  ! 4       P-                  4       4       EM.V P/                  4       '       d   \1        V P                  \        P
                  4      '       g   Q hVP#                  V P                  P3                  4       4       VP%                  V P                  P5                  4       4       VP)                  V P                  P7                  4       4       MpVP#                  V	P                  4       4       VP%                  V	P'                  4       4       VP)                  \*        P                  ! 4       P-                  4       4       VP9                  V P;                  V4      4       VP=                  4        VP?                  4       '       dR   V PA                  WP                  4      '       d0   R	p\        P                  ! \        P                  VR4       RV n        MWn        Wn        R# )
z$Processes this Atspi keyboard event.z9INPUT EVENT MANAGER: Keyboard event processing is paused.TFz.INPUT EVENT MANAGER: Received duplicate event.Nz9INPUT EVENT MANAGER: Updating window and active window tozWARNING:z.cannot be active window. No alternative found.z9INPUT EVENT MANAGER: Clearing last non modifier key event)!r   r   r%   r&   r   KeyboardEventr   r   r   get_managerZget_active_windowr
   Zcan_be_active_windowZfind_active_windowr=   Zset_active_windowZLEVEL_WARNINGZ
set_windowZ
set_objectget_locus_of_focusZ
set_scriptr   Zget_active_scriptlast_event_was_keyboard
isinstanceZ
get_window
get_objectZ
get_scriptrd   %_determine_keyboard_event_click_countr_   is_modifier_keyis_release_for)r!   r   rj   rH   rN   rT   rk   r*   r]   ZmanagerZwindowZ
new_windowr@   s   &&&&&&&      r   r(   Z(InputEventManager.process_keyboard_event	  s    <<<MC 0 0#t<))'FtT++T-N-NOOBC 0 0#t<++-7..0F33F;;(;;=
)'FY[abF&&u'7'7F--f5 )&2bcF&&u':':FDIV$W779:^779KKMN))++d44k6O6OPPPPT33>>@AT33>>@AT33>>@AW6689W779:^779KKMNdHHOP  """"5*@*@AAQ##E$4$4c4@48105-!&r   c               r:   )r   r]   zinput_event.KeyboardEventr   rI   r   r   r   r   r   r   J  s      ;T Y\ r   c                s   V P                  4       '       g   ^# VP                  4       '       d   V P                  pM V P                  ;'       g    V P                  p\	        V\
        P                  4      '       g   Q hVP                  VP                  ,
          \        P                  8  g?   VP                  VP                  8w  g$   VP                  4       VP                  4       8w  d   ^# VP                  4       pVP                  4       '       g   V# VP                  4       '       d   V# VP                  4       '       d   V^8X  g   V^8X  d   ^# V^,           # z$Determines the click count of event.)ro   rs   r   r   rp   r   rl   timer   doubleClickTimeoutkeyval_namerq   get_click_countis_pressed_key)r!   r]   Z
last_eventZ
last_countra   r   rr   Z7InputEventManager._determine_keyboard_event_click_countJ  s    ++--  ""//J::TTd>T>TJ*k&?&?@@@@JJ(8+F+FF!7!77*"7"7"99//1
##%%$$&&!!##
aJ!OA~r   c               r:   )r   r]   zinput_event.MouseButtonEventr   rI   r   r   r   r   r   r   d  s     < <8T <Y\ <r   c                s   V P                  4       '       g   ^# \        V P                  \        P                  4      '       g   Q hVP
                  '       g   V P                  P                  4       # V P                  P                  VP                  8w  d   ^# VP                  V P                  P                  ,
          \        P                  8  d   ^# V P                  P                  4       ^,           # ru   )last_event_was_mouse_buttonrp   r   r   rc   rj   ry   buttonrv   r   rw   rg   rh   r   re   Z4InputEventManager._determine_mouse_event_click_countd  s     //11$00+2N2NOOOO}}}))99;;!!((ELL8::..333h6Q6QQ%%557!;;r   c               r   r   r   r0   r   r   r   r   r   r   t  s     M M Mr   c                J    \        V P                  \        P                  4      # )z3Returns True if the last event is a keyboard event.)rp   r   r   rl   r    r"   r   ro   Z)InputEventManager.last_event_was_keyboardt  s     $00+2K2KLLr   c               r   r}   r   r   r   r   r   r   y  s     P PT Pr   c                r~   )z7Returns True if the last event is a mouse button event.)rp   r   r   rc   r    r"   r   r{   Z-InputEventManager.last_event_was_mouse_buttony  s     $00+2N2NOOr   c                s   Ve   Vf   R# \        V\        P                  4      '       d!   \        V\        P                  4      '       g   R# VP                  4       '       g   VP                  4       '       g   R# VP                  VP                  8H  ;'       d;    VP
                  VP
                  8H  ;'       d    VP                  VP                  8H  pV'       d,   VP                  '       g   VP                  VP                  8H  pRVP                  4        RVP                  4        RV 2p\        P                  ! \        P                  VR4       V# )z/Returns True if event1 is a release for event2.Fr5   z is release for rR   T)rp   r   rl   rz   ZidZhw_coderx   rs   rT   Zas_single_line_stringr   r%   r&   )r!   Zevent1Zevent2r`   r*   s   &&&  r   rt   Z InputEventManager.is_release_for~  s$    >V^&+";";<<V[%>%>??  ""&*?*?*A*Afii' 9 9&..09 9""f&8&88 	 &000%%)9)99F $F$@$@$B#C D$::<=RxI 	 	E,,c48r   c                s    V P                   VJ d   R# V P                  4       '       g   R# V P                  f   R# WP                  8X  d   R# V P                  V P                  V4      # )zSReturns True if the last event equals the provided event, or is the release for it.TF)r   ro   r   rt   rg   rh   r   )last_event_equals_or_is_release_for_eventZ;InputEventManager.last_event_equals_or_is_release_for_event  s^     !!U*++--,,4555""4#D#DeLLr   c                s    V P                   f   R# V P                  4       '       g   R# V P                   P                  V P                  P                  3# )z*Returns the last keyval name and modifiers) i    )r   ro   rx   r   rT   r    r"   r   _last_key_and_modifiersZ)InputEventManager._last_key_and_modifiers  sL     ,,4L++--L00<<d>T>T>^>^^^r   c                s    \        V P                  4       ^,          ^\        P                  P                  ,          ,          4      '       d+   Rp\
        P                  ! \
        P                  VR4       R# R# )z;Returns True if the last event is believed to be a command.z,INPUT EVENT MANAGER: Last event was command.TF)r0   r   r   ModifierTypeCONTROLr   r%   r&   r)   r+   r   last_event_was_commandZ(InputEventManager.last_event_was_command  sV     ,,.q1A9K9K9S9S4SSTT@C 0 0#t<r   c                s`   V P                  4       ^ ,          pV'       g   R# Rp\        P                  ! V^ 4      P                  R4      pV F,  pVP	                  VP                  4       4      '       g   K*  Rp M	  V'       d+   RV.p\        P                  ! \        P                  VR4       V# )zHReturns True if the last event is believed to be a shortcut key for obj.FZ;Tz0INPUT EVENT MANAGER: Last event was shortcut for)	r   r	   Zget_action_key_bindingZsplitZendswithZupperr   r=   r&   )r!   ZobjstringrvZkeysZkeyr@   rE   r   last_event_was_shortcut_forZ-InputEventManager.last_event_was_shortcut_for  s     --/2..sA6<<SAC||FLLN++ 
 H#NFu//>	r   c                s    V P                  4       '       g   R# V P                  P                  4       '       d+   Rp\        P                  ! \        P
                  VR4       R# R# )zAReturns True if the last event is believed to be a printable key.Fz1INPUT EVENT MANAGER: Last event was printable keyT)ro   r   Zis_printable_keyr   r%   r&   r)   r+   r   last_event_was_printable_keyZ.InputEventManager.last_event_was_printable_key  sN     ++--!!2244EC 0 0#t<r   c                s   V P                  4       ;'       gq    V P                  4       ;'       gY    V P                  4       ;'       gA    V P                  4       ;'       g)    V P	                  4       ;'       g    V P                  4       # )zBReturns True if the last event is believed to be caret navigation.)#last_event_was_character_navigationlast_event_was_word_navigationlast_event_was_line_navigation'last_event_was_line_boundary_navigation'last_event_was_file_boundary_navigationlast_event_was_page_navigationr    r"   r   last_event_was_caret_navigationZ1InputEventManager.last_event_was_caret_navigation  s     779 5 52245 52245 5 ;;=5 5 ;;=	5 5
 224	5r   c                    V P                  4       w  rVR9  d   RpM1\        V^\        P                  P                  ,          ,          4      pV'       d)   Rp\
        P                  ! \
        P                  VR4       V# )zAReturns True if the last event is believed to be caret selection.Fz3INPUT EVENT MANAGER: Last event was caret selectionT)HomeEndUpDownLeftRightr   r0   r   r   SHIFTr   r%   r&   r!   r   modsr   r*      &    r   last_event_was_caret_selectionZ0InputEventManager.last_event_was_caret_selection  sg     335GGBdQ%"4"4":":::;BGC 0 0#t<	r   c                    V P                  4       w  rVR9  d   RpM-V^\        P                  P                  ,          ,          '       * pV'       d)   Rp\        P
                  ! \        P                  VR4       V# )zKReturns True if the last event is believed to be backward caret navigation.Fz=INPUT EVENT MANAGER: Last event was backward caret navigationT)r   r   r   r   r   r   r   r%   r&   r   r   r   (last_event_was_backward_caret_navigationZ:InputEventManager.last_event_was_backward_caret_navigation  sd     335'BA!3!3!9!9999BQC 0 0#t<	r   c                r   )zJReturns True if the last event is believed to be forward caret navigation.Fz<INPUT EVENT MANAGER: Last event was forward caret navigationTr   r   r   r   r   r   'last_event_was_forward_caret_navigationZ9InputEventManager.last_event_was_forward_caret_navigation  se     335**BA!3!3!9!9999BPC 0 0#t<	r   c                r   )zIReturns True if the last event is believed to be forward caret selection.Fz;INPUT EVENT MANAGER: Last event was forward caret selectionTr   r   r   r   r   &last_event_was_forward_caret_selectionZ8InputEventManager.last_event_was_forward_caret_selection  sg     335**BdQ%"4"4":":::;BOC 0 0#t<	r   c                `   V P                  4       w  rVR9  d   RpMaV^\        P                  P                  ,          ,          '       g/   V^\        P                  P                  ,          ,          '       d   RpMRpV'       d)   Rp\
        P                  ! \
        P                  VR4       V# )zFReturns True if the last event is believed to be character navigation.FTz8INPUT EVENT MANAGER: Last event was character navigationr   r   r   r   r   r   ALTr   r%   r&   r   r   r   r   Z5InputEventManager.last_event_was_character_navigation!  s     335**BA++33333ta5CUCUCYCY>Y7Y7YBBLC 0 0#t<	r   c                r   )zAReturns True if the last event is believed to be word navigation.Fz3INPUT EVENT MANAGER: Last event was word navigationTr   r   r0   r   r   r   r   r%   r&   r   r   r   r   Z0InputEventManager.last_event_was_word_navigation1  sg     335**BdQ%"4"4"<"<<<=BGC 0 0#t<	r   c                    V P                  4       w  rVR8w  d   RpM1\        V^\        P                  P                  ,          ,          4      pV'       d)   Rp\
        P                  ! \
        P                  VR4       V# )zJReturns True if the last event is believed to be previous-word navigation.r   Fz<INPUT EVENT MANAGER: Last event was previous-word navigationTr   r   r   r   'last_event_was_previous_word_navigationZ9InputEventManager.last_event_was_previous_word_navigation?  sf     335VBdQ%"4"4"<"<<<=BPC 0 0#t<	r   c                r   )zFReturns True if the last event is believed to be next-word navigation.r   Fz8INPUT EVENT MANAGER: Last event was next-word navigationTr   r   r   r   #last_event_was_next_word_navigationZ5InputEventManager.last_event_was_next_word_navigationM  sf     335WBdQ%"4"4"<"<<<=BLC 0 0#t<	r   c                   V P                  4       w  rVR9  d   RpMV^\        P                  P                  ,          ,          '       d   RpM]\        P
                  ! 4       P                  4       p\        P                  ! V4      '       d   RpM\        P                  ! V4      '       * pV'       d)   Rp\        P                  ! \        P                  VR4       V# )zAReturns True if the last event is believed to be line navigation.Fz3INPUT EVENT MANAGER: Last event was line navigationTr   r   r   r   r   r   r   rm   rn   r
   Zis_single_lineZ'is_widget_controlled_by_line_navigationr   r%   r&   r!   r   r   r   focusr*      &     r   r   Z0InputEventManager.last_event_was_line_navigation[  s     335'BA++33333B!--/BBDE))%00$LLUSSGC 0 0#t<	r   c                sT   V P                  4       w  rVR9   d/   V^\        P                  P                  ,          ,          '       g   RpM-V^\        P                  P                  ,          ,          '       * pV'       d)   Rp\
        P                  ! \
        P                  VR4       V# )zFReturns True if the last event is believed to be paragraph navigation.Fz8INPUT EVENT MANAGER: Last event was paragraph navigationTr   )r   r   r   r   r   r   r%   r&   r   r   r   #last_event_was_paragraph_navigationZ5InputEventManager.last_event_was_paragraph_navigationo  s     335.(TA9K9K9S9S4S-S-SBA!3!3!9!9999BLC 0 0#t<	r   c                r   )zQReturns True if the last event is believed to be navigation to start/end of line.Fz<INPUT EVENT MANAGER: Last event was line boundary navigationTr   r   )r   r   r   r   r   r%   r&   r   r   r   r   Z9InputEventManager.last_event_was_line_boundary_navigation}  sd     335(BA!3!3!;!;;;;BPC 0 0#t<	r   c                r   )zRReturns True if the last event is believed to be navigation to top/bottom of file.Fz<INPUT EVENT MANAGER: Last event was file boundary navigationTr   r   r   r   r   r   Z9InputEventManager.last_event_was_file_boundary_navigation  sf     335(BdQ%"4"4"<"<<<=BPC 0 0#t<	r   c                r   )zAReturns True if the last event is believed to be page navigation.Fz3INPUT EVENT MANAGER: Last event was page navigationTZPage_UpZ	Page_Downr   r   r   r   r   Z0InputEventManager.last_event_was_page_navigation  s     33511BA++33333B!--/BBDE))%00$LLUSSGC 0 0#t<	r   c                s   V P                  4       w  rVP                  4       '       d3   \        V^\        P                  P
                  ,          ,          4      pM;VR9   d3   \        V^\        P                  P                  ,          ,          4      pMRpV'       d)   Rp\        P                  ! \        P                  VR4       V# )z?Returns True if the last event is believed to be a page switch.Fz/INPUT EVENT MANAGER: Last event was page switchTr   )
r   Z	isnumericr0   r   r   r   r   r   r%   r&   r   r   r   last_event_was_page_switchZ,InputEventManager.last_event_was_page_switch  s     335dQ%"4"4"8"8889B//dQ%"4"4"<"<<<=BBCC 0 0#t<	r   c                r   )z@Returns True if the last event is believed to be Tab navigation.FTz2INPUT EVENT MANAGER: Last event was Tab navigation)TabZISO_Left_Tabr   r   r   r   last_event_was_tab_navigationZ/InputEventManager.last_event_was_tab_navigation  s     33500BA++33333ta5CUCUCYCY>Y7Y7YBBFC 0 0#t<	r   c                s   \         P                  ! 4       P                  4       p\        P                  ! V4      '       g   RpMPV P                  4       '       d   V P                  4       pM)V P                  4       '       d   V P                  4       pMRpV'       d)   Rp\        P                  ! \        P                  VR4       V# )z>Returns True if the last event is believed to be a table sort.Fz.INPUT EVENT MANAGER: Last event was table sortT)r   rm   rn   r
   Zis_table_headerr{   last_event_was_primary_clickro   last_event_was_return_or_spacer   r%   r&   )r!   r   r   r*   r8   r   last_event_was_table_sortZ+InputEventManager.last_event_was_table_sort  s     ))+>>@**511B--//224B))++446BBBC 0 0#t<	r   c                sv   V P                  4       w  rVR9  d   R# V^\        P                  P                  ,          ,          '       g]   V^\        P                  P                  ,          ,          '       g/   V^\        P                  P
                  ,          ,          '       d   R# VR,          '       d   R# R# )z6Returns True if the last event is an unmodified arrow.FT)r   r   r   r   i   )r   r   r   r   r   r   )r!   r   r   s   &  r   last_event_was_unmodified_arrowZ1InputEventManager.last_event_was_unmodified_arrow  s     33588!u))11111Q%,,22222Q%,,00000 &==r   c                s    V P                  4       R,          pV^\        P                  P                  ,          ,          # )z0Returns True if the last event was alt-modified.rS   )r   r   r   r   )r!   r   r+   r   last_event_was_alt_modifiedZ-InputEventManager.last_event_was_alt_modified  s3     ++-b1a5--11111r   c                6    V P                  4       ^ ,          R8H  # )z,Returns True if the last event is BackSpace.Z	BackSpacer   r    r"   r   last_event_was_backspaceZ*InputEventManager.last_event_was_backspace  s     ++-a0K??r   c                r   )z'Returns True if the last event is Down.r   r   r    r"   r   last_event_was_downZ%InputEventManager.last_event_was_down       ++-a0F::r   c                r   )z%Returns True if the last event is F1.ZF1r   r    r"   r   last_event_was_f1Z#InputEventManager.last_event_was_f1       ++-a0D88r   c                r   )z'Returns True if the last event is Left.r   r   r    r"   r   last_event_was_leftZ%InputEventManager.last_event_was_left  r   r   c                6    V P                  4       ^ ,          R9   # )z0Returns True if the last event is Left or Right.r   r   r    r"   r   last_event_was_left_or_rightZ.InputEventManager.last_event_was_left_or_right  s     ++-a04EEEr   c                r   )z7Returns True if the last event is Page_Up or Page_Down.r   r   r    r"   r   #last_event_was_page_up_or_page_downZ5InputEventManager.last_event_was_page_up_or_page_down       ++-a04LLLr   c                r   )z(Returns True if the last event is Right.r   r   r    r"   r   last_event_was_rightZ&InputEventManager.last_event_was_right  s     ++-a0G;;r   c                r   )z)Returns True if the last event is Return.Returnr   r    r"   r   last_event_was_returnZ'InputEventManager.last_event_was_return  s     ++-a0H<<r   c                r   )z2Returns True if the last event is Return or space.)r   space r   r    r"   r   r   Z0InputEventManager.last_event_was_return_or_space   r   r   c                r   )z8Returns True if the last event is Return, Tab, or space.)r   r   r   r   r   r    r"   r   "last_event_was_return_tab_or_spaceZ4InputEventManager.last_event_was_return_tab_or_space%  s     ++-a04SSSr   c                r   )z(Returns True if the last event is space.)r   r   r   r    r"   r   last_event_was_spaceZ&InputEventManager.last_event_was_space*       ++-a0NBBr   c                r   )z&Returns True if the last event is Tab.r   r   r    r"   r   last_event_was_tabZ$InputEventManager.last_event_was_tab/  s     ++-a0E99r   c                r   )z%Returns True if the last event is Up.r   r   r    r"   r   last_event_was_upZ#InputEventManager.last_event_was_up4  r   r   c                r   )z-Returns True if the last event is Up or Down.r   r   r    r"   r   last_event_was_up_or_downZ+InputEventManager.last_event_was_up_or_down9  r   r   c                s0   V P                  4       w  rVR9   d   RpMIVP                  4       R8X  d3   \        V^\        P                  P
                  ,          ,          4      pMRpV'       d)   Rp\        P                  ! \        P                  VR4       V# )z8Returns True if the last event is believed to be delete.TZdFz*INPUT EVENT MANAGER: Last event was delete)ZDeleteZ	KP_Delete)	r   lowerr0   r   r   r   r   r%   r&   r   r   r   last_event_was_deleteZ'InputEventManager.last_event_was_delete>  sz     335,,B\\^s"dQ%"4"4"<"<<<=BB>C 0 0#t<	r   c                d   V P                  4       w  rVP                  4       R8w  d   R# V^\        P                  P                  ,          ,          '       dY   V^\        P                  P
                  ,          ,          '       g+   Rp\        P                  ! \        P                  VR4       R# R# )zAReturns True if the last event is believed to be the cut command.ZxFz'INPUT EVENT MANAGER: Last event was cutT	r   r   r   r   r   r   r   r%   r&   r!   r   r   r*   r8   r   last_event_was_cutZ$InputEventManager.last_event_was_cutN  s     335<<>S !u))11111$eFXFXF^F^A^:^:^;C 0 0#t<r   c                *   V P                  4       w  rVP                  4       R8w  g/   V^\        P                  P                  ,          ,          '       g   RpM\
        P                  ! V P                  P                  4       4      '       d*   V^\        P                  P                  ,          ,          pM-V^\        P                  P                  ,          ,          '       * pV'       d)   Rp\        P                  ! \        P                  VR4       V# )zBReturns True if the last event is believed to be the copy command.ZcFz(INPUT EVENT MANAGER: Last event was copyTr   r   r   r   r   r
   Zis_terminalr   rq   r   r   r%   r&   r   r   r   last_event_was_copyZ%InputEventManager.last_event_was_copy[  s     335<<>S qE4F4F4N4N/N(N(NB$$T%;%;%F%F%HIIU//5555BA!3!3!9!9999B<C 0 0#t<	r   c                r   )zCReturns True if the last event is believed to be the paste command.ZvFz)INPUT EVENT MANAGER: Last event was pasteTr   r   r   r   last_event_was_pasteZ&InputEventManager.last_event_was_pastek  s     335<<>S qE4F4F4N4N/N(N(NB$$T%;%;%F%F%HIIU//5555BA!3!3!9!9999B=C 0 0#t<	r   c                r   )zBReturns True if the last event is believed to be the undo command.zFz(INPUT EVENT MANAGER: Last event was undoTr   r   r8   r   last_event_was_undoZ%InputEventManager.last_event_was_undo{  s     335<<>S !u))11111$eFXFXF^F^A^:^:^<C 0 0#t<r   c                sP   V P                  4       w  rVP                  4       R8X  dZ   V^\        P                  P                  ,          ,          ;'       d)    V^\        P                  P
                  ,          ,          pMuVP                  4       R8X  d_   V^\        P                  P                  ,          ,          ;'       d.    V^\        P                  P
                  ,          ,          '       * pMRpV'       d)   Rp\        P                  ! \        P                  VR4       V# )zBReturns True if the last event is believed to be the redo command.r   ZyFz(INPUT EVENT MANAGER: Last event was redoTr   r   r   r   last_event_was_redoZ%InputEventManager.last_event_was_redo  s     335<<>S U//7777``D1HZHZH`H`C`<`B\\^s"U//7777 = =qE$6$6$<$<<<<  B<C 0 0#t<	r   c                r   )zHReturns True if the last event is believed to be the select all command.ZaFz.INPUT EVENT MANAGER: Last event was select allTr   r   r8   r   last_event_was_select_allZ+InputEventManager.last_event_was_select_all  s     335<<>S 1**222224!uGYGYG_G_B_;_;_BC 0 0#t<r   c                    V P                  4       '       g   R# V P                  P                  R8X  dG   V P                  P                  '       d+   Rp\        P
                  ! \        P                  VR4       R# R# )z8Returns True if the last event is a primary mouse click.F1z1INPUT EVENT MANAGER: Last event was primary clickTr{   r   r|   rj   r   r%   r&   r)   r+   r   r   Z.InputEventManager.last_event_was_primary_click  s^     //11!!((C/D4J4J4R4R4REC 0 0#t<r   c                    V P                  4       '       g   R# V P                  P                  R8X  dG   V P                  P                  '       g+   Rp\        P
                  ! \        P                  VR4       R# R# )z:Returns True if the last event is a primary mouse release.Fr   z3INPUT EVENT MANAGER: Last event was primary releaseTr   r)   r+   r   last_event_was_primary_releaseZ0InputEventManager.last_event_was_primary_release  s^     //11!!((C/8N8N8V8V8VGC 0 0#t<r   c                s    V P                  4       '       g   R# V P                  P                  R8X  d+   Rp\        P                  ! \        P
                  VR4       R# R# )zCReturns True if the last event is a primary mouse click or release.Fr   z<INPUT EVENT MANAGER: Last event was primary click or releaseT)r{   r   r|   r   r%   r&   r)   r+   r   'last_event_was_primary_click_or_releaseZ9InputEventManager.last_event_was_primary_click_or_release  sM     //11!!((C/PC 0 0#t<r   c                r   )z7Returns True if the last event is a middle mouse click.F2z0INPUT EVENT MANAGER: Last event was middle clickTr   r)   r+   r   last_event_was_middle_clickZ-InputEventManager.last_event_was_middle_click  s^     //11!!((C/D4J4J4R4R4RDC 0 0#t<r   c                r   )z9Returns True if the last event is a middle mouse release.Fr   z2INPUT EVENT MANAGER: Last event was middle releaseTr   r)   r+   r   last_event_was_middle_releaseZ/InputEventManager.last_event_was_middle_release  s^     //11!!((C/8N8N8V8V8VFC 0 0#t<r   c                r   )z:Returns True if the last event is a secondary mouse click.F3z3INPUT EVENT MANAGER: Last event was secondary clickTr   r)   r+   r   last_event_was_secondary_clickZ0InputEventManager.last_event_was_secondary_click  s^     //11!!((C/D4J4J4R4R4RGC 0 0#t<r   c                r   )z<Returns True if the last event is a secondary mouse release.Fr   z5INPUT EVENT MANAGER: Last event was secondary releaseTr   r)   r+   r    last_event_was_secondary_releaseZ2InputEventManager.last_event_was_secondary_release  s^     //11!!((C/8N8N8V8V8VIC 0 0#t<r   )r   r   r   r   r   r   r   N)Tr   )r   )QZ__name__Z
__module__Z__qualname__Z__firstlineno____doc__r#   r,   r-   r4   r9   rC   rF   rM   rO   rP   rU   rV   rZ   r\   rb   rf   ri   r(   rr   re   ro   r{   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z__static_attributes__r   r   r   r   r   7   s   7#	B=<A*	2	8%"$
913-1<B4< M
P
6M"	_&5 ((  $&2@
;
9
;
F
M
<
=
M
T
C
:
9
C
   
$






r   r   c                 s    \         # )z*Returns the Input Event Manager singleton.)_managerr   r   r   rm   rm     s    Or   )r   Z
__future__r   Z__id__Z__version__Z__date__Z__copyright__Z__license__Ztypingr   ZgiZrequire_versionZgi.repositoryr   r   r   r   r   r   r   Z	ax_objectr	   Zax_utilitiesr
   r   r   r   rm   r   r   r   <module>r      sz   4 4 #;   	   7E "        %A AH r   