
    h9                         S SK r S SKJ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Jr   " S	 S
\ R(                  \\5      rg)    N)version)UnionTupleOptional   )ThemeManager)CTkScalingBaseClass)CTkAppearanceModeBaseClass)pop_from_dict_by_setcheck_kwargs_emptyc                     ^  \ rS rSr% Sr1 Skr\\S'   Sr\	\S'   Sr
\	\S'   SS	.S
\\\\\\4   4      4U 4S jjjrS rS rS)S jrU 4S jrS rS rU 4S jrS)S\4U 4S jjjrU 4S jrU 4S jrS*S\	S\	4U 4S jjjrS*U 4S jjrS*U 4S 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! r!\"S" 5       r#\"S# 5       r$S$\4U 4S% jjr%U 4S& jr&U 4S' jr'S(r(U =r)$ )+CTkToplevel   zp
Toplevel window with dark titlebar on Windows and macOS.
For detailed information check out the documentation.
>   bdusemenuclasswidthcursorheightmasterreliefscreenvisual	container	takefocusborderwidthhighlightthicknesshighlightbackground_valid_tk_toplevel_argumentsF,_deactivate_macos_window_header_manipulation._deactivate_windows_window_header_manipulationN)fg_colorr#   c                2  >^ ^ T R                  5         [        TT ]  " U0 [        UT R                  5      D6  [
        R                  " T 5        [        R                  " T SS9  [        USS9   [        R                  R                  S5      (       at  [        R                  R                  [        R                  R                  [        R                  R                  [        5      5      5      mT R!                  SUU 4S j5        ST l        ST l        ST l        ST l        S	T l        S	T l        S T l        Uc  [2        R4                  S
   S   OT R7                  U5      T l        [        TT ]u  T R=                  T R8                  5      S9  [        TT ]}  S
5        ST l         S T l!        ST l"        ST l#        ST l$        ST l%        S T l&        [        R                  R                  S5      (       a  T R!                  ST RN                  5        [        R                  R                  S5      (       a  T RQ                  T RS                  5       5        T RU                  ST RV                  5        T RU                  ST RX                  5        g ! ["         a     GNf = f)Nwindow)scaling_typeT)raise_errorwin   c                  f   > TR                  [        R                  R                  T SSS5      5      $ NassetsiconszCustomTkinter_icon_Windows.ico)
iconbitmapospathjoin)customtkinter_directoryselfs   \/var/www/fran/franai/venv/lib/python3.13/site-packages/customtkinter/windows/ctk_toplevel.py<lambda>&CTkToplevel.__init__.<locals>.<lambda>-   s/    E\^fho  rR  9S  )T    r   i@B r   r#   bgFz<Configure>z	<FocusIn>)-_enable_macos_dark_title_barsuper__init__r   r    r
   r	   r   sysplatform
startswithr/   r0   dirnameabspath__file__after	Exception_current_width_current_height
_min_width_min_height
_max_width_max_height_last_resizable_argsr   theme_check_color_type	_fg_color	configure_apply_appearance_modetitle_iconbitmap_method_called(_state_before_windows_set_titlebar_color"_windows_set_titlebar_color_called1_withdraw_called_after_windows_set_titlebar_color0_iconify_called_after_windows_set_titlebar_color_block_update_dimensions_eventfocused_widget_before_widthdraw_windows_set_titlebar_icon_windows_set_titlebar_color_get_appearance_modebind_update_dimensions_event_focus_in_event)r3   r#   argskwargsr2   	__class__s   `   @r4   r<   CTkToplevel.__init__   s     	))+ 	$b"6vt?`?`"ab"++D1$$TA6t4	||&&u--*,''//"''//"''//ZbJc:d*e'

3  !T  U ""  !( )DH!JRJZ++M::F`d`v`vw  aA 	T88HI 	m$ *.&8<527/AF>@E=.3+ 04, <<""5))JJsD;;< <<""5)),,T-F-F-HI		-!>!>?		+t334O  		s   .BJ 
JJc                     U R                  5         [        R                  R                  U 5        [        R                  " U 5        [
        R                  " U 5        g N)_disable_macos_dark_title_bartkinterTopleveldestroyr
   r	   r3   s    r4   rh   CTkToplevel.destroyW   s@    **, 	  &"**40##D)r7   c                 N    [         R                  S:X  a  U R                  5         g g )Ndarwin)r=   r>   lift)r3   events     r4   r^   CTkToplevel._focus_in_event_   s    <<8#IIK $r7   c                 >   U R                   (       d  U R                  5       nU R                  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 rd   )rW   winfo_widthwinfo_heightrE   _reverse_window_scalingrF   )r3   rn   detected_widthdetected_heights       r4   r]   $CTkToplevel._update_dimensions_eventd   s    22!--/N"//1O""d&B&B>&RRVZVjVjnr  oK  oK  L[  o\  W\&*&B&B>&R#'+'C'CO'T$ W\	 3r7   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_scalingrE   rF   maxsizegeometryrC   _set_scaled_min_max)r3   new_widget_scalingnew_window_scalingra   s      r4   ry   CTkToplevel._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2r7   c                     SU l         g NFrW   ri   s    r4   block_update_dimensions_event)CTkToplevel.block_update_dimensions_eventy   
    .3+r7   c                     SU l         g r   r   ri   s    r4   unblock_update_dimensions_event+CTkToplevel.unblock_update_dimensions_event|   r   r7   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 rd   )rG   rH   r;   rz   r{   rI   rJ   r|   r3   ra   s    r4   r~   CTkToplevel._set_scaled_min_max   s    ??&$*:*:*FGOD66tGIcIcdhdtdtIuv??&$*:*:*FGOD66tGIcIcdhdtdtIuv +Gr7   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      $ rd   )r;   r}   _apply_geometry_scaling_parse_geometry_stringmaxrG   minrI   rE   rH   rJ   rF   _reverse_geometry_scaling)r3   r   r   r   rx   yra   s         r4   r}   CTkToplevel.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Er7   c                 R   > U R                   (       a  SU l        [        TU ]  5         g NT)rT   rU   r;   withdrawr   s    r4   r   CTkToplevel.withdraw   s    22EIDBr7   c                 R   > U R                   (       a  SU l        [        TU ]  5         g r   )rT   rV   r;   iconifyr   s    r4   r   CTkToplevel.iconify   s    22DHDAr7   r   r   c                    >^  [         TT ]  X5      n/ XS.4T l        [        R                  R                  S5      (       a  T R                  SU 4S j5        U$ )N)r   r   r(   
   c                  B   > T R                  T R                  5       5      $ rd   )rZ   r[   ri   s   r4   r5   'CTkToplevel.resizable.<locals>.<lambda>   s    4#C#CDD]D]D_#`r7   )r;   	resizablerK   r=   r>   r?   rC   )r3   r   r   current_resizable_valuesra   s   `   r4   r   CTkToplevel.resizable   sM    #(7#4U#C %'5)K$L!<<""5))JJr`a''r7   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 rd   )rG   rH   rE   rF   r;   rz   r{   r3   r   r   ra   s      r4   rz   CTkToplevel.minsize   e    !&"'&(#) 224??CTE_E_`d`p`pEqrr7   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 rd   )rI   rJ   rE   rF   r;   r|   r{   r   s      r4   r|   CTkToplevel.maxsize   r   r7   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#   r8   )bg_color )rM   poprN   r;   rO   rP   winfo_childrenrD   r   r    r   )r3   r`   childra   s      r4   rO   CTkToplevel.configure   s    !33FJJz4JKDNG!<!<T^^!LM,,.OOT^^O< / 	\09Z9Z[\6"	 ! s   'B33
C Cattribute_namereturnc                 F   > US:X  a  U R                   $ [        TU ]	  U5      $ )Nr#   )rN   r;   cget)r3   r   ra   s     r4   r   CTkToplevel.cget   s$    Z'>>!7<//r7   c                 2   > SU l         [        TU ]	  X5        g r   )rR   r;   wm_iconbitmap)r3   bitmapdefaultra   s      r4   r   CTkToplevel.wm_iconbitmap   s    )-&f.r7   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r+   )	rR   r/   r0   r@   rA   rB   r.   r1   rD   )r3   r2   s     r4   rY   &CTkToplevel._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 )Nrl   3.10info
patchlevel8.6.9z9defaults write -g NSRequiresAquaSystemAppearance -bool Nor=   r>   r!   r   parsepython_versionrf   Tclcallr/   systemclss    r4   r:   (CTkToplevel._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 -]#r7   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 )Nrl   r   r   r   r   z1defaults delete -g NSRequiresAquaSystemAppearancer   r   s    r4   re   )CTkToplevel._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 -]#r7   
color_modec           
        > [         R                  R                  S5      (       Ga  U R                  (       Gd
  U R	                  5       U l        U 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        S	U l        U R3                  S
U R4                  5        U R                  b.  U R3                  SU R                  R6                  5        SU l        gggg! [,         a  n[/        U5         SnAN{S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
r(   darkr   lightr   N      T   r   )r=   r>   r?   r"   staterS   	focus_getrX   r;   r   updatelowerctypeswindlluser32	GetParentwinfo_iddwmapiDwmSetWindowAttributebyrefc_intsizeofrD   printrT   rC   1_revert_withdraw_after_windows_set_titlebar_colorfocus)r3   r   valuehwndDWMWA_USE_IMMERSIVE_DARK_MODE)DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1errra   s          r4   rZ   'CTkToplevel._windows_set_titlebar_color   s    <<""5))$2e2e2e<@JJLD937>>3CD0GGN!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 7;D3JJq$PPQ33?

2tCCIIJ7;4 @E 3f)8  c

s   /D5I 
I$II$c                   > U R                   (       a  U R                  (       a  OU R                  (       a  [        TU ]  5         OU R
                  S:X  a  U R                  5         O^U R
                  S:X  a  U R	                  5         O=U R
                  S:X  a  U R                  S5        OU R                  U R
                  5        SU l         SU l        SU l        gg)zif in a short time (5ms) after normaliconiczoomedFN)rT   rU   rV   r;   r   rS   	deiconifyr   r   s    r4   r   =CTkToplevel._revert_withdraw_after_windows_set_titlebar_color  s    22EEFF!@@HLNN$BBhNLLNBBhNJJx(JJtLLM6;D3EJDBDIDA% 3r7   c                    > [         TU ]  U5        [        R                  R	                  S5      (       a  U R                  U5        [         TU ]  U R                  U R                  5      S9  g )Nr(   r8   )	r;   _set_appearance_moder=   r>   r?   rZ   rO   rP   rN   )r3   mode_stringra   s     r4   r    CTkToplevel._set_appearance_mode-  sR    $[1<<""5)),,[9T88HIr7   )rW   rF   rE   rN   rR   rV   rK   rJ   rI   rH   rG   rS   rT   rU   rX   rd   )NN)*__name__
__module____qualname____firstlineno____doc__r    set__annotations__r!   boolr"   r   r   strr   r<   rh   r^   r]   ry   r   r   r~   r}   r   r   r   rz   r|   rO   anyr   r   rY   classmethodr:   re   rZ   r   r   __static_attributes____classcell__)ra   s   @r4   r   r      s6   
)Z # Z :?0$>;@2D@ DH85#E#uS#X*>$?@85 85t*
U
344w
F 
F 
F

(t (D ( (ss#03 03 0/ [ [ S S/<c /<bJ,J Jr7   r   )rf   	packagingr   r=   r/   r>   r   typingr   r   r   widgets.themer   widgets.scalingr	   widgets.appearance_moder
   7customtkinter.windows.widgets.utility.utility_functionsr   r   rg   r   r   r7   r4   <module>r	     sE      
 	   ) ) ' 0 ? lcJ'""$>@S cJr7   