
    hE                         S SK r S SKJrJrJrJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SSKJr  SS	KJrJr   " S
 S\5      rg)    N)UnionTupleOptionalAny   )	CTkCanvas)ThemeManager)
DrawEngine)CTkBaseClass)CTkFont)pop_from_dict_by_setcheck_kwargs_emptyc                     ^  \ rS rSrSrSr1 SkrSSSSSSSSSSSS\R                  4S	\	S
\
S\
S\\
   S\\
   S\\\\\4   4   S\\\\\\4   4      S\\\\\\4   4      S\\\\\\4   4      S\\\\\\4   4      S\\R                  S4   S\\S4   S\\\\4      S\4U 4S jjjrS=S\\   4S jjrS rS rU 4S jrS>U 4S jjrS rU 4S jrS?U 4S  jjrS?U 4S! jjrS"\S#\4U 4S$ jjrS@S% jrS>S& jrS' r S( r!S=S) jr"S=S* jr#S=S+ jr$S, r%S- r&S. r'S/ r(S0 r)S1 r*S2 r+S3 r,S4 r-S5 r.S6 r/S7 r0S8 r1S9 r2S: r3S; r4S<r5U =r6$ )ACTkEntry   z
Entry with rounded corners, border, textvariable support, focus and placeholder.
For detailed information check out the documentation.
   >   showjustifyvalidate	takefocusinsertwidthinsertontimeinsertofftimexscrollcommandexportselectionvalidatecommandinsertborderwidthselectborderwidth      Ntransparentmasterwidthheightcorner_radiusborder_widthbg_colorfg_colorborder_color
text_colorplaceholder_text_colortextvariableplaceholder_textfontstatec                 &  > [         TU ]  XX#S9  U R                  SSS9  U R                  SSS9  Uc  [        R
                  S   S   OU R                  USS9U l        U	c  [        R
                  S   S	   OU R                  U	5      U l        U
c  [        R
                  S   S
   OU R                  U
5      U l	        Uc  [        R
                  S   S   OU R                  U5      U l
        Uc  [        R
                  S   S   OUU l        Uc  [        R
                  S   S   OUU l        SU l        Xl        SU l        0 U l        Xl        Xl        SU l        Uc
  [)        5       OU R+                  U5      U l        [/        U R,                  [(        5      (       a%  U R,                  R1                  U R2                  5        U R"                  b;  U R"                  S:X  d+  U R"                  R5                  SU R6                  5      U l        [9        U SU R;                  U R<                  5      U R;                  U R>                  5      S9U l         [C        U R@                  5      U l"        [F        RH                  " SU SSSU RK                  U R,                  5      U R$                  U R"                  S.[M        XRN                  5      D6U l(        [S        USS9  U RU                  5         U RW                  5         U RY                  5         U R[                  5         g )N)r"   r'   r#   r$   r   r   )weightr   r(   T)transparencyr*   r+   r)   r%   r&   F write)r"   highlightthicknessr#   r$   )r"   bdr#   r5   r.   r/   r,   )raise_error ).super__init__grid_rowconfiguregrid_columnconfigurer	   theme_check_color_type	_fg_color_text_color_placeholder_text_color_border_color_corner_radius_border_width_is_focused_placeholder_text_placeholder_text_active_pre_placeholder_arguments_textvariable_state_textvariable_callback_namer   _check_font_type_font
isinstanceadd_size_configure_callback_update_font	trace_add_textvariable_callbackr   _apply_widget_scaling_current_width_current_height_canvasr
   _draw_enginetkinterEntry_apply_font_scalingr   _valid_tk_entry_attributes_entryr   _create_grid_activate_placeholder_create_bindings_draw)selfr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   kwargs	__class__s                   a/var/www/fran/franai/venv/lib/python3.13/site-packages/customtkinter/windows/widgets/ctk_entry.pyr:   CTkEntry.__init__   s    ( 	V 	q+!!!A!. HPGW++J7
C]a]s]st|  LP]s  ^QKUK]<--j9,Gcgcycy  {E  dFcy  dB|'9'9*'EF^'_  HL  H^  H^  _u  Hv$O[Oc\//
;NKimii  AM  jN R_Qfl00<_MlyO[Oc\//
;NKiu "&!1(-%*,')02( #',WYD4I4I$4O
djj'**JJ2243D3DE""*d.@.@B.F/3/A/A/K/KGUYUpUp/qD, 45'+'A'A$BUBU'V(,(B(B4CWCW(XZ 't||4mm e4'(*+78)-)A)A$**)M*.++151C1Ce ';6CbCb&ce 	6t4""$

    sequencec                     Ub  US:X  a&  U R                   R                  SU R                  5        Ub  US:X  a'  U R                   R                  SU R                  5        gg)zRset necessary bindings for functionality of widget, will overwrite other bindings Nz	<FocusIn>z
<FocusOut>)r\   bind_entry_focus_in_entry_focus_out)ra   rg   s     rd   r_   CTkEntry._create_bindingsd   sU    x;6KK[$*>*>?x<7KK\4+@+@A  8rf   c                    U R                   R                  SSSS9  U R                  U R                  :  a  U R                  R                  SSS[        U R                  U R                  5      [        U R                  U R                  S-  5      5      5      U R                  U R                  5      U R                  U R                  S-   5      4S9  g U R                  R                  SSSU R                  U R                  5      U R                  U R                  5      U R                  U R                  S-   5      4S9  g )Nr   nswecolumnrowsticky   r   )rp   rq   rr   padxpady)
rV   gridrC   _minimum_x_paddingr\   minrS   roundrU   rD   ra   s    rd   r]   CTkEntry._create_gridk   sh   &9$"9"99KKA1V"%d&@&@ATAT&UW\]a]w]wx|  yM  yM  NO  yO  ^P  XQ  #R#'#=#=d>P>P#QSWSmSmnr  oA  oA  DE  oE  TF  #G  H KKA1V"&"<"<T=T=T"U#'#=#=d>P>P#QSWSmSmnr  oA  oA  DE  oE  TF  #G  Hrf   c                 b    U R                   R                  5       S:X  a  U R                  5         g g Nr3   )rI   getr^   )ra   var_nameindexmodes       rd   rR   CTkEntry._textvariable_callbackw   s*    !!#r)&&( *rf   c                 `  > [         TU ]  " U0 UD6  U R                  R                  U R	                  U R
                  5      S9  U R                  R                  U R                  U R                  5      U R                  U R                  5      S9  U R                  5         U R                  SS9  g )Nr.   r#   r$   Tno_color_updates)r9   _set_scalingr\   	configurerZ   rM   rV   rS   _desired_width_desired_heightr]   r`   )ra   argsrb   rc   s      rd   r   CTkEntry._set_scaling{   s    d-f-4#;#;DJJ#GHT%?%?@S@S%T]a]w]wx|  yM  yM  ^N  	O

D
)rf   c                    > [         TU ]  X5        U R                  R                  U R	                  U R
                  5      U R	                  U R                  5      S9  U R                  SS9  g )Nr   Tr   )r9   _set_dimensionsrV   r   rS   r   r   r`   )ra   r#   r$   rc   s      rd   r   CTkEntry._set_dimensions   s]    .T%?%?@S@S%T&*&@&@AUAU&V 	 	X

D
)rf   c                     U R                   R                  U R                  U R                  5      S9  U R                  R                  5         U R                  R                  SSSS9  g)zWpass font to tkinter widgets with applied font scaling and update grid with workaround r   r   rn   ro   N)r\   r   rZ   rM   rV   grid_forgetrv   rz   s    rd   rP   CTkEntry._update_font   sQ    4#;#;DJJ#GH 	  "&9rf   c                    > [        U R                  [        5      (       a%  U R                  R                  U R                  5        [
        TU ]  5         g N)rN   rM   r   remove_size_configure_callbackrP   r9   destroy)ra   rc   s    rd   r   CTkEntry.destroy   s6    djj'**JJ55d6G6GHrf   c                 r  > [         TU ]  U5        U R                  R                  U R	                  U R
                  5      U R	                  U R                  5      U R	                  U R                  5      U R	                  U R                  5      5      nU(       d  USL Ga  U R                  R                  U R                  U R                  5      S9  U R                  U R                  5      S:X  a  U R                  R                  SU R                  U R                  5      U R                  U R                  5      S9  U R                  R                  U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      S9  OU R                  R                  SU R                  U R                  5      U R                  U R                  5      S9  U R                  R                  U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      S9  U R                  R                  SU R                  U R                   5      U R                  U R                   5      S9  U R"                  (       ag  U R                  R%                  U R                  U R&                  5      U R                  U R&                  5      U R                  U R&                  5      S9  g U R                  R%                  U R                  U R(                  5      U R                  U R(                  5      U R                  U R(                  5      S9  g g )	NF)bgr!   inner_parts)filloutline)r   disabledbackgroundreadonlybackgroundhighlightcolorborder_parts)fgdisabledforegroundinsertbackground)r9   r`   rW   draw_rounded_rect_with_borderrS   rT   rU   rC   rD   rV   r   _apply_appearance_mode	_bg_colorr?   
itemconfigr\   rB   rG   configrA   r@   )ra   r   requires_recoloringrc   s      rd   r`   CTkEntry._draw   s   &'"//MMdNhNhimi|i|N}NRNhNhimi}i}N~NRNhNhimi|i|N}NRNhNhimi{i{N|~
 "2e";LL""d&A&A$..&Q"R**4>>:mK''-1-H-H-X040K0KDNN0[ ( ] %%)D)DT^^)T9=9T9TUYUcUc9d9=9T9TUYUcUc9d595P5PQUQ_Q_5` & b
 ''-1-H-H-X040K0KDNN0[ ( ] %%)D)DT^^)T9=9T9TUYUcUc9d9=9T9TUYUcUc9d595P5PQUQ_Q_5` & b
 LL##N)-)D)DTEWEW)X,0,G,GHZHZ,[ $ ] ,,""d&A&A$B^B^&_6:6Q6QRVRnRn6o484O4OPTPlPl4m # o ""d&A&A$BRBR&S6:6Q6QRVRbRb6c484O4OPTP`P`4a # c; #<rf   c                   > SU;   a9  UR                  S5      U l        U R                  R                  U R                  S9  SU;   a'  U R	                  UR                  S5      5      U l        SnSU;   a'  U R	                  UR                  S5      5      U l        SnSU;   a'  U R	                  UR                  S5      5      U l        SnSU;   a'  U R	                  UR                  S5      5      U l        SnSU;   a(  UR                  S5      U l	        U R                  5         SnS	U;   a(  UR                  S	5      U l        U R                  5         SnS
U;   a  UR                  S
5      U l        U R                  (       aQ  U R                  R                  S[        R                   5        U R                  R#                  SU R                  5        OU R%                  5         SU;   a9  UR                  S5      U l        U R                  R                  U R&                  S9  SU;   a  [)        U R*                  [,        5      (       a%  U R*                  R/                  U R0                  5        U R3                  UR                  S5      5      U l        [)        U R*                  [,        5      (       a%  U R*                  R5                  U R0                  5        U R1                  5         SU;   aX  U R                  (       a  UR                  S5      U R6                  S'   O(U R                  R                  UR                  S5      S9  U R                  R                  " S0 [9        X R:                  5      D6  [<        TU ]  " SSU0UD6  g )Nr/   )r/   r(   Tr*   r+   r)   r&   r%   r-   r   r,   )r,   r.   r   )r   require_redrawr8   )poprJ   r\   r   r>   r?   r@   rA   rB   rD   r]   rC   rF   rG   deleterX   ENDinsertr^   rI   rN   rM   r   r   rP   rL   rO   rH   r   r[   r9   )ra   r   rb   rc   s      rd   r   CTkEntry.configure   s   f **W-DKKK!!!4!33FJJz4JKDN!N6!#55fjj6NOD!N#v-+/+A+A&**MeBf+gD(!NV#!%!7!7

>8R!SD!NV#!'N!;D!Nf$"(**_"=D!N'%+ZZ0B%CD",,""1gkk2""1d&<&<=**,V#!'N!;DKK!!t/A/A!BV$**g..

99$:K:KL..vzz&/ABDJ$**g..

66t7H7HIV,,:@**V:L//7%%6::f+=%>^ 4V=\=\ ]^BB6Brf   attribute_namereturnc                   > US:X  a  U R                   $ US:X  a  U R                  $ US:X  a  U R                  $ US:X  a  U R                  $ US:X  a  U R                  $ US:X  a  U R
                  $ US:X  a  U R                  $ US:X  a  U R                  $ US	:X  a  U R                  $ US
:X  a  U R                  $ XR                  ;   a  U R                  R                  U5      $ [        TU ]1  U5      $ )Nr%   r&   r(   r)   r*   r+   r,   r-   r.   r/   )rC   rD   r?   rB   r@   rA   rI   rF   rM   rJ   r[   r\   cgetr9   )ra   r   rc   s     rd   r   CTkEntry.cget   s    _,&&&~-%%%z)>>!~-%%%|+###77///~-%%%11)))v%::w&;;>>>;;##N337<//rf   c                 d    US:X  d  USL d  [        S5      eU R                  R                  XSS9  g)called on the tkinter.Entry +TzE'add' argument can only be '+' or True to preserve internal callbacks)addN)
ValueErrorr\   ri   )ra   rg   commandr   s       rd   ri   CTkEntry.bind  s2    s
cTkdee5rf   c                 v    Ub  [        S5      eU R                  R                  US5        U R                  US9  g)r   Nz'funcid' argument can only be None, because there is a bug in tkinter and its not clear whether the internal callbacks will be unbinded or not)rg   )r   r\   unbindr_   )ra   rg   funcids      rd   r   CTkEntry.unbind"  sB     q r r8T*x0rf   c                 &   U R                   R                  5       S:X  a  U R                  b  U R                  b  U R                  S:X  a  SU l        SU R                   R                  S5      0U l        U R                   R                  U R                  U R                  5      U R                  U R                  5      SS9  U R                   R                  S[        R                  5        U R                   R                  SU R                  5        g g g g )Nr3   Tr   )r   r   r   r   )r\   r~   rF   rI   rG   r   rH   r   r   rA   r   rX   r   r   rz   s    rd   r^   CTkEntry._activate_placeholder*  s    ;;??"t'='='ItOaOaOimqmm  DF  nF,0D)/5t{{7G7G7O.PD+KK$"="=d>Z>Z"[262M2MdNjNj2k$&  ( KKq'++.KKq$"8"89 nF'I"rf   c                    U R                   (       a  U R                  R                  S5      S:w  a  SU l         U R                  R                  U R	                  U R
                  5      U R	                  U R
                  5      S9  U R                  R                  S[        R                  5        U R                  R                  5        H  u  pX R                  U'   M     g g g )Nr/   readonlyF)r   r   r   )rG   r\   r   r   r   r@   r   rX   r   rH   items)ra   argumentvalues      rd   _deactivate_placeholder CTkEntry._deactivate_placeholder5  s    ((T[[-=-=g-F*-T,1D)KK$"="=d>N>N"O262M2MdN^N^2_  bKKq'++.#'#B#B#H#H#J(-H% $K .U(rf   c                 2    U R                  5         SU l        g )NF)r^   rE   ra   events     rd   rk   CTkEntry._entry_focus_out?  s    ""$ rf   c                 2    U R                  5         SU l        g )NT)r   rE   r   s     rd   rj   CTkEntry._entry_focus_inC  s    $$&rf   c                     U R                   R                  X5        U R                  (       d0  U R                   R                  5       S:X  a  U R	                  5         g g g r}   )r\   r   rE   r~   r^   )ra   first_index
last_indexs      rd   r   CTkEntry.deleteG  sC    ;3DKKOO$5$;&&( %<rf   c                 X    U R                  5         U R                  R                  X5      $ r   )r   r\   r   )ra   r   strings      rd   r   CTkEntry.insertM  s#    $$&{{!!%00rf   c                 Z    U R                   (       a  gU R                  R                  5       $ r}   )rG   r\   r~   rz   s    rd   r~   CTkEntry.getR  s    ((;;??$$rf   c                 8    U R                   R                  5         g r   )r\   focusrz   s    rd   r   CTkEntry.focusX  s    rf   c                 8    U R                   R                  5         g r   )r\   	focus_setrz   s    rd   r   CTkEntry.focus_set[  s    rf   c                 8    U R                   R                  5         g r   )r\   focus_forcerz   s    rd   r   CTkEntry.focus_force^  s    !rf   c                 8    U R                   R                  U5      $ r   )r\   r   ra   r   s     rd   r   CTkEntry.indexa      {{  ''rf   c                 8    U R                   R                  U5      $ r   r\   icursorr   s     rd   r   CTkEntry.icursord      {{""5))rf   c                 8    U R                   R                  U5      $ r   )r\   select_adjustr   s     rd   r   CTkEntry.select_adjustg  s    {{((//rf   c                 8    U R                   R                  U5      $ r   r   r   s     rd   select_fromCTkEntry.select_fromj  r   rf   c                 6    U R                   R                  5       $ r   )r\   select_clearrz   s    rd   r   CTkEntry.select_clearm  s    {{''))rf   c                 6    U R                   R                  5       $ r   )r\   select_presentrz   s    rd   r   CTkEntry.select_presentp  s    {{))++rf   c                 8    U R                   R                  X5      $ r   )r\   select_range)ra   start_index	end_indexs      rd   r   CTkEntry.select_ranges  s    {{''??rf   c                 8    U R                   R                  U5      $ r   )r\   	select_tor   s     rd   r   CTkEntry.select_tov  s    {{$$U++rf   c                 8    U R                   R                  U5      $ r   )r\   xviewr   s     rd   r  CTkEntry.xviewy  r   rf   c                 8    U R                   R                  U5      $ r   )r\   xview_moveto)ra   fs     rd   r  CTkEntry.xview_moveto|  s    {{''**rf   c                 8    U R                   R                  X5      $ r   )r\   xview_scroll)ra   numberwhats      rd   r	  CTkEntry.xview_scroll  s    {{''55rf   )rB   rD   rV   rC   rW   r\   r?   rM   rE   rF   rG   rA   rH   rJ   r@   rI   rK   r   )NN)F)NNT)7__name__
__module____qualname____firstlineno____doc__rw   r[   rX   NORMALr   intr   r   strr   Variabletupler   r:   r_   r]   rR   r   r   rP   r   r`   r   anyr   ri   r   r^   r   rk   rj   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  __static_attributes____classcell__)rc   s   @rd   r   r      sQ   
 "h "!04/39FCGGKEIQU?C6:9=%nn!III I !)	I
  (}I !eCHo!56I $E#uS#X*>$?@I  (c5c?.B(CDI &eCsCx,@&ABI *2%U38_8L2M)NI  %W%5%5t%;<I $)d#3I  eWn 56I  !I IVB# B
H)**:'cR;Cz03 03 0:61	:.! )1
% "(*0**,@,(+6 6rf   r   )rX   typingr   r   r   r   core_renderingr   r=   r	   r
   core_widget_classesr   r.   r   utilityr   r   r   r8   rf   rd   <module>r     s.     . . %  & -  =t6| t6rf   