
    h|[                         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            3       H  ^  \ rS rSrSrSSSSSSSSSSSSSSSS SSS	S
SSS\R                  4S\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\	\
\\\\4   4      S\S\	\
\\4      S\
\R                  S4   S\
\\4   S \
\\4   S!\
\R                  S4   S"\S#\
\\4   S$\42U 4S% jjjrSAS&\	\   4S' jjrU 4S( jrSBS\S\4U 4S) jjjrS* rU 4S+ jrS, rSCU 4S- jjrSCU 4S. jjrS/\S0\4U 4S1 jjrSAS2 jrSCS3 jrSCS4 jrS0\
\\4   4S5 jr SDS6 jr!SDS7 jr"S8 r#SES&\S#\S9\
\\4   4S: jjr$SBS&\S;\4S< jjr%S= r&S> r'S? r(S@r)U =r*$ )F	CTkSwitch   z~
Switch with rounded corners, border, label, command, variable support.
For detailed information check out the documentation.
d      $      Ntransparentr   r   Tmasterwidthheightswitch_widthswitch_heightcorner_radiusborder_widthbutton_lengthbg_colorfg_colorborder_colorprogress_colorbutton_colorbutton_hover_color
text_colortext_color_disabledtextfonttextvariableonvalueoffvaluevariablehovercommandstatec                 	  > [         TU ]  " SXX#S.UD6  X@l        XPl        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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 R	                  U5      U l        UU l        S U l        Uc
  [!        5       OU R#                  U5      U l        ['        U R$                  [         5      (       a%  U R$                  R)                  U R*                  5        Uc  [        R                  S   S   OUU l        Uc  [        R                  S   S   OUU l        Uc  [        R                  S   S   OUU l        SU l        SU l        UU l        UU l        UU l        UU l        UU l        UU l         SU l!        S U l"        UU l#        U RI                  SSS9  U RI                  SSU RK                  S5      S9  U RI                  SSS9  U RM                  SSS9  [O        U SU RK                  U RP                  5      U RK                  U RR                  5      S9U l*        U RT                  RW                  SSSSS9  [O        U SU RK                  U R                  5      U RK                  U R                  5      S9U l,        U RX                  RW                  SSSS9  [[        U RX                  5      U l.        [^        R`                  " U SSSU R                  [^        Rb                  U Re                  U R$                  5      U RF                  S9U l        U R                  RW                  SSSS9  SU R                  S'   U R@                  bl  U R@                  S:w  a\  U R@                  Rg                  SU Rh                  5      U l"        U R@                  Rk                  5       U R:                  :X  a  SOSU l        U Rm                  5         U Ro                  5         U Rq                  5         g ) N)r   r   r   r   Ttransparencyr   r   r!   r"   r#   r$   r%   r   r   r   Fr   )weightr      r2   minsize   )r   highlightthicknessr   r      nswerowcolumn
columnspansticky )r;   r<   r>   )r   bdpadxpadyr&   justifyr'   r(   wanchorwrite )9super__init___switch_width_switch_height_check_color_type_border_colorr
   theme	_fg_color_progress_color_button_color_button_hover_color_text_color_text_color_disabled_text_text_labelr   _check_font_type_font
isinstanceadd_size_configure_callback_update_font_corner_radius_border_width_button_length_hover_state_check_state_hover_state_onvalue	_offvalue_command	_variable_variable_callback_blocked_variable_callback_name_textvariablegrid_columnconfigure_apply_widget_scalinggrid_rowconfigurer	   _current_width_current_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,   r-   r.   kwargs	__class__s                              b/var/www/fran/franai/venv/lib/python3.13/site-packages/customtkinter/windows/widgets/ctk_switch.pyrI   CTkSwitch.__init__   s   > 	``Y_` *+ "33Lt3THPHX++K8D^b^t^tu}^~TbTj|11+>?OPpt  qG  qG  HV  ei  qG  qjP\Pd\//<^Ljn  kA  kA  BN  kO\n\v<#5#5k#BCW#X  }A  }S  }S  Tf  }g LVL^<--k:<Hdhdzdz  |F  eG^q^yL$6$6{$CDY$Z  @D  @V  @V  Wj  @k! 
 #',WYD4I4I$4O
djj'**JJ2243D3DE S`Rgl00=oNmzP\Pd\//<^LjvR_Rgl00=oNmz"'"'!  !*/''+$) 	!!!A!.!!!At7Q7QRS7T!U!!!A!.q+#478*.*D*DTEXEX*Y+/+E+EdFZFZ+[] 	16J 45'+'A'A$BTBT'U(,(B(B4CVCV(WY 	a"5&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>)rq   bind	_on_enterrV   	_on_leavetoggle)r}   r   s     r   rz   CTkSwitch._create_bindings   s    x94LLi8!!)T^^<x94LLi8!!)T^^<x<7LLlDKK8!!,<  8r   c                   > [         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                  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   r3   r4   r'   r   r   Tno_color_updates)rH   _set_scalingrj   rk   rV   	configurerv   rX   ro   _desired_width_desired_heightrq   rJ   rK   r|   )r}   argsr~   r   s      r   r   CTkSwitch._set_scaling   s    d-f-!!!At7Q7QRS7T!U""(@(@(L"M!!(B(B4CVCV(W)-)C)CDDXDX)Y 	" 	[T%?%?@R@R%S&*&@&@ATAT&U 	 	W

D
)r   c                    > [         TU ]  X5        U R                  R                  U R	                  U R
                  5      U R	                  U R                  5      S9  g )Nr   )rH   _set_dimensionsro   r   rk   r   r   )r}   r   r   r   s      r   r   CTkSwitch._set_dimensions   sO    .!!(B(B4CVCV(W)-)C)CDDXDX)Y 	" 	[r   c                     U R                   R                  U R                  U R                  5      S9  U R                  R                  5         U R                  R                  SSSSS9  g)zWpass font to tkinter widgets with applied font scaling and update grid with workaround r   r   r8   r9   r:   N)rV   r   rv   rX   ro   grid_forgetrp   r}   s    r   r[   CTkSwitch._update_font   sU    ""(@(@(L"M 	##%16Jr   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 )NrF   )
rf   trace_removerh   rY   rX   r   remove_size_configure_callbackr[   rH   destroy)r}   r   s    r   r   CTkSwitch.destroy   sZ    >>%NN''1M1MNdjj'**JJ55d6G6GHr   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_enabledrb   rs   DISABLEDsysplatformrq   r   rV   
startswithNORMALr   s    r   r{   CTkSwitch._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 / -r   c           
      R	  > [         TU ]  U5        U R                  SL a  U R                  R	                  U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      SS5      nOU R                  R	                  U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      U R                  U R                  5      SS5      nUSL 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:X  aN  U R                  R#                  SU R                  U R                  5      U R                  U R                  5      S	9  OMU 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&                  S:X  aN  U R                  R#                  SU R                  U R$                  5      U R                  U R$                  5      S	9  OMU 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*                  [,        R.                  :X  a3  U R0                  R                  U R                  U R2                  5      S9  O2U R0                  R                  U R                  U R4                  5      S9  U R0                  R                  U R                  U R                  5      S9  g g )NTr   rD   r   F)bgr   border_partsfilloutlineinner_partsprogress_partsslider_parts)fg)rH   r|   r`   rr   *draw_rounded_slider_with_border_and_buttonrk   rJ   rK   r\   r]   r^   ro   r   _apply_appearance_mode	_bg_colorrq   rM   
itemconfigrO   rP   rQ   rb   rs   r   rV   rT   rS   )r}   r   requires_recoloringr   s      r   r|   CTkSwitch._draw   su   &'$"&"3"3"^"^_c_y_yz~  {M  {M  `N_c_y_yz~  {N  {N  `O_c_y_yz~  {N  {N  `O_c_y_yz~  {M  {M  `N_c_y_yz~  {N  {N  `O_c_y_yz~  {N  {N  `O_`be#g #'"3"3"^"^_c_y_yz~  {M  {M  `N_c_y_yz~  {N  {N  `O_c_y_yz~  {N  {N  `O_c_y_yz~  {M  {M  `N_c_y_yz~  {N  {N  `O_c_y_yz~  {N  {N  `O_`be#g u$(;OO%%)D)DT^^)T%ULL""d&A&A$..&Q"R!!]2''-1-H-H-X040K0KDNN0[ ( ] ''-1-H-HI[I[-\040K0KDL^L^0_ ( a LL##M)-)D)DT^^)T,0,G,G,W $ Y ##}4''(8-1-H-H-X040K0KDNN0[ ( ] ''(8-1-H-HI]I]-^040K0KDL`L`0a ( c LL##N)-)D)DTEWEW)X,0,G,GHZHZ,[ $ ] {{g...  **t/J/J4KdKd/e*g  **d.I.I$JZJZ.[*\&&$*E*Ednn*U&VG )<r   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;   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      SS9U l        SnSU;   a&  U R)                  UR                  S5      SS9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 R<                  S9  SU;   a  U R>                  b6  U R>                  S:w  a&  U R>                  RA                  SU RB                  5        UR                  S5      U l        U R>                  bn  U R>                  S:w  a^  U R>                  RE                  SU RF                  5      U l!        U R>                  RI                  5       U RJ                  :X  a  SOSU l&        Sn[N        TU ]  " SSU0UD6  g )Nr   Tr   r   r   )r   r   )r   r&   )r&   r'   r.   r   r    r0   r!   r"   r#   r$   r%   r,   r-   r(   )r(   r+   r?   rF   Frequire_redrawrG   )(popr\   r]   r^   rJ   rq   r   rk   rK   rU   rV   rY   rX   r   r   r[   rW   rZ   rb   r{   rL   rO   rM   rP   rQ   rR   rS   rT   ra   re   ri   rf   r   rh   rw   rx   ry   rc   r`   rH   )r}   r   r~   r   s      r   r   CTkSwitch.configure  s   f$"(**_"=D!NV#!'N!;D!Nf$"(**_"=D!NV#!'N!;DLL"")C)CDDVDV)W"X!Nf$"(**_"=DLL""$*D*DTEXEX*Y"Z!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V#!%!7!7

>8Rae!7!fD!Nv%#'#9#9&**EU:Vei#9#jD !NV#!%!7!7

>8R!SD!N6)'+'='=fjjI]>^'_D$!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Br   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"                  $ US:X  a  U R$                  $ US:X  a  U R&                  $ US:X  a  U R(                  $ [*        TU ]Y  U5      $ )Nr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   )r\   r]   r^   rJ   rK   rO   rM   rP   rQ   rR   rS   rT   rU   rX   ri   rc   rd   rf   ra   re   rb   rH   cget)r}   r   r   s     r   r   CTkSwitch.cget]  s   _,&&&~-%%%.&&&~-%%%.&&&z)>>!~-%%%//'''~-%%%33+++|+###44,,,v%::v%::~-%%%y(== z)>>!z)>>!w&;;y(== w&;; 7<//r   c                    U R                   [        R                  La  U R                  SL a  SU l        OSU l        U R	                  SS9  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 )NTFr   )rb   rs   r   r`   r|   rf   rg   setrc   rd   re   r}   events     r   r   CTkSwitch.toggle  s    ;;g...  D($)!$(!JJJ-~~)26/""D4E4E4M4==SWSaSab27/}}( ) /r   c                    U R                   [        R                  Ld  U(       a`  SU l        U R	                  SS9  U R
                  b<  U(       d4  SU l        U R
                  R                  U R                  5        SU l        g g g g )NTr   F)	rb   rs   r   r`   r|   rf   rg   r   rc   r}   from_variable_callbacks     r   selectCTkSwitch.select  so    ;;g...2H $DJJJ-~~)2H26/""4==127/ 3I) 3Ir   c                    U R                   [        R                  Ld  U(       a`  SU l        U R	                  SS9  U R
                  b<  U(       d4  SU l        U R
                  R                  U R                  5        SU l        g g g g )NFTr   )	rb   rs   r   r`   r|   rf   rg   r   rd   r   s     r   deselectCTkSwitch.deselect  so    ;;g...2H %DJJJ-~~)2H26/""4>>227/ 3I) 3Ir   c                 P    U R                   SL a  U R                  $ U R                  $ )NT)r`   rc   rd   r   s    r   ry   CTkSwitch.get  s"     $ 1 1T 9t}}Mt~~Mr   c                     U R                   SL af  U R                  S:X  aU  SU l        U R                  R	                  SU R                  U R                  5      U R                  U R                  5      S9  g g g )NTnormalr   r   )ra   rb   r_   rq   r   r   rR   r   s     r   r   CTkSwitch._on_enter  sk    ;;$4;;(#: $DLL##N)-)D)DTE]E])^,0,G,GH`H`,a $ c $;r   c                     SU l         U R                  R                  SU R                  U R                  5      U R                  U R                  5      S9  g )NFr   r   )r_   rq   r   r   rQ   r   s     r   r   CTkSwitch._on_leave  sL    !%)%@%@ASAS%T(,(C(CDDVDV(W 	  	Yr   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)r   )rg   rf   ry   rc   r   rd   r   )r}   var_nameindexmodes       r   rx   CTkSwitch._variable_callback  sc    ..~~!!#t}}448##%7T: 8 /r   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)
ValueErrorrq   r   rV   )r}   r   r-   r   s       r   r   CTkSwitch.bind  sK    s
cTkdee(6hT:r   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   rq   unbindrV   rz   )r}   r   r   s      r   r   CTkSwitch.unbind  sX     q r rHd+$/x0r   c                 6    U R                   R                  5       $ N)rV   focusr   s    r   r   CTkSwitch.focus  s    %%''r   c                 6    U R                   R                  5       $ r   )rV   	focus_setr   s    r   r   CTkSwitch.focus_set  s    ))++r   c                 6    U R                   R                  5       $ r   )rV   focus_forcer   s    r   r   CTkSwitch.focus_force  s    ++--r   )ro   rM   r]   rQ   rR   r^   rq   r`   re   r\   rr   rO   rX   ra   r_   rd   rc   rP   rb   rK   rJ   rU   rS   rT   rV   ri   rf   rg   rh   r   )NN)F)r   )NNT)+__name__
__module____qualname____firstlineno____doc__rs   r   r   intr   r   strr   tupler   Variableboolr   rI   rz   r   r   r[   r   r{   r|   r   anyr   r   r   r   ry   r   r   rx   r   r   r   r   r   __static_attributes____classcell__)r   s   @r   r   r      sY    "!%'&(04/3049FCG=JIMGKMQEINR(9=?C,--.;?#15%nn7mmm m  #	m
 !$m !)m  (}m !)m !eCHo!56m $E#uS#X*>$?@m  %S%S/%9:m "*%U38_0D*E!Fm  (c5c?.B(CDm &.eCsCx4H.I%Jm  &eCsCx,@&AB!m" '/uS%S/5I/J&K#m& 'm(  eWn 56)m*  %W%5%5t%;<+m,  S/-m. !c?/m0 !!1!14!781m2 3m4  #.5m6 7m m^
=# 
=
*[S [ [ [KC,7WrZCx/03 /03 /0b "	8	8NU38_ NcY;;S ;( ;cSWiHX ;1s 13 1(,. .r   r   )rs   r   typingr   r   r   r   r   core_renderingr	   rN   r
   r   core_widget_classesr   r'   r   r   rG   r   r   <module>r     s.     
 8 8 %  & - W. W.r   