
    &h                         S r SSKrSSKrSSKJr  SSKrSSKrSSKJr  S\R                  S'    " S S5      r
 " S S	5      rS
 r\S:X  a  \" 5         gg)zpg.examples.textinput

A little "console" where you can write in text.

Shows how to use the TEXTEDITING and TEXTINPUT events.
    N)List1SDL_IME_SHOW_UIc                       \ rS rSrSrSR                  S S 5       5      r SS\S\SS	4S
 jjr	SS jr
S\R                  SS	4S jrSrg	)	TextInput   zG
A simple TextInput class that allows you to receive inputs in pygame.
,c              #   8   #    U  H  n[        U5      v   M     g 7f)N)str).0xs     Q/var/www/auris/envauris/lib/python3.13/site-packages/pygame/examples/textinput.py	<genexpr>TextInput.<genexpr>   s!      	
A 	A	
s   )notosanscjktcregularnotosansmonocjktcregularznotosansregular,)microsoftjhengheimicrosoftjhengheiuilight#microsoftyaheimicrosoftyaheiuilightmsgothicmsuigothicmspgothicmsminchoArialpromptprint_eventreturnNc                    Xl         X@l        [        R                  " US   US   S-   4US   S45      U l        [        R                  " X#S   S45      U l        SU l        SU l        SU l        SU l	        SU l
        SU l        / U l        [        R                  " U R                  S	5      U l        [        R                  " U R                  S
5      U l        XPl        ['        SU R                   R(                  -   5        g )Nr      2   i  (      F       zUsing font: )r   r   pgRectCHAT_LIST_POSCHAT_BOX_POSCHAT_LIST_MAXSIZE_ime_editing	_ime_text_ime_text_pos_ime_editing_text_ime_editing_pos	chat_listfreetypeSysFont
FONT_NAMESfont
font_small
text_colorprintname)selfr   posscreen_dimensionsr   r3   s         r   __init__TextInput.__init__*   s     &WWc!fc!frk%:=Nq=QSV<WXGGCA*>)CD!#!!# !$&
 $$T__b9	"**4??B?$ntyy~~-.    c                    U GH  nUR                   [        R                  :X  Ga  U R                  (       a  [	        U5        U R
                  (       a"  [        U R                  5      S:X  a  SU l        Mr  UR                  [        R                  :X  a  [        U R                  5      S:  ao  U R                  S:  a\  U R                  SU R                  S-
   U R                  U R                  S -   U l
        [        SU R                  S-
  5      U l        GM  GM  GM  UR                  [        R                  :X  a>  U R                  SU R                   U R                  U R                  S-   S -   U l
        GMw  UR                  [        R                  :X  a!  [        SU R                  S-
  5      U l        GM  UR                  [        R                  :X  a4  [!        [        U R                  5      U R                  S-   5      U l        GM  UR                  [        R"                  [        R$                  4;   a  [        U R                  5      S:X  a  GMR  U R&                  R)                  U R                  5        [        U R&                  5      U R*                  :  a  U R&                  R-                  S5        SU l
        SU l        GM  GM  UR                   [        R.                  :X  aH  U R                  (       a  [	        U5        SU l        UR0                  U l        UR2                  U l        GM/  UR                   [        R6                  :X  d  GMP  U R                  (       a  [	        U5        SU l        SU l        U R                  SU R                   UR0                  -   U R                  U R                  S -   U l
        U =R                  [        UR0                  5      -  sl        GM     g)z
Updates the text input widget
r   Fr   Nr    T)typer#   KEYDOWNr   r4   r(   lenr+   keyK_BACKSPACEr)   r*   maxK_DELETEK_LEFTK_RIGHTminK_RETURN
K_KP_ENTERr-   appendr'   popTEXTEDITINGtextstartr,   	TEXTINPUT)r6   eventsevents      r   updateTextInput.updateD   s    EzzRZZ'##%L$$4112a7,1)99.4>>*Q.43E3E3I NN1t/A/AA/EF"nnT-?-?-ABC  .1D4F4F4J-K* 4J. YY"++-q4+=+=>..););a)?)ABC N YY"))+),Q0B0BQ0F)GD&YY"**,),DNN+T-?-?!-C*D& YY2;;">>4>>*a/  NN))$..94>>*T-C-CC**1-%'DN)*D& ? r~~-##%L$(!).&(-%r||+##%L$)!)+&NN1t'9'9:jj!nnT%7%7%9:; 
 ""c%**o5""w r;   screenc                    U R                   R                  U R                  -  n[        U R                  5       H\  u  p4U R
                  R                  UU R                   R                  U R                   R                  X2-  -   4UU R                  5        M^     U R                  R                  5       nU R                  U R                  SU R                   -   nU R                  SU R                    S-   U R                  U R                   S -   nU R                  U R                  S nU R"                  R                  XX`R                  5      n	U=R                  U	R$                  -  sl        U R"                  R                  UUUU R                  S[&        R(                  5      n
U=R                  U
R$                  -  sl        U R"                  R                  XXR                  5        g)z7
Draws the text input widget onto the provided surface
r   |N)r%   heightr'   	enumerater-   r2   	render_tor   yr3   r&   copyr   r)   r*   r+   r,   r1   widthr.   STYLE_UNDERLINE)r6   rS   chat_heightichat	start_pos
ime_text_l
ime_text_m
ime_text_rrect_text_lrect_text_ms              r   drawTextInput.draw   s    ((//$2H2HH 0GAOO%%##%%t'9'9';';ao'MN	 1 %%**,	[[4>>!d6H6H#II
""1t'<'<=$$T%:%:%<=> 	
 ^^D$6$6$89
ii))z??
 	{((( ii))OO$$
 	{(((		Fz??Kr;   )r&   r'   r%   r(   r,   r+   r)   r*   r-   r1   r2   r   r   r3   )whiter   N)__name__
__module____qualname____firstlineno____doc__joinr0   r   boolr9   rQ   pygameSurfacerf   __static_attributes__ r;   r   r   r      sj      	
 J RY//@D/	/4?6B(L6>> (Ld (Lr;   r   c                   F    \ rS rSrSrSrSu  rrSrS\	SS4S	 jr
SS
 jrSrg)Game   z7
A class that handles the game's events, mainloop etc.
r   )i  i  blackcaptionr   Nc                    [         R                  " 5         [         R                  R                  U R                  U R
                  45      U l        [         R                  R                  U5        [         R                  R                  5       U l
        S[        R                  ;   U l        [        SSU R                  U R
                  4U R                  SS9U l        g )N	showeventz> )r   r   green)r   r7   r8   r   r3   )r#   initdisplayset_modeSCREEN_WIDTHSCREEN_HEIGHTrS   set_captiontimeClockclocksysargvr   r   
text_input)r6   ry   s     r   r9   Game.__init__   s    
	jj))4+<+<d>P>P*QR


w'WW]]_
 '#((2##00$2D2DE((
r;   c                    [         R                  R                  5         [         R                  " SSSS5      n[         R                  R	                  U5         [         R
                  R                  5       nU H8  nUR                  [         R                  :X  d  M#  [         R                  " 5           g    U R                  R                  U5        U R                  R                  U R                  5        U R                  R                  U R                  5        [         R                   R                  5         U R"                  R%                  U R&                  5        GM  )NP   i@  r   )r#   r@   start_text_inputr$   set_text_input_rectrP   getr=   QUITquitr   rQ   rS   fillBG_COLORrf   r~   r   tickFPS)r6   
input_rectrO   rP   s       r   	main_loopGame.main_loop   s    
!WWRS"-

"":.XX\\^F::(GGI  
 OO""6* KKT]]+OO  -JJJJOODHH% r;   )r   r   rS   r   ri   )rj   rk   rl   rm   rn   r   r   r   r   r   r9   r   rs   rt   r;   r   rv   rv      s5     C"*L-H
 
 
$&r;   rv   c                  :    [        S5      n U R                  5         g )NzText Input Example)rv   r   )games    r   mainr      s    $%DNNr;   __main__)rn   r   ostypingr   rq   r#   pygame.freetyper.   environr   rv   r   rj   rt   r;   r   <module>r      sb     	    " !$

 XL XLv1& 1&j
 zF r;   