
    4hhH                         S SK r S SKrS SK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5        / SQr " S	 S
\
\ R                  5      r\S:X  a  \ R                   " 5         gg)    N)ttk)TclError)support)requires)AbstractTkTestget_tk_patchlevelgui).ComboboxPopdownFrameHeadingzHorizontal.TProgressbarzHorizontal.TScaleItemSashTButtonTCheckbutton	TComboboxTEntryTLabelframezTLabelframe.LabelTMenubutton	TNotebookzTNotebook.Tab
ToolbuttonTProgressbarTRadiobuttonTreeviewTScale
TScrollbarTSpinboxzVertical.TProgressbarzVertical.TScalec                      ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrU =r$ )	StyleTest   c                 l   > [         TU ]  5         [        R                  " U R                  5      U l        g N)supersetUpr   Stylerootstyle)self	__class__s    A/opt/python-3.13.8/usr/lib/python3.13/test/test_ttk/test_style.pyr#   StyleTest.setUp   s     YYtyy)
    c                     U R                   nUR                  SSS9  U R                  UR                  SS5      S5        U R                  UR                  S5      [        5        g )Nr   yellow
backgroundr/   )r&   	configureassertEqualassertIsInstancedictr'   r&   s     r)   test_configureStyleTest.test_configure   sR    

	h7LA	eooi8$?r+   c                 <   U R                   nS/S/4 H  nU R                  US9   UR                  S/ UQSP7/S9  S/nU R                  UR                  SS5      U5        UR                  S5      nU R	                  U[
        5        U R                  US   U5        S S S 5        M     S	S
/S/S/4 H  nU R                  US9   UR                  S/ UQSP7/S9  S/nU R                  UR                  SS5      U5        UR                  S5      nU R	                  U[
        5        U R                  US   U5        S S S 5        M     / S/S/4 H  nU R                  US9   UR                  S/ UQSP7/S9  S/nU R                  UR                  SS5      U5        UR                  S5      nU R	                  U[
        5        U R                  US   U5        S S S 5        M     g ! , (       d  f       GM  = f! , (       d  f       GMW  = f! , (       d  f       M  = f)Nactive)r8   )statesr   whiter.   )r8   r:   r/   pressed	!disabledzpressed !disabled)r;   r<   black)r;   r<   r=     grey)r@   )r&   subTestmapr1   r2   r3   )r'   r&   r9   expectedms        r)   test_mapStyleTest.test_map%   s   

  j;-/FV,		)1C61C71C0D	E/0  9l!CXNIIi(%%a.  <(; -, 0 !+.1D0EH`GaaFV,		)1C61C71C0D	E=>  9l!CXNIIi(%%a.  <(; -, b 2$nFV,		)1B61B61B0C	D%;  9l!CXNIIi(%%a.  <(; -, %' -, -, -,s&   A8G&A8G9!A8H&
G6	9
H		
H	c                 .   U R                   nUR                  SSS9  UR                  SS/S9  U R                  UR	                  SS5      S5        U R                  UR	                  SSSS/5      S5        U R                  UR	                  SSS	S
9S	5        g )Nr   r-   r.   )r8   r/   bluer/   r8   rH   optionnotdefinediknewit)default)r&   r0   rB   r1   lookupr4   s     r)   test_lookupStyleTest.test_lookupG   s    

	h7		))I(J	Ki>Ii|$&'-	/i1C &  )	+r+   c                    U R                   nU R                  [        R                  UR                  S5        UR	                  S5      nUR	                  SS5        U R                  UR	                  S5      SSS04/5        UR	                  SU5        U R                  UR	                  S5      U5        U R                  UR	                  S5      [        5        U R                  [        R                  UR                  SSS	S
04/5        g )N
NotALayoutr   r>   nullstickynswer   nameoption
inexistent)r&   assertRaisestkinterr   layoutr1   r2   list)r'   r&   tv_styles      r)   test_layoutStyleTest.test_layoutS   s    

'**ELL,G<<
+ 	Z$j1x()*	

 	Z*j18< 	ell95t< 	'**ELL*x./0	2r+   c                    U R                  [        R                  U R                  R                  S5        U R                  R	                  5       nS nU R                  R                  5        H'  nX1:w  d  M
  UnU R                  R	                  U5          O   g U R                  X:H  5        U R                  X R                  R	                  5       :g  5        U R                  R	                  U5        g )Nnonexistingname)rW   rX   r   r&   	theme_usetheme_namesassertFalse)r'   
curr_theme	new_themethemes       r)   test_theme_useStyleTest.test_theme_usej   s    '**DJJ,@,@	 ZZ))+
	ZZ++-E"!	

$$U+	 . 01jj&:&:&<<=

Z(r+   c           
         U R                   nU R                   R                  5       nU R                  U R                   R                  U5        U R                   R                  5        GHB  nU R                   R                  U5        [         GH  nUR                  U5      nU(       d  M  U R                  X4S9   [        R                  S:  a  [        SX4U5        US;   a'  [        R                  " 5       S S S:X  a   S S S 5        M|  SU 3nU R                  UR                  U5      S 5        UR
                  " U40 UD6  U R                  UR                  U5      U5        UR                  5        H&  u  pxU R                  UR                  Xg5      U5        M(     S S S 5        GM     GME     g ! , (       d  f       GM3  = f)Nre   rT      r0   vistaxpnative      C.)r&   r`   
addCleanupra   CLASS_NAMESr0   rA   r   verboseprintsysgetwindowsversionr1   items	r'   r&   rc   re   rT   rK   newnamekeyvalues	            r)   test_configure_custom_copy$StyleTest.test_configure_custom_copy~   s\   

ZZ))+


,,j9ZZ++-EJJ  '#//$/\\\9!+k5@!66 # 5 5 7 ;v E  :9 !#4&kG$$U__W%=tDOOG7w7$$U__W%=wG&-mmo
(()FN '6 :9	 $ . :9s   9AF/BF//
F?c           
         U R                   nU R                   R                  5       nU R                  U R                   R                  U5        U R                   R                  5        GHm  nU R                   R                  U5        [         GHC  nUR                  U5      nU(       d  M  U R                  X4S9   [        R                  S:  a  [        SX4U5        US;   a'  [        R                  " 5       S S S:X  a   S S S 5        M|  SU 3nU R                  UR                  U5      0 5        UR
                  " U40 UD6  US:X  a%  US:X  a  [        U R                  5      S	:  a  S
/US'   U R                  UR                  U5      U5        UR                  5        H&  u  pxU R                  UR                  Xg5      U5        M(     S S S 5        GMF     GMp     g ! , (       d  f       GM^  = f)Nri   rj   rB   rk   rn   rq   altr
   )   ro   rp   )disabled1embossed)r&   r`   rr   ra   rs   rB   rA   r   rt   ru   rv   rw   r1   r   r%   rx   ry   s	            r)   test_map_custom_copyStyleTest.test_map_custom_copy   s   

ZZ))+


,,j9ZZ++-EJJ  '#))D/\\\9!+eU':!66 # 5 5 7 ;v E  :9 !#4&kG$$UYYw%7<IIg11~$#+:KDII:VYb:b/@.A
+$$UYYw%7A&-mmo
((7)@%H '6 :9	 $ . :9s   9AGB?G
G*c                 2   U R                   nUR                  5       nU R                  U[        5        U H_  nU R	                  U[        5        UR                  U5      nU R                  U[        5        U H  nU R	                  U[        5        M     Ma     g r!   )r&   element_namesassertNotIsInstancestrr2   element_options)r'   r&   r   rT   r   optnames         r)   test_element_optionsStyleTest.test_element_options   s}    

++-  4!D!!$,#33D9O$$_c:*%%gs3 +	 "r+   c                     U R                   nU R                  [        5         UR                  S5        S S S 5        U R	                  [
        S5         UR                  SS5        S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)Nplain.newelemzNo such element type spamspam)r&   rW   	TypeErrorelement_createassertRaisesRegexr   r4   s     r)   test_element_create_errors$StyleTest.test_element_create_errors   sf    

y)  1 *##H.IJ  &9 KJ *)JJs   A.A?.
A<?
Bc                     U R                   nUR                  SSS5        U R                  SUR                  5       5        UR                  SSSS5        U R                  SUR                  5       5        g )Nzplain.backgroundfromrK   zplain.arrow
rightarrow)r&   r   assertInr   r4   s     r)   test_element_create_from"StyleTest.test_element_create_from   sa    

/C(%*=*=*?@]FI|LmU%8%8%:;r+   c                 $   U R                   nU R                  [        5         UR                  SS5        S S S 5        U R	                  [
        S5         UR                  SSS5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nr   r   ztheme "spam" doesn't existr   )r&   rW   
IndexErrorr   r   r   r4   s     r)   test_element_create_from_errors)StyleTest.test_element_create_from_errors   sj    

z*  &9 +##H.KL  &&A ML +*LLs   A0B0
A>
Bc           
      <   U R                   n[        R                  " U R                  SSS9nUR	                  SSU5        U R                  SUR                  5       5        UR                  SSSS04/5        [        R                  " U R                  SS	9nUR                  S
SS9  U R                  UR                  5       S5        U R                  UR                  5       S5        [        R                  " SSS9n[        R                   " U R                  USSS9n[        R                   " U R                  USSS9n[        R                   " U R                  USSS9nUR	                  SSUSU4SU4SSS9  U R                  SUR                  5       5        UR                  SSSS04/5        [        R"                  " U R                  SS	9nUR                  S
SS9  U R                  UR                  5       S5        U R                  UR                  5       S5        g )N   
   masterwidthheightblockimage
TestLabel1rR   newsr&   Tbothexpandfillz
python.xbmtkinterdata)subdirr-   rH   )r   file
foregroundr/   r:   r=   zTestButton.buttonr;   r8   )rj      we)borderrR   
TestButton   )r&   rX   
PhotoImager%   r   r   r   rY   r   Labelpackr1   winfo_reqwidthwinfo_reqheightr   findfileBitmapImageButton)	r'   r&   r   aimgfileimg1img2img3bs	            r)   test_element_create_image#StyleTest.test_element_create_image   s   

""$))2bIWgu5gu2245\Wx.@$A#BCIIdii|4	d())+R0**,b1""<F""$))'.66K""$))'.4K""$))'.5'K0'!It#4x6F$*4 	 	9 	)5+>+>+@A\%88V:L$M#NOJJtyy5	d())+R0**,b1r+   c           	         U R                   n[        R                  " U R                  SSS9nU R	                  [
        5         UR                  SS5        S S S 5        U R	                  [        5         UR                  SSUS5        S S S 5        U R	                  [        5         UR                  SSUS5        S S S 5        U R                  [        S5         UR                  SSUSU45        S S S 5        U R                  [        S5         UR                  SSUSU45        S S S 5        U R	                  [        5         UR                  SSUS	SU45        S S S 5        U R	                  [        5         UR                  SSUSS
U45        S S S 5        U R                  [        S5         UR                  SSUSS9  S S S 5        g ! , (       d  f       GNy= f! , (       d  f       GNY= f! , (       d  f       GN9= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   block2r   rp   r?   zInvalid state namer   r;   selectedz
bad option)r   )r&   rX   r   r%   rW   r   r   r   
ValueErrorr   r   )r'   r&   r   s      r)    test_element_create_image_errors*StyleTest.test_element_create_image_errors   s   

""$))2bIz*  73 +y)  7E1= *z*  7E2> +##H.BC  7EFE?K D##H.BC  7EAu:F Dy)  7EIq%;PQ *y)  7EAz5;QR *##Hl;  7E B <; +*))**CCCC))));;s`   G2G$G+G=H H 5H1+I
G
G(+
G:=
H
H 
H.1
H?
Ic                    U R                   nSUR                  5       ;  a  U R                  S5        UR                  SSSS/ SQ5        UR	                  SS	S
S04/5        [
        R                  " U R                  SS9nUR                  SSS9  U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nrm   requires 'xpnative' theme
smallclosevsapiWINDOW   ))r   r   r;      r8   rj   r>   rp   CloseButtonzCloseButton.smallcloserR   r   r   Tr   r      r&   ra   skipTestr   rY   r   r   r%   r   r1   r   r   r'   r&   r   s      r)   test_element_create_vsapi_1%StyleTest.test_element_create_vsapi_1  s    

U..00MM56\7Hb C& 	'
 	]/(F1CDE	GJJtyy6	d())+R0**,b1r+   c                    U R                   nSUR                  5       ;  a  U R                  S5        UR                  SSSS/ SQ5        UR	                  SS	S
S04/5        [
        R                  " U R                  SS9nUR                  SSS9  U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nrm   r   pinr   EXPLORERBARr   )r;   	!selectedr   )r8   r   rj   )r;   r   ro   )r8   r      )r   r   r   Explorer.PinExplorer.Pin.pinrR   r   r   Tr   r   r   )r&   ra   r   r   rY   r   Checkbuttonr%   r   r1   r   r   )r'   r&   r   s      r)   test_element_create_vsapi_2%StyleTest.test_element_create_vsapi_2  s    

U..00MM56UG]A @& 	' 	^)Hf+=>?	Aoodii~>6*++-r2,,.3r+   c                    U R                   nSUR                  5       ;  a  U R                  S5        UR                  SSSS/ SQ5        UR	                  SS	S
S04/5        [
        R                  " U R                  SS9nUR                  SSS9  U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nrm   r   headercloser   r   rj   )r   r   r   zExplorer.CloseButtonz Explorer.CloseButton.headercloserR   r   r   Tr   r   r   r   r   s      r)   test_element_create_vsapi_3%StyleTest.test_element_create_vsapi_3'  s    

U..00MM56]G]A H& 	' 	+9Hf;MNO	QJJtyy(>?	d())+R0**,b1r+   c                 P   U R                   nUR                  5       nUR                  S5      nUR                  S5        U R	                  SUR                  5       5        UR                  SSSS/0SS0S	S
S04/S.S.S9  U R	                  SUR                  5       5        UR                  SS5        U R	                  SUR                  5       5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  S5      U5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  SS5      S5        U R                  UR                  S5      S	S
S04/5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  SS5      S5        U R                  UR                  S5      S	S
S04/5        UR                  U5        g )NTLabel
testtheme1
testtheme2element creater   rK   paddingr   elemrR   r   )r0   rY   )r   r   settings
testtheme3r?   )r   10r>   )	r&   r`   rY   theme_creater   ra   r1   r   rL   )r'   r&   rc   curr_layouts       r)   test_theme_createStyleTest.test_theme_create6  s   

__&
ll8,<(lE$5$5$78<&(;='_"Xt$4563
 	 	lE$5$5$78<6lE$5$5$78%,,.3h/=%,,.	:h	:DAh/6Hd;K2L1MN%,,.3h	:B?h/6Hd;K2L1MN
#r+   c                 l   U R                   nUR                  5       n[        R                  " U R                  SSS9nSnUR                  USSUSSS./0SSU/0S	S
SS.SSS/0SSS	S.4SSSSSS04/S.4/S.S.S9  UR                  U5        U R                  SUR                  5       5        U R                  UR                  SS5      S	5        U R                  UR                  SS 5      S!5        U R                  UR                  SS5      S5        U R                  UR                  SSS"/5      S5        U R                  UR                  SSS"S#/5      S$5        U R                  UR                  SSS"S%/5      S&5        U R                  UR                  S5      SS	SS'.4SSS(SSS04/S.4/5        [        R                  " U R                  SS)9nUR                  S*S+S,9  U R                  UR                  5       S-5        U R                  UR                  5       S5        UR                  U5        g ).Nr   r   
testtheme4r   r   x   d   )r   r   left)r   r   r   rj   r-   )anchorr   r   r   )r;   red)r8   r   rH   zTestWidget.blockr   )rR   sidezTestWidget.bordernswrp   TestWidget.block2rR   rS   )rR   r   children)r0   rB   rY   )r   r  
TestWidgetr   r   r
  r  r   z3 0 0 2r8   r;   r  r   rH   )r  rR   r   r   Tr   r      )r&   r`   rX   r   r%   r   r   r   r1   rL   rY   r   r   r   r   r   )r'   r&   rc   r   rd   r   s         r)   test_theme_create_image!StyleTest.test_theme_create_imageY  sv   

__&
""$))2bI 	9 7ESC3P"Q !7E"2#
 %+"* !*6# (D&)IJ("'"#08V2DE%+ 	0
 	@ 		"gu2245lH=vFlI>	JlLA8LlL'/j23;	=lL'/&;=>C	ElL'/&<>?E	Gl3#f%EF$#!"5&7I!J K' 	 IIdii|4	d())+S1**,c2
#r+   c           	      |   U R                   nSUR                  5       ;  a  U R                  S5        UR                  5       nSnUR	                  USSSS/ SQ/0S	S
SS04/0S.S9  UR                  U5        U R                  SUR                  5       5        U R                  UR                  S5      S
SS04/5        [        R                  " U R                  SS9nUR                  SSS9  U R                  UR                  5       S5        U R                  UR                  5       S5        UR                  U5        g )Nrm   r   
testtheme5r   r   r   r   r   rY   r   rR   r   )r   r   r   r   r   rS   r   Tr   r   r   )r&   ra   r   r`   r   r   r   r1   rY   r   r   r%   r   r   r   )r'   r&   rc   rd   r   s        r)   test_theme_create_vsapi!StyleTest.test_theme_create_vsapi  s7   

U..00MM56__&
 	9 7M1 ?, #- .60BCD0
 	 		"eU0023n5-&/ABC	E oodii~>6*++-r2,,.3
#r+   r   )__name__
__module____qualname____firstlineno__r#   r5   rE   rM   r\   rf   r}   r   r   r   r   r   r   r   r   r   r   r   r  r  __static_attributes____classcell__)r(   s   @r)   r   r      st    *
@<D	+2.)(O4I6	4:<B2<C(2 4$2!$F?$B$ $r+   r   __main__)unittestrv   rX   r   r   testr   test.supportr   test.test_tkinter.supportr   r   rs   TestCaser   r  mainr?   r+   r)   <module>r     sZ     
     ! G c$ 1 1 c$L zMMO r+   