
    h=                         S SK r S SKrS SKrS SKrS SKrS SK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Jr  \ R(                  r " S	 S
\\\5      rg)    N)UnionTupleOptional)version   )ThemeManager)CTkScalingBaseClass)CTkAppearanceModeBaseClass)pop_from_dict_by_setcheck_kwargs_emptyc                     ^  \ rS rSr% Sr1 Skr\\S'   1 Skr\\S'   Sr	\
\S'   Sr\
\S	'    S,S
\\\\\\4   4      4U 4S jjjrS rS rS,U 4S jjrU 4S jrS rS rU 4S jrU 4S jrU 4S jrU 4S jrU 4S jrS-S\
S\
4U 4S jjjrS-S\S\4U 4S jjjrS-S\S\4U 4S jjjrS,S\4U 4S jjjr U 4S jr!S\S \"4U 4S! jjr#S-U 4S" jjr$S-U 4S# jjr%S$ r&\'S% 5       r(\'S& 5       r)S'\4U 4S( jjr*S)\4U 4S* jjr+S+r,U =r-$ ).CTk   zp
Main app window with dark titlebar on Windows and macOS.
For detailed information check out the documentation.
>   usesyncuseTkbaseName	className
screenName_valid_tk_constructor_arguments>   bdr   menupadxpadyclasswidthcursorheightreliefscreenvisual	container	takefocusborderwidthhighlightthickness_valid_tk_configure_argumentsF,_deactivate_macos_window_header_manipulation._deactivate_windows_window_header_manipulationfg_colorc                   > U R                  5         [        R                  " U 40 [        X R                  5      D6  [
        R                  " U 5        [        R                  " U SS9  [        USS9  SU l        SU l	        SU l
        SU l        SU l        SU l        S U l        Uc  [        R                   S	   S
   OU R#                  U5      U l        [&        TU ]Q  U R+                  U R$                  5      S9  U R-                  S	5        SU l        S U l        SU l        SU l        SU l        SU l        S U l        [<        R>                  RA                  S5      (       a  U RC                  SU RD                  5        [<        R>                  RA                  S5      (       a  U RG                  U RI                  5       5        U RK                  SU RL                  5        U RK                  SU RN                  5        g )Nwindow)scaling_typeT)raise_erroriX  i  r   i@B r   r)   bgFwin   z<Configure>z	<FocusIn>)(_enable_macos_dark_title_barCTK_PARENT_CLASS__init__r   r   r
   r	   r   _current_width_current_height
_min_width_min_height
_max_width_max_height_last_resizable_argsr   theme_check_color_type	_fg_colorsuper	configure_apply_appearance_modetitle_iconbitmap_method_called(_state_before_windows_set_titlebar_color_window_exists%_withdraw_called_before_window_exists$_iconify_called_before_window_exists_block_update_dimensions_eventfocused_widget_before_widthdrawsysplatform
startswithafter_windows_set_titlebar_icon_windows_set_titlebar_color_get_appearance_modebind_update_dimensions_event_focus_in_event)selfr)   kwargs	__class__s      V/var/www/fran/franai/venv/lib/python3.13/site-packages/customtkinter/windows/ctk_tk.pyr4   CTk.__init__!   s    	))+ 	!!$m*>vGkGk*lm"++D1$$TA6t4!"  !( )DH!BJBR++E2:>X\XnXnowXx 	T88HI 	

5 */&8<5#5:2491.3+ 04, <<""5))JJsD;;< <<""5)),,T-F-F-HI		-!>!>?		+t334    c                     U R                  5         [        R                  R                  U 5        [        R                  " U 5        [
        R                  " U 5        g N)_disable_macos_dark_title_bartkinterTkdestroyr
   r	   rT   s    rW   r_   CTk.destroyS   s>    **, 	

4 "**40##D)rY   c                 N    [         R                  S:X  a  U R                  5         g g )Ndarwin)rJ   rK   lift)rT   events     rW   rS   CTk._focus_in_event[   s    <<8#IIK $rY   c                 8  > U R                   (       d  [        TU ]	  5       n[        TU ]  5       nU R                  U R                  U5      :w  d  U R                  U R                  U5      :w  a-  U R                  U5      U l        U R                  U5      U l        g g g r[   )rH   r?   winfo_widthwinfo_heightr5   _reverse_window_scalingr6   )rT   re   detected_widthdetected_heightrV   s       rW   rR   CTk._update_dimensions_event`   s    22"W02N#g24O
 ""d&B&B>&RRVZVjVjnr  oK  oK  L[  o\  W\&*&B&B>&R#'+'C'CO'T$ W\ 3rY   c                   > [         TU ]  X5        [         TU ]	  U R                  U R                  5      U R                  U R
                  5      5        [         TU ]  U R                  U R                  5      U R                  U R
                  5      5        [         TU ]  U R                  U R                  5       SU R                  U R
                  5       35        U R                  SU R                  5        g )Nxi  )
r?   _set_scalingminsize_apply_window_scalingr5   r6   maxsizegeometryrM   _set_scaled_min_max)rT   new_widget_scalingnew_window_scalingrV   s      rW   rp   CTk._set_scalingm   s    /D 	2243F3FGIcIcdhdxdxIyz2243F3FGIcIcdhdxdxIyzD66t7J7JKLAdNhNhimi}i}N~M  A  	B 	

4112rY   c                     SU l         g NFrH   r`   s    rW   block_update_dimensions_event!CTk.block_update_dimensions_eventy   
    .3+rY   c                     SU l         g rz   r{   r`   s    rW   unblock_update_dimensions_event#CTk.unblock_update_dimensions_event|   r~   rY   c                 x  > U R                   c  U R                  bB  [        TU ]  U R	                  U R                   5      U R	                  U R                  5      5        U R
                  c  U R                  bC  [        TU ]  U R	                  U R
                  5      U R	                  U R                  5      5        g g r[   )r7   r8   r?   rq   rr   r9   r:   rs   rT   rV   s    rW   ru   CTk._set_scaled_min_max   s    ??&$*:*:*FGOD66tGIcIcdhdtdtIuv??&$*:*:*FGOD66tGIcIcdhdtdtIuv +GrY   c                 N   > U R                   SL a  SU l        [        TU ]  5         g NFT)rE   rF   r?   withdrawr   s    rW   r   CTk.withdraw   s$    %'9=D6rY   c                 N   > U R                   SL a  SU l        [        TU ]  5         g r   )rE   rG   r?   iconifyr   s    rW   r   CTk.iconify   s#    %'8<D5rY   c                    > U R                   SL a]  [        R                  R                  S5      (       a2  U R                  (       d!  U R
                  (       d  U R                  5         SU l         [        TU ]!  5         g )NFr0   T)	rE   rJ   rK   rL   rF   rG   	deiconifyr?   updater   s    rW   r   
CTk.update   sS    %'||&&u--AA$JsJsNN$"&DrY   c                 @  > U R                   (       d|  [        R                  R                  S5      (       aQ  U R	                  U R                  5       5        U R                  (       d!  U R                  (       d  U R                  5         SU l         [        TU ](  " U0 UD6  g )Nr0   T)rE   rJ   rK   rL   rO   rP   rF   rG   r   r?   mainloop)rT   argsrU   rV   s      rW   r   CTk.mainloop   sm    ""||&&u--001J1J1LMAA$JsJsNN$"&D$)&)rY   r   r   c                    > [         TU ]  X5      n/ XS.4U l        [        R                  R                  S5      (       a  U R                  U R                  5       5        U$ )N)r   r   r0   )r?   	resizabler;   rJ   rK   rL   rO   rP   )rT   r   r   current_resizable_valuesrV   s       rW   r   CTk.resizable   sU    #(7#4U#C %'5)K$L!<<""5)),,T-F-F-HI''rY   c                    > Xl         X l        U R                  U:  a  Xl        U R                  U:  a  X l        [        TU ]  U R                  U R                   5      U R                  U R                  5      5        g r[   )r7   r8   r5   r6   r?   rq   rr   rT   r   r   rV   s      rW   rq   CTk.minsize   e    !&"'&(#) 224??CTE_E_`d`p`pEqrrY   c                    > Xl         X l        U R                  U:  a  Xl        U R                  U:  a  X l        [        TU ]  U R                  U R                   5      U R                  U R                  5      5        g r[   )r9   r:   r5   r6   r?   rs   rr   r   s      rW   rs   CTk.maxsize   r   rY   geometry_stringc                 r  > Ub  [         TU ]  U R                  U5      5        U R                  U5      u  p#pEUba  Ub]  [	        U R
                  [        X R                  5      5      U l        [	        U R                  [        X0R                  5      5      U l        g g g U R                  [         TU ]  5       5      $ r[   )r?   rt   _apply_geometry_scaling_parse_geometry_stringmaxr7   minr9   r5   r8   r:   r6   _reverse_geometry_scaling)rT   r   r   r   ro   yrV   s         rW   rt   CTk.geometry   s    &GT99/JK #'"="=o"NE1 V%7&)$//3uoo;V&W#'*4+;+;SIYIY=Z'[$ &8  11%'2B2DEErY   c                   > SU;   a|  U R                  UR                  S5      5      U l        [        TU ]  U R                  U R                  5      S9  U R                  5        H  n UR	                  U R                  S9  M     [        TU ]  " S0 [        XR                  5      D6  [        U5        g ! [         a     M]  f = f)Nr)   r.   )bg_color )r=   popr>   r?   r@   rA   winfo_children	Exceptionr   r&   r   )rT   rU   childrV   s      rW   r@   CTk.configure   s    !33FJJz4JKDNG!<!<T^^!LM,,.OOT^^O< / 	]09[9[\]6"	 ! s   'B33
C Cattribute_namereturnc                 F   > US:X  a  U R                   $ [        TU ]	  U5      $ )Nr)   )r>   r?   cget)rT   r   rV   s     rW   r   CTk.cget   s$    Z'>>!7<//rY   c                 2   > SU l         [        TU ]	  X5        g NTrC   r?   wm_iconbitmaprT   bitmapdefaultrV   s      rW   r   CTk.wm_iconbitmap       )-&f.rY   c                 2   > SU l         [        TU ]	  X5        g r   r   r   s      rW   
iconbitmapCTk.iconbitmap   r   rY   c                 f    U R                   (       d  [        R                  R                  [        R                  R                  [        R                  R	                  [
        5      5      5      nU R                  [        R                  R                  USSS5      5        g g ! [         a     g f = f)NassetsiconszCustomTkinter_icon_Windows.ico)	rC   ospathdirnameabspath__file__r   joinr   )rT   customtkinter_directorys     rW   rN   CTk._windows_set_titlebar_icon   sy    	11*,''//"''//"''//ZbJc:d*e'-DhPWYy z{ 2  		s   BB# #
B0/B0c                    [         R                  S:X  a  U R                  (       d  [        R                  " [        R
                  " 5       5      [        R                  " S5      :  ai  [        R                  " [        R                  " 5       R                  SS5      5      [        R                  " S5      :  a  [        R                  " S5        g g g g g )Nrc   3.10info
patchlevel8.6.9z9defaults write -g NSRequiresAquaSystemAppearance -bool NorJ   rK   r'   r   parsepython_versionr]   Tclcallr   systemclss    rW   r2    CTk._enable_macos_dark_title_bar   s    <<8#C,\,\}}X4467'--:OO==!3!3FL!IJgmm\cNddIIYZ e P -]#rY   c                    [         R                  S:X  a  U R                  (       d  [        R                  " [        R
                  " 5       5      [        R                  " S5      :  ai  [        R                  " [        R                  " 5       R                  SS5      5      [        R                  " S5      :  a  [        R                  " S5        g g g g g )Nrc   r   r   r   r   z1defaults delete -g NSRequiresAquaSystemAppearancer   r   s    rW   r\   !CTk._disable_macos_dark_title_bar   s    <<8#C,\,\}}X4467'--:OO==!3!3FL!IJgmm\cNddIIQR e P -]#rY   
color_modec           
      V  > [         R                  R                  S5      (       Ga  U R                  (       Gd  U R                  (       aY  U R                  5       U l        U R                  S:w  d  U R                  S:w  a#  U R                  5       U l        [        TU ])  5         O1U R                  5       U l        [        TU ])  5         [        TU ]-  5         UR                  5       S:X  a  SnOUR                  5       S:X  a  SnOg [        R                  R                  R!                  U R#                  5       5      nS	nS
n[        R                  R$                  R'                  X4[        R(                  " [        R*                  " U5      5      [        R,                  " [        R*                  " U5      5      5      S:w  a{  [        R                  R$                  R'                  X5[        R(                  " [        R*                  " U5      5      [        R,                  " [        R*                  " U5      5      5        U R                  (       d   U R                  S:X  a  U R3                  5         O_U R                  S:X  a  U R5                  5         O>U R                  S:X  a  U R                  S5        OU R                  U R                  5         U R                  b.  U R7                  SU R                  R8                  5        SU l        gggg! [.         a  n[1        U5         SnANSnAff = f)a7  
Set the titlebar color of the window to light or dark theme on Microsoft Windows.

Credits for this function:
https://stackoverflow.com/questions/23836000/can-i-change-the-title-bar-in-tkinter/70724666#70724666

MORE INFO:
https://docs.microsoft.com/en-us/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute
r0   iconic	withdrawndarkr   lightr   N      normalzoomed)rJ   rK   rL   r(   rE   staterD   	focus_getrI   r?   r   r   lowerctypeswindlluser32	GetParentwinfo_iddwmapiDwmSetWindowAttributebyrefc_intsizeofr   printr   r   rM   focus)rT   r   valuehwndDWMWA_USE_IMMERSIVE_DARK_MODE)DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1errrV   s          rW   rO   CTk._windows_set_titlebar_color  sc    <<""5))$2e2e2e""@D

= @@HLPTP}P}  BM  QM;?>>;KD8G$& 8<~~7G4 " !V+!!#w.}}++55dmmoF02-<>9 ==''==d>Dll6<<X]K^>_>DmmFLLY^L_>`befg
 MM((>>t?E||FLLY^L_?`?E}}V\\Z_M`?ac ""d@@HLNN$BBhNLLNBBhNJJx(JJtLLM 33?

1dBBHHI7;4 @k 3f)J  c

s   D5L	 	
L(L##L(mode_stringc                    > [         TU ]  U5        [        R                  R	                  S5      (       a  U R                  U5        [         TU ]  U R                  U R                  5      S9  g )Nr0   r.   )	r?   _set_appearance_moderJ   rK   rL   rO   r@   rA   r>   )rT   r   rV   s     rW   r   CTk._set_appearance_modeG  sR    $[1<<""5)),,[9T88HIrY   )rH   r6   r5   r>   rC   rG   r;   r:   r9   r8   r7   rD   rE   rF   rI   r[   )NN).__name__
__module____qualname____firstlineno____doc__r   set__annotations__r&   r'   boolr(   r   r   strr   r4   r_   rS   rR   rp   r|   r   ru   r   r   r   r   r   intrq   rs   rt   r@   anyr   r   r   rN   classmethodr2   r\   rO   r   __static_attributes____classcell__)rV   s   @rW   r   r      s   
 ,k#Sj*p!3 p :?0$>;@2D@ DH05#E#uS#X*>$?@05 05d*
U
344w

	*(t (D ( (sS s s ssS s s s
F 
F 
F#03 03 0// [ [ S SB<c B<HJ J JrY   r   )r]   rJ   r   rK   r   typingr   r   r   	packagingr   widgets.themer   widgets.scalingr	   widgets.appearance_moder
   7customtkinter.windows.widgets.utility.utility_functionsr   r   r^   r3   r   r   rY   rW   <module>r     sJ     
 	   ) )  ' 0 ? l:: {J
68K {JrY   