+
    Qi&  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t]P                  ! R	R
4       ]P                  ! RR
4       ^ 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  ]'       d    ]P                  ! RR4       ^ RIH!t! ^RI"H#t#  ! R R4      t$ ! R R]PJ                  4      t&]$! 4       t'R  R! lt(R# )"z3Module for performing accessible actions via a list)annotationsz$Id$z
$Revision$z$Date$zCopyright (c) 2023 Igalia, S.L.ZLGPLN)AnyCallableTYPE_CHECKINGGdkz3.0Gtk)r   GLibr   )cmdnames)dbus_service)debug)focus_manager)	guilabels)input_event)keybindings)messages)script_manager)AXObject)AXUtilitiesAtspiz2.0)r   )defaultc                  s    ] tR t^=tRtR R ltRR R lltRR R lltR R	 ltR
 R lt	R R lt
R R ltR R lt]P                  RR R ll4       tRtR# )ActionPresenterz?Provides a list for performing accessible actions on an object.c                   V ^8  d   QhRR/#    returnNone Zformat   ":/usr/lib/python3.14/site-packages/orca/action_presenter.py__annotate__ActionPresenter.__annotate__@   s     
F 
F$ 
F    c                	s.   V P                  R 4      V n        \        P                  ! 4       V n        RV n        RV n        RV n        Rp\        P                  ! \        P                  VR 4       \        P                  ! 4       pVP                  RV 4       R# )TNz-ACTION PRESENTER: Registering D-Bus commands.r   )get_handlers	_handlersr   KeyBindings	_bindings_gui_obj_windowr	   print_message
LEVEL_INFOr   Zget_remote_controllerZregister_decorated_module)selfmsgZ
controllers   &  r   __init__ZActionPresenter.__init__@   sv    CGCTCTUYCZ2=2I2I2K'+	-1	04=E,,c48!779
,,->Er    c               s$    V ^8  d   QhRRRRRR/# )r   refreshbool
is_desktopr   zkeybindings.KeyBindingsr   r   r   r   r   r   L   s(        
!	r    c                s   V'       dH   RV 2p\         P                  ! \         P                  VR4       V P                  4        V P                  # V P                  P                  4       '       d   V P                  4        V P                  # )z)Returns the action-presenter keybindings.z3ACTION PRESENTER: Refreshing bindings. Is desktop: T)r	   r(   r)   _setup_bindingsr$   Zis_empty)r*   r-   r/   r+      &&& r   get_bindingsZActionPresenter.get_bindingsL   sn     G
|TC 0 0#t<  " ~~ ^^$$&&  "~~r    c                    V ^8  d   QhRRRR/# )r   r-   r.   r   z(dict[str, input_event.InputEventHandler]r   r   r   r   r   r   \   s      D 5] r    c                s    V'       d9   Rp\         P                  ! \         P                  VR4       V P                  4        V P                  # )z&Returns the action-presenter handlers.z&ACTION PRESENTER: Refreshing handlers.T)r	   r(   r)   _setup_handlersr"   )r*   r-   r+   s   && r   r!   ZActionPresenter.get_handlers\   s:     :C 0 0#t<  "~~r    c               r   r   r   r   r   r   r   r   f   s     9 9 9r    c                s    / V n         \        P                  ! V P                  \        P
                  4      V P                   R&   Rp\        P                  ! \        P                  VR4       R# )z2Sets up the action-presenter input event handlers.show_actions_listz"ACTION PRESENTER: Handlers set up.TN)	r"   r   ZInputEventHandlerr5   r   ZSHOW_ACTIONS_LISTr	   r(   r)   r*   r+      & r   r4   ZActionPresenter._setup_handlersf   s[      ))&&**, 	*+
 3E,,c48r    c               r   r   r   r   r   r   r   r   s   s     9 9 9r    c           	     sH   \         P                  ! 4       V n        V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          4      4       Rp\        P                  ! \        P                  VR4       R# )z*Sets up the action-presenter key bindings.Zar5   z"ACTION PRESENTER: Bindings set up.TN)r   r#   r$   addZ
KeyBindingZDEFAULT_MODIFIER_MASKZORCA_SHIFT_MODIFIER_MASKr"   r	   r(   r)   r6   r7   r   r0   ZActionPresenter._setup_bindingss   su     %002""114423	5	6 3E,,c48r    c               r   r   r   r   r   r   r   r      s     4 4 4r    c                s(   RV P                   RV P                  .p\        P                  ! \        P                  VR4       Rp\
        P                  ! V P                   4      p\        P                  ! 4       P                  W0P                   4      p\        P                  ! 4       P                  WB4       \        P                  ! 4       pVP                  V4       VP                  V P                  4       VP                  RV P                   4       R# )z>Restores focus to the object associated with the actions list.z$ACTION PRESENTER: Restoring focus toZinTz(Action Presenter list is being destroyedN)r&   r'   r	   print_tokensr)   r   Zget_applicationr   get_managerZ
get_scriptZset_active_scriptr
   Zclear_stateZset_active_windowZset_locus_of_focus)r*   tokensZreasonZappscriptmanagers   &     r   _restore_focusZActionPresenter._restore_focus   s     9$))T4<<X5++VT:;))$))4++-88iiH""$66vF++-F#!!$,,/""43r    c               r   r   r   r   r   r   r   r      s      d r    c                s4    RV n         V P                  4        R# )z1Clears the GUI reference and then restores focus.N)r%   r>   r*      &r   _clear_gui_and_restore_focusZ,ActionPresenter._clear_gui_and_restore_focus   s     	r    c               r3   )r   actionZstrr   r   r   r   r   r   r   r      s     ) )c )d )r    c                s   V P                   f+   Rp\        P                  ! \        P                  VR4       R# V P                   P	                  4        \
        P                  ! V P                  V4      pRVRV P                  RV.p\        P                  ! \        P                  VR4       \        P                  ! V P                   P                  4       R# )z%Attempts to perform the named action.Nz@ACTION PRESENTER: _perform_action called when self._gui is None.TzACTION PRESENTER: PerformingZonz
succeeded:)r%   r	   r(   r)   Zhider   Zdo_named_actionr&   r9   r   Zidle_adddestroy)r*   rB   r+   Zresultr;   s   &&   r   _perform_actionZActionPresenter._perform_action   s     99TC 0 0#t<		))$))V<0&$		<Y_`5++VT:dii''(r    Nc               s(    V ^8  d   QhRRRRRRRR/# )r   r<   zdefault.Scripteventzinput_event.InputEvent | Nonenotify_userr.   r   r   r   r   r   r   r      s2     & && -& 	&
 
&r    c                s*   RVRVRV.p\         P                  ! \         P                  VR4       \        P                  ! 4       pVP                  4       ^,          ;'       g    VP                  4       pVf4   \        P                  p\        P                  pVP                  Wx4       R# / p	\        \        P                  ! V4      4       Fs  p
\        P                  ! Wj4      p\        P                  ! Wj4      pRV
 R2VRV RV R	2.p\         P                  ! \         P                  VR4       T;'       g    TW&   Ku  	  V	P!                  4       '       gb   \        P"                  ! V4      ;'       g    VP$                  P'                  V4      pVP                  \        P(                  V,          4       R# W`n        VP-                  4       V n        \1        WP2                  V P4                  4      V n        V P6                  P9                  4        R# )
z7Shows a list with all the available accessible actions.z,ACTION PRESENTER: show_actions_list. Script:zEvent:znotify_user:TzACTION PRESENTER: Action z onz: 'z' localized description: 'Z')r	   r9   r)   r
   r:   Z&get_active_mode_and_object_of_interestZget_locus_of_focusr   ZLOCATION_NOT_FOUND_FULLZLOCATION_NOT_FOUND_BRIEFZpresent_messageZranger   Zget_n_actionsZget_action_nameZget_action_descriptionitemsZget_nameZspeech_generatorZget_localized_role_nameZNO_ACTIONS_FOUND_ONr&   Zget_active_windowr'   
ActionListrD   rA   r%   show_gui)r*   r<   rE   rF   r;   r=   ZobjZfullZbriefactionsZinamedescriptions   &&&&         r   r5   Z!ActionPresenter.show_actions_list   s    A&E>;@5++VT:++-<<>qAaaWE_E_Ea;33D55E""4/x--c23A++C3D"99#AK1!C8#D6!;K=JLFu//>'//4GM 4 }}$$S)aaV-D-D-\-\]`-aD""8#?#?$#FG	002w(<(<d>_>_`			r    )r$   r%   r"   r&   r'   )FT)F)NT)__name__
__module____qualname____firstlineno____doc__r,   r2   r!   r4   r0   r>   rA   rD   r   Zcommandr5   __static_attributes__r   r    r   r   r   =   sH    I
F 994 ) & &r    r   c                  sb   a  ] tR t^tRtR V 3R lltR R ltR R ltR R	 ltR
 R lt	Rt
V ;t# )rH   z<A Gtk.Window containing a Gtk.ListBox of accessible actions.c               s(    V ^8  d   QhRRRRRRRR/# )	r   rJ   zdict[str, str]action_handlerzCallable[[str], None]cleanup_handlerzCallable[[], None]r   r   r   r   r   r   r   ActionList.__annotate__   s2     < << .< ,	<
 
<r    c                	s  < \         SV `  \        P                  P                  R R7       V P                  \        P                  4       V P                  R4       V P                  RV P                  4       W n        W0n        \        P                  ! 4       V n        V P                  P                  \        P                   P"                  4       V P                  P                  RV P$                  4       V P                  P'                  ^4       V P                  P)                  ^4       VP+                  4        F  w  rE\        P,                  ! 4       p\        P.                  ! V^ R7      pVP1                  ^
4       VP3                  ^
4       VP5                  V4       \7        VRV4       V P                  P5                  V4       K  	  V P5                  V P                  4       V P                  RV P8                  4       R # )N)Zwindow_positionZtransient_forFrC   zrow-activated)labelZxalign_action_namezkey-press-event)Zsuperr,   r   ZWindowPositionZMOUSEZ	set_titler   ZACTIONS_LISTZset_decoratedZconnect
_on_hiddenon_option_selectedon_list_hiddenZListBox	_list_boxZset_selection_modeZSelectionModeZSINGLE_on_row_activatedZset_margin_topZset_margin_bottomrG   Z
ListBoxRowZLabelZset_margin_startZset_margin_endr8   Zsetattr_on_key_press)	r*   rJ   rS   rT   rK   rL   rowrV   	__class__s	   &&&&    r   r,   ZActionList.__init__   sf    	););)A)AQUVy--.5!Y0"0-))#*;*;*B*BC0F0FG%%a(((+!(D.."CIIK:E""2&  $GGENC.NNs# "1 	 &(:(:;r    c               $    V ^8  d   QhRRRRRR/# )r   _widgetz
Gtk.WidgetrE   zGdk.EventKeyr   r.   r   r   r   r   r   rU      s!      Z   r    c                sh    VP                   \        P                  8X  d   V P                  4        R# R# )z9Handles key presses for the window, e.g. Escape to close.TF)Zkeyvalr   Z
KEY_EscaperC   )r*   ra   rE   s   &&&r   r]   ZActionList._on_key_press   s#     <<3>>)LLNr    c               r`   )r   r[   zGtk.ListBoxr^   zGtk.ListBoxRowr   r   r   r   r   r   r   rU      s"     1 1; 1^ 1PT 1r    c                sV    \        VRR4      pV'       d   V P                  V4       R# R# )z9Handler for the 'row-activated' signal of the Gtk.ListBoxrW   N)ZgetattrrY   )r*   r[   r^   Zaction_namer1   r   r\   ZActionList._on_row_activated   s(     c>48##K0 r    c               r3   )r   _argsztuple[Any, ...]r   r   r   r   r   r   r   rU     s       T r    c                sv    Rp\         P                  ! \         P                  VR4       V P                  4        R# )z'Handler for the 'destroy' window signalz&ACTION PRESENTER: ActionList destroyedTN)r	   r(   r)   rZ   )r*   rb   r+   s   &* r   rX   ZActionList._on_hidden  s-     7E,,c48r    c               r   r   r   r   r   r   r   rU   
  s     $ $$ $r    c                s    V P                  4        V P                  \        P                  ! 4       4       V P                  P	                  4        R# )zShows the windowN)Zshow_allZpresent_with_timetimer[   Z
grab_focusr?   r@   r   rI   ZActionList.show_gui
  s1     	tyy{+!!#r    )r[   rZ   rY   )rM   rN   rO   rP   rQ   r,   r]   r\   rX   rI   rR   Z__classcell__)r_   s   @r   rH   rH      s*    F< <B1$ $r    rH   c               r   )r   r   r   r   r   r   r   r   r     s       r    c                 s    \         # )zReturns the action presenter.)
_presenterr   r    r   get_presenterre     s
     r    ))rQ   Z
__future__r    Z__id__Z__version__Z__date__Z__copyright__Z__license__rc   Ztypingr   r   r   ZgiZrequire_versionZgi.repositoryr   r   r   Z r   r   r	   r
   r   r   r   r   r   Z	ax_objectr   Zax_utilitiesr   r   Zscriptsr   r   ZWindowrH   rd   re   r   r    r   <module>rf      s   . : #1  / / 	   5%     5%   ( (           %w&# P Pf?$ ?$D 
r    