+
    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
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! ]'       d$   ^ RI"t"]"PF                  ! RR4       ^ RI$H%t% ^RI&H't'  ! R R]	4      t( ! R  R!4      t)])! 4       t*R" R# lt+R# )$=Module for commands related to the current accessible object.)annotationsz$Id$z
$Revision$z$Date$zQCopyright (c) 2005-2009 Sun Microsystems Inc.Copyright (c) 2011-2025 Igalia, S.L.ZLGPL)Enum)	GeneratorTYPE_CHECKING)cmdnames)dbus_service)debug)focus_manager)input_event)input_event_manager)keybindings)messages)speech)settings)settings_manager)speechserver)ACSS)AXObject)AXText)AXUtilitiesNAtspiz2.0)r   )defaultc                  s`    ] tR t^DtRt]P                  t]P                  t	]
R R l4       tRtR# )SayAllStylez0Style enumeration with int values from settings.c                   V ^8  d   QhRR/#    returnstr Zformat   ";/usr/lib/python3.14/site-packages/orca/say_all_presenter.py__annotate__ZSayAllStyle.__annotate__K   s     ! !S !    c                s6    V P                   P                  4       # )z6Returns the lowercase string name for this enum value.)ZnameZlowerself   &r    string_nameZSayAllStyle.string_nameJ   s     yy  r"   r   N)__name__
__module____qualname____firstlineno____doc__r   SAYALL_STYLE_SENTENCEZSENTENCEZSAYALL_STYLE_LINEZLINEZpropertyr&   __static_attributes__r   r"   r    r   r   D   s-    :--H%%D! !r"   r   c                  sH   ] tR t^OtRtR R ltRHR R lltRIR R lltR R	 ltR
 R lt	R R lt
R R lt]P                  RJR R ll4       t]P                  RKR R ll4       t]P                  RKR R ll4       tR R ltR R ltRLR R lltRIR R lltRIR R  lltR! R" lt]P.                  R# R$ l4       t]P2                  R% R& l4       t]P.                  R' R( l4       t]P2                  R) R* l4       t]P.                  R+ R, l4       t]P2                  R- R. l4       t]P.                  R/ R0 l4       t]P2                  R1 R2 l4       t ]P.                  R3 R4 l4       t!]P2                  R5 R6 l4       t"]P.                  R7 R8 l4       t#]P2                  R9 R: l4       t$]P.                  R; R< l4       t%]P2                  R= R> l4       t&]P.                  R? R@ l4       t']P2                  RA RB l4       t(]P.                  RC RD l4       t)]P2                  RE RF l4       t*RGt+R# )MSayAllPresenterr    c               r   r   r   Noner   r   r   r    r!   SayAllPresenter.__annotate__R   s     F F$ Fr"   c                	s~   V P                  R 4      V n        \        P                  ! 4       V n        \        P                  ! 4       V n        RV n        . V n        . V n        RV n	        RV n
        Rp\        P                  ! \        P                  VR 4       \        P                  ! 4       pVP!                  RV 4       R# )TNFz,SayAllPresenter: Registering D-Bus commands.r.   )get_handlers	_handlersr   KeyBindings_desktop_bindings_laptop_bindings_script	_contents	_contexts_current_context_say_all_is_runningr   print_message
LEVEL_INFOr   Zget_remote_controllerZregister_decorated_module)r$   msgZ
controllers   &  r    __init__ZSayAllPresenter.__init__R   s    CGCTCTUYCZ:E:Q:Q:S9D9P9P9R.2GI;=CG). <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!   r1   b   s$     % %%15%	 %r"   c                s   V'       dp   Rp\         P                  ! \         P                  VR4       V P                  P	                  R4       V P
                  P	                  R4       V P                  4        MqV'       d2   V P                  P                  4       '       d   V P                  4        M8V'       g1   V P
                  P                  4       '       d   V P                  4        V'       d   V P                  # V P
                  # )z*Returns the say-all-presenter keybindings.z'SAY ALL PRESENTER: Refreshing bindings.T)r   r<   r=   r5   Zremove_key_grabsr6   _setup_bindingsZis_empty)r$   r@   rB   r>   s   &&& r    get_bindingsZSayAllPresenter.get_bindingsb   s    
 ;C 0 0#t<""334]^!!223\]  "D22;;==  " 5 5 > > @ @  ")))$$$r"   c                    V ^8  d   QhRRRR/# )r   r@   rA   r   z(dict[str, input_event.InputEventHandler]r   r   r   r    r!   r1   v   s      D 5] r"   c                s    V'       d9   Rp\         P                  ! \         P                  VR4       V P                  4        V P                  # )z'Returns the say-all-presenter handlers.z'SAY ALL PRESENTER: Refreshing handlers.T)r   r<   r=   _setup_handlersr3   )r$   r@   r>      && r    r2   ZSayAllPresenter.get_handlersv   s:     ;C 0 0#t<  "~~r"   c               r   r/   r   r   r   r    r!   r1      s     & & &r"   c                sF    V P                  4        V P                  4        R# )z+Sets up the say-all-presenter key bindings.N)_setup_desktop_bindings_setup_laptop_bindingsr#   r%   r    rC   ZSayAllPresenter._setup_bindings   s     	$$&##%r"   c               r   r/   r   r   r   r    r!   r1      s     9 9 9r"   c                s    / V n         \        P                  ! V P                  \        P
                  4      V P                   R&   Rp\        P                  ! \        P                  VR4       R# )z3Sets up the say-all-presenter input event handlers.sayAllHandlerz#SAY ALL PRESENTER: Handlers set up.TN)	r3   r	   ZInputEventHandlersay_allr   SAY_ALLr   r<   r=   r$   r>      & r    rF   ZSayAllPresenter._setup_handlers   sX      ))  " 	'
 4E,,c48r"   c               r   r/   r   r   r   r    r!   r1      s     9 9 9r"   c           	     J   \         P                  ! 4       V n        V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^4      4       Rp\        P                  ! \        P                  VR4       R# )z3Sets up the say-all-presenter desktop key bindings.ZKP_AddrJ   z+SAY ALL PRESENTER: Desktop bindings set up.TN)r   r4   r5   add
KeyBindingDEFAULT_MODIFIER_MASKZNO_MODIFIER_MASKr3   r   r<   r=   rM   rN   r    rH   Z'SayAllPresenter._setup_desktop_bindings   sz     "-!8!8!:""""11,,/	 <E,,c48r"   c               r   r/   r   r   r   r    r!   r1      s     9 9 9r"   c           	     rO   )z2Sets up the say-all-presenter laptop key bindings.Z	semicolonrJ   z*SAY ALL PRESENTER: Laptop bindings set up.TN)r   r4   r6   rP   rQ   rR   ZORCA_MODIFIER_MASKr3   r   r<   r=   rM   rN   r    rI   Z&SayAllPresenter._setup_laptop_bindings   sz     !, 7 7 9!!""11../	 ;E,,c48r"   Nc               s0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   scriptdefault.Scripteventinput_event.InputEvent | Nonenotify_userrA   objzAtspi.Accessible | Noneoffset
int | Noner   r   r   r   r    r!   r1      sF       - 	
 %  
r"   c                s2   . V n         . V n        RV n        RV n        RVRVRV.p\        P
                  ! \        P                  VR4       Wn        V P                  P                  4        T;'       g$    \        P                  ! 4       P                  4       pV'       d   \        P                  ! V4      '       d,   V P                  P                  \        P                   4       R# \"        P$                  ! V P'                  WE4      V P(                  4       R# )zGSpeaks the entire document or text, starting from the current position.NFz#SAY ALL PRESENTER: say_all. Script:Event:notify_user:T)r9   r8   r:   r;   r   print_tokensr=   r7   interrupt_presentationr   get_managerZget_locus_of_focusr   Zis_deadZpresent_messager   ZLOCATION_NOT_FOUND_FULLr   rK   _say_all_iter_progress_callback)r$   rS   rU   rW   rX   rY   tokenss   &&&&&& r    rK   ZSayAllPresenter.say_all   s      $#( 75 +/5++VT:++-EE]..0CCEh&&s++LL(()I)IJt))#68O8OPr"   c               (    V ^8  d   QhRRRRRRRR/# r   rS   rT   rU   rV   rW   rA   r   r   r   r   r    r!   r1      s2     ( (( -( 	(
 
(r"   c                    RVRVRV.p\         P                  ! \         P                  VR4       V P                  RR4      # )z"Jumps back in the current Say All.z"SAY ALL PRESENTER: rewind. Script:r[   r\   TN)r   r]   r=   _rewindr$   rS   rU   rW   rb      &&&& r    rewindZSayAllPresenter.rewind   sB     7% +/5++VT:||D$''r"   c               rc   rd   r   r   r   r    r!   r1      s2     . .. -. 	.
 
.r"   c                re   )z%Jumps forward in the current Say All.z(SAY ALL PRESENTER: fast_forward. Script:r[   r\   TN)r   r]   r=   _fast_forwardrg   rh   r    fast_forwardZSayAllPresenter.fast_forward   sE     =fhPU +/5++VT:!!$--r"   c               rE   )r   
utteranceszlist[str | ACSS | list]r   ztuple[list[str], list[ACSS]]r   r   r   r    r!   r1      s        +  
& r"   c                s^   . . r2V F  p\        V\        4      '       d8   V P                  V4      w  rVVP                  V4       VP                  V4       KP  \        V\        4      '       d   VP                  V4       Ky  \        V\        4      '       g   K  VP                  V4       K  	  W#3# )z0Parse utterances into elements and voices lists.)
isinstanceZlist_parse_utterancesextendr   appendr   )r$   rl   elementsvoicesZuZeZvs   &&     r    rn   Z!SayAllPresenter._parse_utterances   s     r&A!T""--a0"a As##"At$$a   r"   c               $    V ^8  d   QhRRRRRR/# )r   contentz&tuple[Atspi.Accessible, int, int, str]contentsz,list[tuple[Atspi.Accessible, int, int, str]]r   ztuple[bool, str]r   r   r   r    r!   r1     s(      7 ? 
	r"   c                s    Vw  r4rVWE8X  d   R# \         P                  ! V4      '       d   \         P                  ! V4      '       g   R# R# )zCReturns True if content should be skipped during say-all iteration.)Tzstart_offset equals end_offset)Tz'is non-focusable label for other object)F )r   Zget_is_label_forZis_focusable)r$   rt   ru   rX   start_offset
end_offsetZ_texts   &&&    r    _say_all_should_skip_contentZ,SayAllPresenter._say_all_should_skip_content  sG     07,:%99'',,[5M5Mc5R5RBBr"   c               rs   )r   rX   zAtspi.AccessiblerY   rZ   r   z>Generator[list[speechserver.SayAllContext | ACSS], None, None]r   r   r   r    r!   r1     s.     Q) Q)Q) Q) 
H	Q)r"   c              #  s8	  "   V P                   f   Q R4       hTp\        P                  ! 4       P                  R4      pV\        P
                  8H  pVf6   V P                   P                  P                  4       R,          ;'       g    ^ pRp\        P                  ! V4      '       g   \        P                  ! V4      '       d   TpV'       Ed   V'       d'   V P                   P                  P                  W4      pM(V P                   P                  P                  WRRR7      pV P                   P                  P                  V4      pV P                  P                  V4       \!        V4       EFX  w  rV	w  rrRV R2V
R	V R
V RV R2.p\"        P$                  ! \"        P&                  VR4       V P)                  W4      w  ppV'       d/   RV R2p\"        P*                  ! \"        P&                  VR4       K  V P                   P,                  P/                  V	.RVV\1        V4      R7      pT
pV P3                  V4      w  pp\1        V4      \1        V4      8w  dJ   RV
R	V R\1        V4       R\1        V4       2.p\"        P$                  ! \"        P&                  VR4       EK:  \5        VV4       EF  w  ppV'       d-   \7        V\8        4      '       d   VP;                  4       '       g   K=  \<        P>                  ! V
VW4      pV P@                  PC                  V4       V.p\"        P$                  ! \"        P&                  VR4       V P                   P                  PE                  W4       V P                   PG                  4       PI                  VPJ                  VPL                  VPN                  4       VV.x  EK  	  EK[  	  V'       dL   VR,          ^ ,          VR,          ^,          ppV P                   P                  PQ                  VVVR7      w  rM'V P                   P                  PS                  W4      p^ pVf   EK  RV.p\T        P                  ! 4       PW                  RVRR7       EK  . V n         . V n        RV n,        RV n-        R# 5i)zA generator used by Say All.Nz0Script must be set before calling _say_all_iter.sayAllStyleTF)Zlayout_modeZ	use_cachezSAY ALL PRESENTER: CONTENT: .Z'z' (Z-Z)z&SAY ALL PRESENTER: Skipping content - )ZeliminatePausesZpriorObjZindexZtotalz?SAY ALL PRESENTER: Skipping content - elements/voices mismatch:z', elements: z
, voices: )restrict_toz$SAY ALL PRESENTER: Updating focus toZnotify_script).r7   r   r_   get_settingr   r,   	utilitiesZget_caret_contextr   Zis_textZis_terminalZget_sentence_contents_at_offsetZget_line_contents_at_offsetZ filter_contents_for_presentationr8   ro   Z	enumerater   r]   r=   ry   r<   Zspeech_generatorZgenerate_contentsZlenrn   Zziprm   r   Zstripr   SayAllContextr9   rp   set_caret_offsetZget_event_synthesizerZscroll_into_viewrX   rw   rx   next_contextZfind_next_objectr   set_locus_of_focusr:   r;   )r$   rX   rY   Z	prior_objstyleZsay_all_by_sentencer|   ru   Zirt   Zcontent_objstartendZtextrb   ZskipZreasonr>   rl   rq   rr   ZelementZvoicecontextZlast_objZlast_offsets   &&&                       r    r`   ZSayAllPresenter._say_all_iter  s     ||'[)[['	 ,,.::=I#x'E'EE>\\++==?CHHqFs##{'>'>s'C'CKc"<<11QQRU^<<11MMTU N D ||--NNxXHNN!!(+'1
07-C81={dV3ugQse157""5#3#3VTB#@@SfB6(!LC''(8(8#tD!\\::LLIti3x= M 2
 (	#'#9#9*#E &x=CK/_) !$}S]O:cRXk][]F &&u'7'7F&)(F&;NGU"z'3'?'? *88guZGNN))'2%YF&&u'7'7FLL**;;KOLL668IIW%9%97;M;MO"E** '<1 2J (0Q"a+"ll44AAk{ B DV ll,,==cO@#F))+>>tSX]>^ $#( s:   BR R(R
RRHR1C#RA3RARc               $    V ^8  d   QhRRRRRR/# r   r   z!speechserver.SayAllContext | Noneoverride_settingrA   r   r   r   r   r    r!   r1   b  (      2  
	r"   c                	sr   V'       g-   \         P                  ! 4       P                  R 4      '       g   R# Vf   V P                  pRp V P                  ^ ,          w  r4rVVf   R# \        P                  ! 4       P                  RVRR7       V P                  f   Q R4       hV P                  P                  P                  VX4       V P                  P                  P                  W4R4      w  rxV P                  V P                  WxR7       R#   \
         d    Te   TP                  TP                  rC Li ; i)rewindAndFastForwardInSayAllFNr}   z*Script must be set before calling _rewind.TrX   rY   )r   r_   r   r:   r8   
IndexErrorrX   rw   r   r   r7   r   set_caret_contextZprevious_contextrK   )	r$   r   r   rX   r   Z_end_stringZprev_objZprev_offset	   &&&      r    rf   ZSayAllPresenter._rewindb  s   
 !#//1==>\]]?++G	?(,q(9%C
 ;!!#66tSPU6V||'U)UU'00e< $ 6 6 G GTX YT\\xD  	?"$[['*>*>U	?   D &D65D6c               r   r   r   r   r   r    r!   r1     r   r"   c                	sr   V'       g-   \         P                  ! 4       P                  R 4      '       g   R# Vf   V P                  pRp V P                  R,          w  r4rVVf   R# \        P                  ! 4       P                  RVRR7       V P                  f   Q R4       hV P                  P                  P                  VX4       V P                  P                  P                  W5R4      w  rxV P                  V P                  WxR7       R#   \
         d    Te   TP                  TP                  rS Li ; i)r   FNr}   z0Script must be set before calling _fast_forward.Tr   r~   )r   r_   r   r:   r8   r   rX   rx   r   r   r7   r   r   r   rK   )	r$   r   r   rX   Z_startr   r   Znext_objZnext_offsetr   r    rj   ZSayAllPresenter._fast_forward  s
   
 !#//1==>\]]?++G	;(,r(:%C
 ;!!#66tSPU6V||'[)[['00c: $ 6 6 C CCd ST\\xD  	;"";;(:(:S	;r   c               rs   )r   r   zspeechserver.SayAllContextprogress_typeZintr   r0   r   r   r   r    r!   r1     s)     'V 'V*D 'VUX 'V]a 'Vr"   c                	s   Wn         R V n        \        P                  ! VP                  VP
                  4      '       d   R# V\        P                  P                  8X  dV   \        P                  ! 4       P                  VP                  VP
                  VP                  \        P                  4       R# V P                  f   Q R4       hV\        P                  P                  8X  Ed\   RV.p\         P"                  ! \         P$                  VR 4       \&        P                  ! 4       pVP)                  4       '       Ed   VP+                  4       '       d   V P-                  V4      '       d   R# VP/                  4       '       d   V P1                  V4      '       d   R# \2        P                  ! 4       P5                  R4      '       d1   V P                  P7                  4       P9                  4       '       d   R# V P                  P;                  4        \        P<                  ! VP                  VP
                  4       RV n        M*RV.p\         P"                  ! \         P$                  VR 4       \        P                  ! 4       P?                  RVP                  RR7       V P                  '       d   \        P                  M\        P@                  p\        P                  ! 4       P                  VP                  VP
                  RV4       V P                  PB                  PE                  VP                  VP
                  4       R# )TNz5Script must be set before calling _progress_callback.z&SAY ALL PROGRESS CALLBACK: InterruptedstructNavInSayAllFz$SAY ALL PROGRESS CALLBACK: Completedr}   )#r:   r;   r   Zcharacter_at_offset_is_eocrX   Zcurrent_offsetr   r   ZPROGRESSr   r_   Zemit_region_changedZcurrent_end_offsetrL   r7   ZINTERRUPTEDr   r]   r=   r
   Zlast_event_was_keyboardZlast_event_was_downrj   Zlast_event_was_uprf   r   r   Zget_structural_navigatorZ'last_input_event_was_navigation_commandr^   r   r   ZFOCUS_TRACKINGr   r   )r$   r   r   rb   ZmanagerZmodes   &&&   r    ra   Z"SayAllPresenter._progress_callback  sL    '#' ,,W[[':P:PQQL66???%%';;W33W5O5O%%' ||'`)``'L66BBB>HFu//>)557G..00..00T5G5G5P5P,,..4<<3H3H#//1==>QRR||<<>>>@A335''W5K5KL+0(<gFFu//>!!#66tW[[X]6^(,(@(@(@}$$mFbFb!!#77KK//t	=00g>T>TUr"   c               r   r   r   rA   r   r   r   r    r!   r1     s     U U Ur"   c                J    \         P                  ! 4       P                  R4      # )z7Returns whether blockquotes are announced when entered.sayAllContextBlockquoter   r_   r   r#   r%   r    get_announce_blockquoteZ'SayAllPresenter.get_announce_blockquote  s      ++-99:STTr"   c                    V ^8  d   QhRRRR/# r   valuerA   r   r   r   r   r    r!   r1     s      T d r"   c                    RV R2p\         P                  ! \         P                  VR4       \        P                  ! 4       P                  RV4       R# )z4Sets whether blockquotes are announced when entered.z3SAY ALL PRESENTER: Setting announce blockquotes to r{   Tr   r   r<   r=   r   r_   set_settingr$   r   r>   rG   r    set_announce_blockquoteZ'SayAllPresenter.set_announce_blockquote  sH     DE7!LE,,c48$$&223LeTr"   c               r   r   r   r   r   r    r!   r1     s     Z Z4 Zr"   c                r   )z>Returns whether non-landmark forms are announced when entered.sayAllContextNonLandmarkFormr   r#   r%   r    get_announce_formZ!SayAllPresenter.get_announce_form        ++-99:XYYr"   c               r   r   r   r   r   r    r!   r1           t  r"   c                r   )z;Sets whether non-landmark forms are announced when entered.z-SAY ALL PRESENTER: Setting announce forms to r{   Tr   r   r   rG   r    set_announce_formZ!SayAllPresenter.set_announce_form  sH     >eWAFE,,c48$$&223QSXYr"   c               r   r   r   r   r   r    r!   r1     s     P Pt Pr"   c                r   )z5Returns whether groupings are announced when entered.sayAllContextPanelr   r#   r%   r    get_announce_groupingZ%SayAllPresenter.get_announce_grouping        ++-99:NOOr"   c               r   r   r   r   r   r    r!   r1           4 D r"   c                r   )z2Sets whether groupings are announced when entered.z1SAY ALL PRESENTER: Setting announce groupings to r{   Tr   r   r   rG   r    set_announce_groupingZ%SayAllPresenter.set_announce_grouping  sH     B%JE,,c48$$&223GOr"   c               r   r   r   r   r   r    r!   r1     s     S St Sr"   c                r   )z5Returns whether landmarks are announced when entered.sayAllContextLandmarkr   r#   r%   r    get_announce_landmarkZ%SayAllPresenter.get_announce_landmark  s      ++-99:QRRr"   c               r   r   r   r   r   r    r!   r1     r   r"   c                r   )z2Sets whether landmarks are announced when entered.z1SAY ALL PRESENTER: Setting announce landmarks to r{   Tr   r   r   rG   r    set_announce_landmarkZ%SayAllPresenter.set_announce_landmark  sH     B%JE,,c48$$&223JERr"   c               r   r   r   r   r   r    r!   r1     s     O O4 Or"   c                r   )z1Returns whether lists are announced when entered.sayAllContextListr   r#   r%   r    get_announce_listZ!SayAllPresenter.get_announce_list        ++-99:MNNr"   c               r   r   r   r   r   r    r!   r1   
  r   r"   c                r   )z.Sets whether lists are announced when entered.z-SAY ALL PRESENTER: Setting announce lists to r{   Tr   r   r   rG   r    set_announce_listZ!SayAllPresenter.set_announce_list	  sG     >eWAFE,,c48$$&223FNr"   c               r   r   r   r   r   r    r!   r1     s     P PD Pr"   c                r   )z2Returns whether tables are announced when entered.sayAllContextTabler   r#   r%   r    get_announce_tableZ"SayAllPresenter.get_announce_table  r   r"   c               r   r   r   r   r   r    r!   r1     s        r"   c                r   )z/Sets whether tables are announced when entered.z.SAY ALL PRESENTER: Setting announce tables to r{   Tr   r   r   rG   r    set_announce_tableZ"SayAllPresenter.set_announce_table  sG     ?ugQGE,,c48$$&223GOr"   c               r   r   r   r   r   r    r!   r1   "  s     2 23 2r"   c                st    \         P                  ! 4       P                  R4      p\        V4      P                  # )z"Returns the current Say All style.rz   )r   r_   r   r   r&   )r$   Z	int_valuerN   r    	get_styleZSayAllPresenter.get_style!  s.     %002>>}M	9%111r"   c               rE   )r   r   r   r   rA   r   r   r   r    r!   r1   )  s      s t r"   c                s    \         VP                  4       ,          pRT RTP                   R2p\        P                  ! \        P                  TR4       \        P                  ! 4       P                  RTP                  4       R#   \         d0    RT 2p\        P                  ! \        P
                  TR4        R# i ; i)zSets the current Say All style.z"SAY ALL PRESENTER: Invalid style: TFz$SAY ALL PRESENTER: Setting style to z (z).rz   )r   ZupperZKeyErrorr   r<   ZLEVEL_WARNINGr   r=   r   r_   r   )r$   r   r   r>   s   &&  r    	set_styleZSayAllPresenter.set_style(  s    	.E 5UG2ekk]"ME,,c48$$&22=%++N  	6ug>C 3 3S$?	s   B 6C Cc               r   r   r   r   r   r    r!   r1   9  s     O O4 Or"   c                r   )zBReturns whether structural navigation keys can be used in Say All.r   r   r#   r%   r    !get_structural_navigation_enabledZ1SayAllPresenter.get_structural_navigation_enabled8  r   r"   c               r   r   r   r   r   r    r!   r1   ?  s      t  r"   c                r   )z?Sets whether structural navigation keys can be used in Say All.z;SAY ALL PRESENTER: Setting enable structural navigation to r{   Tr   r   r   rG   r    !set_structural_navigation_enabledZ1SayAllPresenter.set_structural_navigation_enabled>  sI     LE7RSTE,,c48$$&223FNr"   c               r   r   r   r   r   r    r!   r1   H  s     Z ZT Zr"   c                r   )3Returns whether Up and Down can be used in Say All.r   r   r#   r%   r    #get_rewind_and_fast_forward_enabledZ3SayAllPresenter.get_rewind_and_fast_forward_enabledG  r   r"   c               r   r   r   r   r   r    r!   r1   N  s       $ r"   c                r   )r   z=SAY ALL PRESENTER: Setting enable rewind and fast forward to r{   Tr   r   r   rG   r    #set_rewind_and_fast_forward_enabledZ3SayAllPresenter.set_rewind_and_fast_forward_enabledM  sJ     NeWTUVE,,c48$$&223QSXYr"   )r8   r9   r:   r5   r3   r6   r;   r7   )FT)F)NTNN)NT)N),r'   r(   r)   r*   r+   r?   rD   r2   rC   rF   rH   rI   r   ZcommandrK   ri   rk   rn   ry   r`   rf   rj   ra   Zgetterr   Zsetterr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r   r"   r    r.   r.   O   s}   GF %(&99 9   : ( ( . . (Q)f<<'VR U U
   Z Z
   P P
   S S
   O O
   P P
   2 2   O O
   Z Z
  r"   r.   c               r   )r   r   r.   r   r   r   r    r!   r!   X  s       r"   c                 s    \         # )zReturns the Say All Presenter)
_presenterr   r"   r    get_presenterr   X  s
     r"   ),r+   Z
__future__r   Z__id__Z__version__Z__date__Z__copyright__Z__license__Zenumr   Ztypingr   r   rv   r   r   r   r   r	   r
   r   r   r   r   r   r   Zacssr   Z	ax_objectr   Zax_textr   Zax_utilitiesr   ZgiZrequire_versionZgi.repositoryr   Zscriptsr   r   r.   r   r   r   r"   r    <module>r      s   : D #7  +      !          %w&# 
!$ 
!E EP 
r"   