
    i                         d Z ddlZddlZddlmZ ddlZddlZddlmZ dej                  d<    G d d      Z
 G d d	      Zd
 Zedk(  r e        yy)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                       e Zd ZdZdj	                  d dD              Z	 ddededdfd	Zdd
Z	de
j                  ddfdZy)	TextInputzO
    A simple TextInput class that allows you to receive inputs in pygame.
    ,c              #   2   K   | ]  }t        |        y w)N)str).0xs     c/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pygame/examples/textinput.py	<genexpr>zTextInput.<genexpr>   s       	As   )notosanscjktcregularnotosansmonocjktcregularznotosansregular,)microsoftjhengheimicrosoftjhengheiuilight#microsoftyaheimicrosoftyaheiuilightmsgothicmsuigothicmspgothicmsminchoArialpromptprint_eventreturnNc                    || _         || _        t        j                  |d   |d   dz   f|d   df      | _        t        j                  ||d   df      | _        d| _        d| _        d| _        d| _	        d| _
        d| _        g | _        t        j                  | j                  d	      | _        t        j                  | j                  d
      | _        || _        t'        d| j                   j(                  z          y )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   r1   s         r   __init__zTextInput.__init__*   s     &WWc!fc!frk%:=Nq=QSV<WXGGC*;A*>)CD!#!!# !$&
 $$T__b9	"**4??B?$ntyy~~-.    c                 |   |D ]  }|j                   t        j                  k(  r| j                  rt	        |       | j
                  r t        | j                        dk(  rd| _        e|j                  t        j                  k(  rt        | j                        dkD  s| j                  dkD  s| j                  d| j                  dz
   | j                  | j                  d z   | _
        t        d| j                  dz
        | _        |j                  t        j                  k(  r=| j                  d| j                   | j                  | j                  dz   d z   | _
        `|j                  t        j                  k(  r t        d| j                  dz
        | _        |j                  t        j                  k(  r3t!        t        | j                        | j                  dz         | _        |j                  t        j"                  t        j$                  fv st        | j                        dk(  r5| j&                  j)                  | j                         t        | j&                        | j*                  kD  r| j&                  j-                  d       d| _
        d| _        |j                   t        j.                  k(  rB| j                  rt	        |       d| _        |j0                  | _        |j2                  | _        |j                   t        j6                  k(  s%| j                  rt	        |       d| _        d| _        | j                  d| j                   |j0                  z   | j                  | j                  d z   | _
        | xj                  t        |j0                        z  c_         y)z/
        Updates the text input widget
        r   Fr   Nr   T)typer!   KEYDOWNr   r2   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)r4   eventsevents      r   updatezTextInput.updateD   s     ;	6E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*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;	6r8   screenc                    | j                   j                  | j                  z  }t        | j                        D ]]  \  }}| j
                  j                  || j                   j                  | j                   j                  ||z  z   f|| j                         _ | j                  j                         }| j                  | j                  d| j                   z   }| j                  d| j                    dz   | j                  | j                   d z   }| j                  | j                  d }| j"                  j                  |||| j                        }	|xj                  |	j$                  z  c_        | j"                  j                  |||| j                  dt&        j(                        }
|xj                  |
j$                  z  c_        | j"                  j                  |||| j                         y)zG
        Draws the text input widget onto the provided surface
        r   |N)r#   heightr%   	enumerater+   r0   	render_tor   yr1   r$   copyr   r'   r(   r)   r*   r/   widthr,   STYLE_UNDERLINE)r4   rO   chat_heightichat	start_pos
ime_text_l
ime_text_m
ime_text_rrect_text_lrect_text_ms              r   drawzTextInput.draw   s    ((//$2H2HH 0 	GAtOO%%##%%t'9'9';';a+o'MN		 %%**,	[[4>>!d6H6H#II
""1t'<'<=$$T%:%:%<=> 	
 ^^D$6$6$89
ii))Iz4??
 	{((( ii))OO$$
 	{(((		FIz4??Kr8   )whiter   N)__name__
__module____qualname____doc__joinr.   r
   boolr7   rN   pygameSurfacerb    r8   r   r   r      sj      	
 J RY//@D/	/4?6B(L6>> (Ld (Lr8   r   c                   :    e Zd ZdZdZd\  ZZdZdeddfdZ	d
d	Z
y)Gamez?
    A class that handles the game's events, mainloop etc.
    r   )i  i  blackcaptionr   Nc                    t        j                          t         j                  j                  | j                  | j
                  f      | _        t         j                  j                  |       t         j                  j                         | _
        dt        j                  v | _        t        dd| j                  | j
                  f| j                  d      | _        y )N	showeventz> )r   r   green)r   r5   r6   r   r1   )r!   initdisplayset_modeSCREEN_WIDTHSCREEN_HEIGHTrO   set_captiontimeClockclocksysargvr   r   
text_input)r4   rq   s     r   r7   zGame.__init__   s    
	jj))4+<+<d>P>P*QR


w'WW]]_
 '#((2##00$2D2DE((
r8   c                    t         j                  j                          t        j                  dddd      }t         j                  j	                  |       	 t         j
                  j                         }|D ]5  }|j                  t         j                  k(  s!t        j                           y  | j                  j                  |       | j                  j                  | j                         | j                  j                  | j                         t         j                   j                          | j"                  j%                  | j&                         )NP   i@  r   )r!   r=   start_text_inputr"   set_text_input_rectrM   getr:   QUITquitr   rN   rO   fillBG_COLORrb   rv   r}   tickFPS)r4   
input_rectrL   rM   s       r   	main_loopzGame.main_loop   s    
!WWRS"-

"":.XX\\^F ::(GGI
 OO""6* KKT]]+OO  -JJJJOODHH% r8   rd   )re   rf   rg   rh   r   rx   ry   r   r
   r7   r   rm   r8   r   ro   ro      s5     C"*L-H
 
 
$&r8   ro   c                  :    t        d      } | j                          y )NzText Input Example)ro   r   )games    r   mainr      s    $%DNNr8   __main__)rh   r~   ostypingr   rk   r!   pygame.freetyper,   environr   ro   r   re   rm   r8   r   <module>r      sb     	    " !$

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