
    hW                         S SK r S SKrS SKJr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
\5      rg)    N)UnionTupleCallableOptionalAny   )	CTkCanvas)ThemeManager)
DrawEngine)CTkBaseClass)CTkFontc            1       ,  ^  \ rS rSrSrSSSSSSSSSSSSSS SS\R                  SSSS	S4S
\S\S\S\S\S\	\   S\	\   S\
\\\\4   4   S\	\
\\\\4   4      S\	\
\\\\4   4      S\	\
\\\\4   4      S\	\
\\\\4   4      S\	\
\\\\4   4      S\	\
\\\\4   4      S\S\	\
\\4      S\
\R                  S4   S\S\S\
\/ \4   S4   S\
\\4   S\
\\4   S \
\R                  S4   4.U 4S! jjjrS=S"\	\   4S# jjrU 4S$ jrS>S\S\4U 4S% j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- rS@S. jrS@S/ jrS0 rS@S1 jr S?S2 jr!S?S3 jr"S+\
\\4   4S4 jr#SAS"\S\S5\
\\4   4S6 jjr$S>S"\S7\4S8 jjr%S9 r&S: r'S; r(S<r)U =r*$ )BCTkCheckBox   z
Checkbox with rounded corners, border, variable support and hover effect.
For detailed information check out the documentation.
d      NtransparentTr   r   masterwidthheightcheckbox_widthcheckbox_heightcorner_radiusborder_widthbg_colorfg_colorhover_colorborder_colorcheckmark_color
text_colortext_color_disabledtextfonttextvariablestatehovercommandonvalueoffvaluevariablec                 	  > [         TU ]  " SXX#S.UD6  X@l        XPl        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 R                  U5      U l
        Uc  [        R
                  S   S   OUU l        Uc  [        R
                  S   S   OUU l        Xl        S 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
  [#        5       OU R%                  U5      U l        [)        U R&                  ["        5      (       a%  U R&                  R+                  U R,                  5        UU l        UU l        UU l        SU l        UU l        UU l        UU l        SU l        UU l        S U l         U RC                  SSS9  U RC                  SSU RE                  S5      S9  U RC                  SSS9  U RG                  SSS9  [I        U SU RE                  U RJ                  5      U RE                  U RL                  5      S9U l'        U RN                  RQ                  SSSSS9  [I        U SU RE                  U R                  5      U RE                  U R                  5      S9U l)        U RR                  RQ                  SSSS9  [U        U RR                  5      U l+        [X        RZ                  " U SSSU R                  [X        R\                  U R_                  U R&                  5      U R>                  S9U l        U R                  RQ                  SSSS9  SU R                  S'   U R:                  bl  U R:                  S:w  a\  U R:                  Ra                  SU Rb                  5      U l         U R:                  Re                  5       U R6                  :X  a  SOSU l        U Rg                  5         U Ri                  5         U Rk                  5         g )N)r   r   r   r   r   r   r   r   r   r   r   r    r!   Fr   )weightr      r,   minsize   )r   highlightthicknessr   r      nswerowcolumn
columnspanstickye)r5   r6   r8   )r   bdpadxpadyr"   justifyr#   r$   wanchor writeT )6super__init___checkbox_width_checkbox_heightr
   theme_check_color_type	_fg_color_hover_color_border_color_checkmark_color_corner_radius_border_width_text_text_label_text_color_text_color_disabledr   _check_font_type_font
isinstanceadd_size_configure_callback_update_font_command_state_hover_check_state_onvalue	_offvalue	_variable_variable_callback_blocked_textvariable_variable_callback_namegrid_columnconfigure_apply_widget_scalinggrid_rowconfigurer	   _desired_width_desired_height
_bg_canvasgrid_canvasr   _draw_enginetkinterLabelLEFT_apply_font_scaling	trace_add_variable_callbackget_create_bindings_set_cursor_draw)selfr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   kwargs	__class__s                            d/var/www/fran/franai/venv/lib/python3.13/site-packages/customtkinter/windows/widgets/ctk_checkbox.pyrD   CTkCheckBox.__init__   sj   : 	``Y_`  . / KSJZ++M::F`d`v`vw  aAP[PcL..}=mLimii  AL  jMR^Rf\//>~Nlp  mC  mC  DP  mQXgXo 2 2= ABS Tuy  vL  vL  M\  v] UbTil00?Po|R^Rf\//>~Nlx 
7;NXN`<--m<\Jfjf|f|  ~H  gI`s`{L$6$6}$EF[$\  BF  BX  BX  Yl  Bm! #',WYD4I4I$4O
djj'**JJ2243D3DE  !!+3*/'/;'+$ 	!!!A!.!!!At7Q7QRS7T!U!!!A!.q+#478*.*D*DTEXEX*Y+/+E+EdFZFZ+[] 	16J 45'+'A'A$BVBV'W(,(B(B4CXCX(Y[ 	a#6&t||4"==,-././.2jj18.2.F.Ftzz.R6:6H6HJ 	!Ac:%(" >>%$..B*>+/>>+C+CGTMdMd+eD((,(:(:(<(MSXD

    sequencec                    Ub  US:X  aL  U R                   R                  SU R                  5        U R                  R                  SU R                  5        Ub  US:X  aL  U R                   R                  SU R                  5        U R                  R                  SU R                  5        Ub  US:X  aM  U R                   R                  SU R
                  5        U R                  R                  SU R
                  5        gg)zRset necessary bindings for functionality of widget, will overwrite other bindings Nz<Enter>z<Leave>z
<Button-1>)ri   bind	_on_enterrP   	_on_leavetoggle)ru   r{   s     rx   rr   CTkCheckBox._create_bindings~   s    x94LLi8!!)T^^<x94LLi8!!)T^^<x<7LLlDKK8!!,<  8rz   c                 N  > [         TU ]  " U0 UD6  U R                  SSU R                  S5      S9  U R                  R                  U R                  U R                  5      S9  U R                  R                  S5        U R                  R                  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      S9  U R                  SS	9  g )
Nr   r   r-   r.   r#   	checkmarkr   r   T)no_color_updates)rC   _set_scalingrb   rc   rP   	configurern   rT   ri   deleterg   re   rf   rE   rF   rt   )ru   argsrv   rw   s      rx   r   CTkCheckBox._set_scaling   s    d-f-!!!At7Q7QRS7T!U""(@(@(L"MK(!!(B(B4CVCV(W)-)C)CDDXDX)Y 	" 	[T%?%?@T@T%U&*&@&@AVAV&W 	 	Y

D
)rz   c                    > [         TU ]  X5        U R                  R                  U R	                  U R
                  5      U R	                  U R                  5      S9  g )Nr   )rC   _set_dimensionsrg   r   rc   re   rf   )ru   r   r   rw   s      rx   r   CTkCheckBox._set_dimensions   sO    .!!(B(B4CVCV(W)-)C)CDDXDX)Y 	" 	[rz   c                     U R                   bi  U R                   R                  U R                  U R                  5      S9  U R                  R                  5         U R                  R                  SSSSS9  gg)zWpass font to tkinter widgets with applied font scaling and update grid with workaround Nr   r   r2   r3   r4   )rP   r   rn   rT   rg   grid_forgetrh   ru   s    rx   rW   CTkCheckBox._update_font   sf    '&&D,D,DTZZ,P&Q OO'')OO  QqQv N (rz   c                   > U R                   b&  U R                   R                  SU R                  5        [        U R                  [
        5      (       a%  U R                  R                  U R                  5        [        TU ]%  5         g )NrA   )
r^   trace_removera   rU   rT   r   remove_size_configure_callbackrW   rC   destroy)ru   rw   s    rx   r   CTkCheckBox.destroy   sZ    >>%NN''1M1MNdjj'**JJ55d6G6GHrz   c                 J  > [         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 R                  SL al  U R                  R                  U R	                  U R
                  5      U R	                  U R                  5      U R	                  U R                  S-  5      5      nOSnU R                  R                  S5        USL d  U(       d  U(       Ga  U R                  R                  U R                  U R                   5      S9  U R                  R                  U R                  U R                   5      S9  U R                  SL Ga!  U R                  R#                  S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  S	U R                  R'                  S5      ;   a4  U R                  R#                  SU R                  U R(                  5      S
9  OU R                  R#                  S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#                  SU R                  U R*                  5      U R                  U R*                  5      S9  U R,                  [.        R0                  :X  a3  U R2                  R                  U R                  U R4                  5      S9  O2U R2                  R                  U R                  U R6                  5      S9  U R2                  R                  U R                  U R                   5      S9  g g )NTg(\?Fr   )bginner_parts)outlinefillborder_partscreate_line)r   )fg)rC   rt   rj   draw_rounded_rect_with_borderrc   rE   rF   rM   rN   r[   draw_checkmarkri   r   rg   r   _apply_appearance_mode	_bg_color
itemconfigrI   gettagsrL   rK   rY   rk   DISABLEDrP   rR   rQ   )ru   r   requires_recoloring_1requires_recoloring_2rw   s       rx   rt   CTkCheckBox._draw   sr   &' $ 1 1 O OPTPjPjkokk  QAPTPjPjko  lA  lA  QBPTPjPjkok~k~PPTPjPjkok}k}P~!@
 $$($5$5$D$DTE_E_`d`t`tEuEIE_E_`d`u`uEvEIE_E_`d`u`ux|`|E}%! %*!LL,u$(=AVOO%%)D)DT^^)T%ULL""d&A&A$..&Q"R  D(''040K0KDNN0[-1-H-H-X ( Z ''040K0KDNN0[-1-H-H-X ( Z !DLL$8$8$EELL++Kd>Y>YZ^ZoZo>p+qLL++Kd>Y>YZ^ZoZo>p+q''040K0KDNN0[-1-H-H-X ( Z ''040K0KDL^L^0_-1-H-HI[I[-\ ( ^ {{g...  **t/J/J4KdKd/e*g  **d.I.I$JZJZ.[*\&&$*E*Ednn*U&V; BWrz   c                  	  > SU;   a  UR                  S5      U l        SnSU;   a  UR                  S5      U l        SnSU;   aJ  UR                  S5      U l        U R                  R                  U R                  U R                  5      S9  SnSU;   aJ  UR                  S5      U l        U R                  R                  U R                  U R                  5      S9  Sn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 R                  5        U R                  UR                  S
5      5      U l        [        U R                  [        5      (       a%  U R                  R!                  U R                  5        U R                  5         SU;   a(  UR                  S5      U l        U R%                  5         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'                  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        SU;   a  UR                  S5      U l        SU;   a9  UR                  S5      U l        U R                  R                  U R8                  S9  SU;   a  U R:                  b6  U R:                  S:w  a&  U R:                  R=                  SU R>                  5        UR                  S5      U l        U R:                  bn  U R:                  S:w  a^  U R:                  RA                  SU RB                  5      U l        U R:                  RE                  5       U RF                  :X  a  SOSU l$        Sn[J        TU ]  " SSU0UD6  g )Nr   Tr   r   )r   r   )r   r"   )r"   r#   r%   r   r   r   r   r    r!   r&   r'   r$   )r$   r*   r@   rA   Frequire_redrawrB   )&poprM   rN   rE   ri   r   rc   rF   rO   rP   rU   rT   r   r   rW   rS   rV   rY   rs   rH   rI   rJ   rK   rL   rQ   rR   rZ   rX   r`   r^   r   ra   ro   rp   rq   r\   r[   rC   )ru   r   rv   rw   s      rx   r   CTkCheckBox.configure   s   f$"(**_"=D!NV#!'N!;D!Nv%#)::.>#?D LL"")C)CDDXDX)Y"Z!N&$*JJ/@$AD!LL""$*D*DTEZEZ*["\!NVF+DJ&&DJJ&7V$**g..

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

66t7H7HIf **W-DK!N!33FJJz4JKDN!NF" $ 6 6vzz-7P QD!NV#!%!7!7

>8R!SD!N&$($:$:6::FW;X$YD!!N6!#55fjj6NOD!N F*(,(>(>vzzJ_?`(aD%!Nf **W-DK"JJy1DMV#!'N!;D&&D4F4F&G~~)dnn.B++GT5Q5QR#ZZ
3DN~~)dnn.B/3~~/G/GQUQhQh/i,,0NN,>,>,@DMM,QDW\!!%BB6Brz   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                  $ 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"                  $ [$        TU ]M  U5      $ )Nr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r(   r)   r*   )rM   rN   rE   rF   rI   rJ   rK   rL   rQ   rR   rO   rT   r`   rY   rZ   r\   r]   r^   rC   cget)ru   r   rw   s     rx   r   CTkCheckBox.cget3  sn   _,&&&~-%%%//'''00(((z)>>!},$$$~-%%%00(((|+###44,,,v%::v%::~-%%%w&;;w&;;y(== z)>>!z)>>!7<//rz   c                    U R                   (       Ga  U R                  [        R                  :X  a  [        R
                  S:X  aA  U R                  R                  SS9  U R                  b  U R                  R                  SS9  g g [        R
                  R                  S5      (       aA  U R                  R                  SS9  U R                  b  U R                  R                  SS9  g g g U R                  [        R                  :X  a  [        R
                  S:X  aA  U R                  R                  SS9  U R                  b  U R                  R                  SS9  g g [        R
                  R                  S5      (       aA  U R                  R                  SS9  U R                  b  U R                  R                  SS9  g g g g g )Ndarwinarrow)cursorwinpointinghandhand2)_cursor_manipulation_enabledrY   rk   r   sysplatformri   r   rP   
startswithNORMALr   s    rx   rs   CTkCheckBox._set_cursor]  s|   ,,,{{g...<<8+LL**'*:''3((22'2B 4\\,,U33LL**'*:''3((22'2B 4 4
 .<<8+LL**.*A''3((22.2I 4\\,,U33LL**'*:''3((22'2B 4 4 / -rz   c                 R   U R                   SL Ga  U R                  [        R                  :X  a  U R                  SL a  U R
                  R                  S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  g U R
                  R                  SU R                  U R                  5      U R                  U R                  5      S9  g g g NTr   )r   r   r   )	rZ   rY   rk   r   r[   ri   r   r   rJ   ru   events     rx   r~   CTkCheckBox._on_enters  s    ;;$4;;'..#@  D(''-1-H-HIZIZ-[040K0KDL]L]0^ ( ` ''-1-H-HIZIZ-[040K0KDL]L]0^ ( ` ''-1-H-HIZIZ-[040K0KDL]L]0^ ( ` $Arz   c                    U R                   SL a  U R                  R                  S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  g U R                  R                  S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  g r   )r[   ri   r   r   rI   r   rK   r   s     rx   r   CTkCheckBox._on_leave  s   $LL##M)-)D)DT^^)T,0,G,G,W $ Y LL##N)-)D)DT^^)T,0,G,G,W $ Y LL##M)-)D)DT^^)T,0,G,G,W $ Y LL##N)-)D)DTEWEW)X,0,G,GHZHZ,[ $ ]rz   c                    U R                   (       dq  U R                  R                  5       U R                  :X  a  U R	                  SS9  g U R                  R                  5       U R
                  :X  a  U R                  SS9  g g g )NT)from_variable_callback)r_   r^   rq   r\   selectr]   deselect)ru   var_nameindexmodes       rx   rp   CTkCheckBox._variable_callback  sc    ..~~!!#t}}448##%7T: 8 /rz   c                    U R                   [        R                  :X  a  U R                  SL a  SU l        U R	                  5         OSU l        U R	                  5         U R
                  bN  SU l        U R
                  R                  U R                  SL a  U R                  OU R                  5        SU l        U R                  b  U R                  5         g g g NTF)rY   rk   r   r[   rt   r^   r_   setr\   r]   rX   r   s     rx   r   CTkCheckBox.toggle  s    ;;'..(  D($)!

$(!

~~)26/""D4E4E4M4==SWSaSab27/}}( ) )rz   c                     SU l         U R                  5         U R                  b<  U(       d4  SU l        U R                  R	                  U R
                  5        SU l        g g g r   )r[   rt   r^   r_   r   r\   ru   r   s     rx   r   CTkCheckBox.select  sO     

>>%.D.2D+NNt}}-.3D+ /E%rz   c                     SU l         U R                  5         U R                  b<  U(       d4  SU l        U R                  R	                  U R
                  5        SU l        g g g )NFT)r[   rt   r^   r_   r   r]   r   s     rx   r   CTkCheckBox.deselect  sO    !

>>%.D.2D+NNt~~..3D+ /E%rz   c                 P    U R                   SL a  U R                  $ U R                  $ )NT)r[   r\   r]   r   s    rx   rq   CTkCheckBox.get  s"     $ 1 1T 9t}}Mt~~Mrz   addc                     US:X  d  USL d  [        S5      eU R                  R                  XSS9  U R                  R                  XSS9  g)zcalled on the tkinter.Canvas +TzE'add' argument can only be '+' or True to preserve internal callbacks)r   N)
ValueErrorri   r}   rP   )ru   r{   r'   r   s       rx   r}   CTkCheckBox.bind  sK    s
cTkdee(6hT:rz   funcidc                     Ub  [        S5      eU R                  R                  US5        U R                  R                  US5        U R	                  US9  g)z/called on the tkinter.Label and tkinter.Canvas 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)r{   )r   ri   unbindrP   rr   )ru   r{   r   s      rx   r   CTkCheckBox.unbind  sX     q r rHd+$/x0rz   c                 6    U R                   R                  5       $ N)rP   focusr   s    rx   r   CTkCheckBox.focus  s    %%''rz   c                 6    U R                   R                  5       $ r   )rP   	focus_setr   s    rx   r   CTkCheckBox.focus_set  s    ))++rz   c                 6    U R                   R                  5       $ r   )rP   focus_forcer   s    rx   r   CTkCheckBox.focus_force  s    ++--rz   )rg   rK   rN   ri   r[   rF   rE   rL   rX   rM   rj   rI   rT   rZ   rJ   r]   r\   rY   rO   rQ   rR   rP   r`   r^   r_   ra   r   )NN)F)r   )NNT)+__name__
__module____qualname____firstlineno____doc__rk   r   r   intr   r   strr   tupler   Variableboolr   rD   rr   r   r   rW   r   rt   r   anyr   rs   r~   r   rp   r   r   r   rq   r}   r   r   r   r   __static_attributes____classcell__)rw   s   @rx   r   r      s1    "!')(*04/39FCGFJGKJNEINR*9=?C%nn#;?,--.;?3jjj j "%	j
 #&j !)j  (}j !eCHo!56j $E#uS#X*>$?@j 'uS%S/-A'BCj  (c5c?.B(CDj #+5eCHo1E+F"Gj &eCsCx,@&ABj '/uS%S/5I/J&Kj" #j$  eWn 56%j&  %W%5%5t%;<'j( )j* +j,  S 14 78-j.  S//j0 !c?1j2 !!1!14!783j jX
=# 
=*[S [ [ [O-W^RCh(03 (03 (0TC,`] ; "44NU38_ N;S ;( ;cSWiHX ;1s 13 1(,. .rz   r   )rk   r   typingr   r   r   r   r   core_renderingr	   rG   r
   r   core_widget_classesr   r#   r   r   rB   rz   rx   <module>r      s.     
 8 8 %  & - I., I.rz   