o
    JAf@                    @   s"  	 d dl Z d dlZd dlZd dlZejZd dlT d dlZdZeej	Z
eejZejZejZejZedZedejZdd Zdd	 Zd
d ZzejZW n	 eyW   Y nw dd ZzejZW n	 eyj   Y nw dddZG dd dee jZG dd dZdadadd Z dddZ!dd Z"dd Z#dd Z$ddd Z%d a&G d!d" d"Z'G d#d$ d$e'Z(G d%d& d&e'Z)G d'd( d(e'Z*G d)d* d*e'Z+dd+d,Z,e-Z.eZ/d-d. Z0G d/d0 d0Z1G d1d2 d2Z2G d3d4 d4Z3G d5d6 d6Z4G d7d8 d8Z5G d9d: d:e1e5Z6dd<d=Z7G d>d? d?Z8G d@dA dAZ9G dBdC dCZ:G dDdE dEe1Z;G dFdG dGe;e8e9e:Z<G dHdI dIe;e5Z=G dJdK dKe<Z>G dLdM dMe<e3e4Z?d a@G dNdO dOe<ZAG dPdQ dQe<e3ZBG dRdS dSe<ZCG dTdU dUe<ZDG dVdW dWe<e3e4ZEG dXdY dYe<ZFG dZd[ d[e<ZGG d\d] d]e<ZHG d^d_ d_e<ZIG d`da dae<ZJG dbdc dce<ZKG ddde dee<e3e4ZLG dfdg dgZMG dhdi dieGZNG djdk dkZOG dldm dmeOZPG dndo doeOZQdpdq ZRdrds ZSG dtdu due<e3ZTG dvdw dwe<ZUG dxdy dye<ZVdzd{ ZWd|d} eX Y D ZZe[d~kreW  dS dS )    N)*   z([\\{}])z([\s])c                 C   s   	 d tt| S )N )joinmap
_stringifyvalue r
   '/usr/lib/python3.10/tkinter/__init__.py_join8      r   c                 C   s   	 t | ttfr't| dkrt| d } t| rd|  } | S dt|  } | S t| } | s1d} | S t| rTt	d| } | 
dd} t	d| } | d dkrRd	|  } | S | d dks_t| rcd|  } | S )
Nr   r   z{%s}z{}z\\\1
z\n"\)
isinstancelisttuplelenr   	_magic_researchr   strsubreplace	_space_rer   r
   r
   r   r   =   s.   


r   c                 C   sB   	 d}| D ]}t |ttfr|t| }q|d ur||f }q|S )Nr
   )r   r   r   _flatten)seqresitemr
   r
   r   r   V   s   
r   c                 C   s   	 t | tr| S t | td tfr| S i }t| D ]/}z|| W q ttfyH } ztd| |	 D ]\}}|||< q5W Y d }~qd }~ww |S )Nz_cnfmerge: fallback due to:)
r   dicttyper   r   updateAttributeError	TypeErrorprintitems)Zcnfscnfcmsgkvr
   r
   r   	_cnfmergee   s"   


r+   Tc           	      C   s|   	 |  |}t|d rtdt|}i }t||D ] \}}t|}|r1|d dkr1|dd  }|r7||}|||< q|S )N   zNTcl list representing a dict is expected to contain an even number of elementsr   -r   )	splitlistr   RuntimeErroriterzipr   )	tkr*   Z	cut_minusconvtitr   keyr	   r
   r
   r   
_splitdict{   s   

r7   c                   @   s   e Zd ZdZeZdZdZeZdZdZ	dZ
dZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)e*j+Z+d&S )'	EventType23456789Z10Z11Z12Z13Z14Z15Z16Z17Z18Z19Z20Z21Z22Z23Z24Z25Z26Z27Z28Z29Z30Z31Z32Z33Z34Z35Z36Z37Z38N),__name__
__module____qualname__ZKeyPressZKeyZ
KeyReleaseZButtonPressButtonZButtonReleaseZMotionZEnterZLeaveZFocusInZFocusOutZKeymapZExposeZGraphicsExposeZNoExposeZ
VisibilityZCreateZDestroyZUnmapZMapZ
MapRequestZReparentZ	ConfigureZConfigureRequestZGravityZResizeRequestZ	CirculateZCirculateRequestZPropertyZSelectionClearZSelectionRequestZ	SelectionZColormapZClientMessageMappingZVirtualEventZActivateZ
DeactivateZ
MouseWheelr   __str__r
   r
   r
   r   r8      sR    
r8   c                   @   s   e Zd Z	 dd ZdS )Eventc                    s  dd | j  D  | js d= n| jdkrt| j d< t| dds& d= | jdkr/ d= n>t| jtrm| j}d	}g }t|D ]\}}|d
|> @ rO|	| q@|d
t
|> d
  @ }|s_|sf|	t| d| d< | jdkru d= d}dt| jd| jd fdd|D f S )Nc                 S   s   i | ]\}}|d kr||qS )??r
   .0r)   r*   r
   r
   r   
<dictcomp>       z"Event.__repr__.<locals>.<dictcomp>charrH   
send_eventTr   state)ZShiftLockZControlZMod1ZMod2ZMod3ZMod4ZMod5ZButton1ZButton2ZButton3ZButton4ZButton5r   |delta)rN   rO   keysymkeycoderM   numrR   focusxywidthheightz<%s event%s>name c                 3   s(    | ]}| v rd | | f V  qdS )z %s=%sNr
   )rJ   r)   Zattrsr
   r   	<genexpr>  s   & z!Event.__repr__.<locals>.<genexpr>)__dict__r%   rM   reprgetattrrO   r   int	enumerateappendr   hexr   rR   r    )selfrO   Zmodssinkeysr
   r]   r   __repr__   s8   



zEvent.__repr__N)rA   rB   rC   rk   r
   r
   r
   r   rG      s    *rG   c                   C   s   	 da d abd S )NF)_support_default_root_default_rootr
   r
   r
   r   NoDefaultRoot  s   rn   c                 C   s2   t stdtd u r| rtd|  dt }tS )NINo master specified and tkinter is configured to not support default rootzToo early to z: no default root window)rl   r/   rm   Tk)whatrootr
   r
   r   _get_default_root#  s   rs   c                  C   s8   t stdt} | d u rda t } da |   d| _| S )Nro   FT)rl   r/   rm   rp   withdraw
_temporaryrr   r
   r
   r   _get_temp_root/  s   rw   c                 C   s4   t | ddrz|   W d S  ty   Y d S w d S )Nru   F)ra   destroyTclErrormasterr
   r
   r   _destroy_temp_root@  s   r|   c                 C   s   	 d S Nr
   )errr
   r
   r   _tkerrorH  s   r   c                 C   s.   	 z	t | } W t|  ty   Y t| w r}   )rb   
ValueError
SystemExit)coder
   r
   r   _exitM  s   
r   c                   @   s   e Zd Z	 dZdZdZdddZdd Zdd Zd	d
 Z	e	Z
dd Zdd Zdd Zdd Zdd Zdd ZeZdd Zdd Zdd ZdS )Variabler\   Nc                 C   s   	 |d urt |tstd|d u rtd}| | _|j| _|r%|| _ndtt	 | _t	d7 a	|d ur;| 
| d S | j| jdd| jsP| 
| j d S d S )Nzname must be a stringzcreate variablePY_VARr   infoexists)r   r   r#   rs   _rootr2   _tk_namer`   _varnum
initialize
getbooleancall_defaultrf   r{   r	   r[   r
   r
   r   __init__b  s    
zVariable.__init__c                 C   sh   	 | j d u rd S | j | j dd| jr| j | j | jd ur2| jD ]}| j | q$d | _d S d S )Nr   r   )r   r   r   r   Zglobalunsetvar_tclCommandsdeletecommandrf   r[   r
   r
   r   __del__  s   



zVariable.__del__c                 C      	 | j S r}   )r   rf   r
   r
   r   rF        zVariable.__str__c                 C   s   	 | j | j|S r}   )r   globalsetvarr   rf   r	   r
   r
   r   set  r   zVariable.setc                 C   s   	 | j | jS r}   )r   globalgetvarr   r   r
   r
   r   get     zVariable.getc                 C   s   t |d | jj}tt|}z|j}W n	 ty   Y nw z||j }W n	 ty-   Y nw | j	|| | j
d u r=g | _
| j
| |S r}   )CallWrapperr   __call__r`   id__func__r"   rA   r   createcommandr   rd   )rf   callbackfcbnamer
   r
   r   	_register  s"   

zVariable._registerc                 C   s*   	 |  |}| jddd| j||f |S )Ntraceaddvariabler   r   r   r   rf   moder   r   r
   r
   r   	trace_add  s   
	
zVariable.trace_addc                 C   sz   	 | j ddd| j|| |  D ]\}}| j |d |kr" d S q| j | z	| j| W d S  ty<   Y d S w )Nr   remover   r   )	r   r   r   
trace_infor.   r   r   r   r   rf   r   r   mcar
   r
   r   trace_remove  s   zVariable.trace_removec              
      s6   	 | j j  fddt  | j ddd| jD S )Nc                    s   g | ]
\}} ||fqS r
   r
   rI   r.   r
   r   
<listcomp>  s    z'Variable.trace_info.<locals>.<listcomp>r   r   r   )r   r.   r   r   r   r   r
   r   r   r     s
   zVariable.trace_infoc                 C   s&   	 |  |}| jdd| j|| |S )Nr   r   r   r   r
   r
   r   trace_variable  s   
zVariable.trace_variablec                 C   s   	 | j dd| j|| | j |d }|  D ]\}}| j |d |kr) d S q| j | z	| j| W d S  tyC   Y d S w )Nr   Zvdeleter   )	r   r   r   r.   r   r   r   r   r   r   r
   r
   r   trace_vdelete  s   	zVariable.trace_vdeletec                    *   	  fdd j  j dd jD S )Nc                       g | ]} j |qS r
   )r   r.   rJ   rW   r   r
   r   r         z(Variable.trace_vinfo.<locals>.<listcomp>r   Zvinfo)r   r.   r   r   r   r
   r   r   trace_vinfo  s   zVariable.trace_vinfoc                 C   s6   t |tstS | j|jko| jj|jjko| j|jkS r}   )r   r   NotImplementedr   	__class__rA   r   )rf   otherr
   r
   r   __eq__  s   

zVariable.__eq__NNN)rA   rB   rC   r   r   r   r   r   rF   r   r   r   r   r   r   r   r   r   r   r   r   r
   r
   r
   r   r   Y  s(    

r   c                   @   $   e Zd Z	 dZdddZdd ZdS )	StringVarr\   Nc                 C      	 t | ||| d S r}   r   r   r   r
   r
   r   r        	zStringVar.__init__c                 C   s&   	 | j | j}t|tr|S t|S r}   )r   r   r   r   r   r   r
   r
   r   r     s
   
zStringVar.getr   rA   rB   rC   r   r   r   r
   r
   r
   r   r     
    
r   c                   @   r   )IntVarr   Nc                 C   r   r}   r   r   r
   r
   r   r   *  r   zIntVar.__init__c              	   C   sF   	 | j | j}z| j |W S  ttfy"   t| j | Y S w r}   )r   r   r   getintr#   ry   rb   	getdoubler   r
   r
   r   r   6  s   z
IntVar.getr   r   r
   r
   r
   r   r   &  r   r   c                   @   r   )	DoubleVarg        Nc                 C   r   r}   r   r   r
   r
   r   r   C  r   zDoubleVar.__init__c                 C   s   	 | j | j | jS r}   )r   r   r   r   r   r
   r
   r   r   O     zDoubleVar.getr   r   r
   r
   r
   r   r   ?  r   r   c                   @   s0   e Zd Z	 dZd	ddZdd ZeZdd ZdS )

BooleanVarFNc                 C   r   r}   r   r   r
   r
   r   r   X  r   zBooleanVar.__init__c                 C   s   	 | j | j| j |S r}   )r   r   r   r   r   r
   r
   r   r   d     zBooleanVar.setc                 C   s2   	 z| j | j | jW S  ty   tdw N invalid literal for getboolean())r   r   r   r   ry   r   r   r
   r
   r   r   j  s   zBooleanVar.getr   )rA   rB   rC   r   r   r   r   r   r
   r
   r
   r   r   T  s    
r   c                 C   s   	 t dj|  d S )Nzrun the main loop)rs   r2   mainloop)ri   r
   r
   r   r   r     r   c                 C   s,   	 z	t dj| W S  ty   tdw )Nzuse getboolean()r   )rs   r2   r   ry   r   rg   r
   r
   r   r   |  s   r   c                   @   s  e Zd Z	 dZdZdd Zdd Zd0ddZdd	 Zd
d Z	d1ddZ
e
Zd0ddZd0ddZd2ddZd1ddZdd Zdd Zdd Zdd ZeZd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd0d.d/Zd0d1 Zd2d3 Zd3d5d6Zd7d8 Z d9d: Z!d;d< Z"d=d> Z#d?d@ Z$dAdB Z%dCdD Z&dEdF Z'd0dGdHZ(dIdJ Z)dKdL Z*d0dMdNZ+dOdP Z,dQdR Z-dSdT Z.dUdV Z/dWdX Z0dYdZ Z1d0d[d\Z2d0d]d^Z3e3Z4d3d_d`Z5d3dadbZ6dcdd Z7dedf Z8dgdh Z9didj Z:d3dkdlZ;dmdn Z<dodp Z=dqdr Z>dsdt Z?dudv Z@dwdx ZAd3dydzZBd{d| ZCd}d~ ZDdd ZEdd ZFd3ddZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]d4ddZ^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd ZeddÄ Zfddń ZgddǄ ZhddɄ Zid0dd˄Zjd5dd΄Zkd6ddЄZld0dd҄Zmd6ddԄZnddք Zod6dd؄Zpddڄ Zqd3dd܄Zrddބ Zsdd Ztdd Zudd Zvdd Zwexdd Zyd0ddZzdd Z{e{Z|d7ddZ}e}Z~dd ZdZdeZdd Zdd Zdd Zdd Zdd Zd0ddZeZdd  ZeZdd Zdd Zdd Zdd Zd	gZefd
dZeZdd ZeZdd Zd0ddZeZd8ddZeZdd Zdd Zi fddZeZdd ZefddZi fddZeZd d! ZeZd9d"d#Zd$d% Zd&d' Zd(d) Zd0d*d+Zd,d- Zd.d/ ZdS (:  MiscNc                 C   s2   	 | j d ur| j D ]}| j| q	d | _ d S d S r}   )r   r2   r   r   r
   r
   r   rx     s   


zMisc.destroyc                 C   s6   	 | j | z	| j| W d S  ty   Y d S w r}   )r2   r   r   r   r   r   r
   r
   r   r     s   zMisc.deletecommandc                 C      	 | j | j dd|S )Nr   tk_strictMotif)r2   r   r   rf   booleanr
   r
   r   r     s   zMisc.tk_strictMotifc                 C      	 | j d d S )N	tk_bisquer2   r   r   r
   r
   r   r     r   zMisc.tk_bisquec                 O   s*   	 | j dt| tt|   d S )N)tk_setPalette)r2   r   r   r   r%   rf   argskwr
   r
   r   r     s   

zMisc.tk_setPaletter   c                 C      	 | j dd| d S )Ntkwaitr   r   r   r
   r
   r   wait_variable     zMisc.wait_variablec                 C   $   	 |d u r| }| j dd|j d S )Nr   windowr2   r   _wrf   r   r
   r
   r   wait_window  s   zMisc.wait_windowc                 C   r   )Nr   Z
visibilityr   r   r
   r
   r   wait_visibility  s   zMisc.wait_visibility1c                 C   s   	 | j || d S r}   )r2   setvar)rf   r[   r	   r
   r
   r   r        zMisc.setvarc                 C   s   	 | j |S r}   )r2   getvarr   r
   r
   r   r        zMisc.getvarc              
   C   4   z| j |W S  ty } ztt|d }~ww r}   )r2   r   ry   r   r   rf   rg   excr
   r
   r   r        zMisc.getintc              
   C   r   r}   )r2   r   ry   r   r   r   r
   r
   r   r     r   zMisc.getdoublec                 C   s(   	 z| j |W S  ty   tdw r   )r2   r   ry   r   )rf   rg   r
   r
   r   r     s   zMisc.getbooleanc                 C   s   	 | j d| j d S NrV   r   r   r
   r
   r   	focus_set     zMisc.focus_setc                 C      	 | j dd| j d S )NrV   z-forcer   r   r
   r
   r   focus_force   s   zMisc.focus_forcec                 C   s(   	 | j d}|dks|sd S | |S )NrV   none)r2   r   _nametowidgetr   r
   r
   r   	focus_get  s   
zMisc.focus_getc                 C   .   	 | j dd| j}|dks|sd S | |S )NrV   
-displayofr   r2   r   r   r   r   r
   r
   r   focus_displayof  s   
zMisc.focus_displayofc                 C   r   )NrV   z-lastforr   r   r   r
   r
   r   focus_lastfor  s   
zMisc.focus_lastforc                 C   r   )Ntk_focusFollowsMouser   r   r
   r
   r   r  !     zMisc.tk_focusFollowsMousec                 C   $   	 | j d| j}|sd S | |S )Ntk_focusNextr   r   r
   r
   r   r  &  s   
zMisc.tk_focusNextc                 C   r  )Ntk_focusPrevr   r   r
   r
   r   r  3  s   
zMisc.tk_focusPrevc                    st   	 d u rj d| d S  fdd}zj|_W n ty,   tj|_Y nw |j d|S )Nafterc                      sT   z   W z  W d S  ty   Y d S w z  W w  ty)   Y w w r}   )r   ry   r
   r   funcr[   rf   r
   r   callitE  s   
zMisc.after.<locals>.callit)r2   r   rA   r"   r    r   )rf   msr
  r   r  r
   r	  r   r  9  s   
z
Misc.afterc                 G   s   	 | j d|g|R  S )NZidle)r  )rf   r
  r   r
   r
   r   
after_idleU  r   zMisc.after_idlec                 C   sd   	 |st dz| jdd|}| j|d }| | W n	 ty'   Y nw | jdd| d S )Nz?id must be a valid identifier returned from after or after_idler  r   r   cancel)r   r2   r   r.   r   ry   )rf   r   dataZscriptr
   r
   r   after_cancel]  s   zMisc.after_cancelr   c                 C   s   	 | j d| |  d S )N)bell)r2   r   
_displayofrf   	displayofr
   r
   r   r  n     z	Misc.bellc                 K   sd   	 d|vr'| j dkr'zd|d< | jd| | W S  ty&   |d= Y nw | jd| | S )Nr    x11UTF8_STRING)	clipboardr   )_windowingsystemr2   r   _optionsry   rf   r   r
   r
   r   clipboard_gets  s   
zMisc.clipboard_getc                 K   .   	 d|vr
| j |d< | jd| |  d S )Nr  )r  clearr   r2   r   r  r  r
   r
   r   clipboard_clear  s   zMisc.clipboard_clearc                 K   s6   	 d|vr
| j |d< | jd| | d|f  d S )Nr  )r  rd   --r  )rf   stringr   r
   r
   r   clipboard_append  s
   
zMisc.clipboard_appendc                 C   s&   	 | j dd| j}|sd S | |S )Ngrabcurrentr   r   r
   r
   r   grab_current  s   
zMisc.grab_currentc                 C   r   )Nr$  releaser   r   r
   r
   r   grab_release  r   zMisc.grab_releasec                 C   r   )Nr$  r   r   r   r
   r
   r   grab_set     zMisc.grab_setc                 C   s   	 | j ddd| j d S )Nr$  r   z-globalr   r   r
   r
   r   grab_set_global     zMisc.grab_set_globalc                 C   s$   	 | j dd| j}|dkrd }|S )Nr$  statusr   r   )rf   r-  r
   r
   r   grab_status  s   zMisc.grab_statusc                 C   s   	 | j dd||| d S )Noptionr   r   )rf   patternr	   priorityr
   r
   r   
option_add  r,  zMisc.option_addc                 C      	 | j dd d S )Nr/  r  r   r   r
   r
   r   option_clear     zMisc.option_clearc                 C      	 | j dd| j||S )Nr/  r   r   )rf   r[   	classNamer
   r
   r   
option_get  r*  zMisc.option_getc                 C   s   	 | j dd|| d S )Nr/  Zreadfiler   )rf   ZfileNamer1  r
   r
   r   option_readfile  r*  zMisc.option_readfilec                 K   r  )Nr  )	selectionr  r  r  r
   r
   r   selection_clear  s   zMisc.selection_clearc                 K   sv   	 d|vr
| j |d< d|vr0| jdkr0zd|d< | jd| | W S  ty/   |d= Y nw | jd| | S )Nr  r    r  r  )r:  r   )r   r  r2   r   r  ry   r  r
   r
   r   selection_get  s   
zMisc.selection_getc                 K   s0   	 |  |}| jd| | | j|f  d S )N)r:  handle)r   r2   r   r  r   )rf   commandr   r[   r
   r
   r   selection_handle  s
   

zMisc.selection_handlec                 K   s$   	 | j d| | | jf  d S )Nr:  Zown)r2   r   r  r   r  r
   r
   r   selection_own  s   
zMisc.selection_ownc                 K   s<   	 d|vr
| j |d< | jd| | }|sd S | |S )Nr  r@  )r   r2   r   r  r   )rf   r   r[   r
   r
   r   selection_own_get	  s
   
zMisc.selection_own_getc                 G   s   	 | j d||f| S )Nsendr   )rf   Zinterpcmdr   r
   r
   r   rC    r   z	Misc.sendc                 C      	 | j d| j| d S Nlowerr   )rf   	belowThisr
   r
   r   rG    r   z
Misc.lowerc                 C   rE  Nraiser   )rf   	aboveThisr
   r
   r   tkraise  r   zMisc.tkraisec                 C   s*   	 d|  | |f }| j| j|S )N)winfoZatom)r  r2   r   r   )rf   r[   r  r   r
   r
   r   
winfo_atom#  s   zMisc.winfo_atomc                 C   "   	 d|  | |f }| j|S )N)rM  Zatomnamer  r2   r   rf   r   r  r   r
   r
   r   winfo_atomname(     zMisc.winfo_atomnamec                 C      	 | j | j dd| jS )NrM  Zcellsr2   r   r   r   r   r
   r
   r   winfo_cells.     zMisc.winfo_cellsc              	   C   sP   	 g }| j | j dd| jD ]}z
|| | W q ty%   Y qw |S )NrM  children)r2   r.   r   r   rd   r   KeyError)rf   resultchildr
   r
   r   winfo_children3  s   zMisc.winfo_childrenc                 C      	 | j dd| jS )NrM  classr   r   r
   r
   r   winfo_class@  r   zMisc.winfo_classc                 C   rT  )NrM  Zcolormapfullr2   r   r   r   r   r
   r
   r   winfo_colormapfullD  rW  zMisc.winfo_colormapfullc                 C   s6   	 d|  | ||f }| j|}|sd S | |S )N)rM  Z
containing)r  r2   r   r   )rf   ZrootXZrootYr  r   r[   r
   r
   r   winfo_containingI  s   
zMisc.winfo_containingc                 C   rT  )NrM  depthrU  r   r
   r
   r   winfo_depthQ  r  zMisc.winfo_depthc                 C   rT  )NrM  r   rU  r   r
   r
   r   winfo_existsU  rW  zMisc.winfo_existsc                 C      	 | j | j dd| j|S )NrM  Zfpixelsr2   r   r   r   rf   numberr
   r
   r   winfo_fpixelsZ     
zMisc.winfo_fpixelsc                 C   r]  )NrM  geometryr   r   r
   r
   r   winfo_geometry`  r   zMisc.winfo_geometryc                 C   rT  )NrM  rZ   rU  r   r
   r
   r   winfo_heightd  rW  zMisc.winfo_heightc                 C   s   	 t | jdd| jdS )NrM  r   r   )rb   r2   r   r   r   r
   r
   r   winfo_idi  r   zMisc.winfo_idc                 C   s$   	 d|  | }| j| j|S )N)rM  Zinterps)r  r2   r.   r   )rf   r  r   r
   r
   r   winfo_interpsm  s   zMisc.winfo_interpsc                 C   rT  )NrM  ZismappedrU  r   r
   r
   r   winfo_ismappedr  rW  zMisc.winfo_ismappedc                 C   r]  )NrM  managerr   r   r
   r
   r   winfo_managerw  r   zMisc.winfo_managerc                 C   r]  )NrM  r[   r   r   r
   r
   r   
winfo_name{  r   zMisc.winfo_namec                 C   r]  )NrM  parentr   r   r
   r
   r   winfo_parent  r   zMisc.winfo_parentc                 C   rO  )N)rM  pathnamerP  rQ  r
   r
   r   winfo_pathname  rS  zMisc.winfo_pathnamec                 C   rf  )NrM  ZpixelsrU  rh  r
   r
   r   winfo_pixels     zMisc.winfo_pixelsc                 C   rT  )NrM  ZpointerxrU  r   r
   r
   r   winfo_pointerx  rW  zMisc.winfo_pointerxc                 C      	 |  | jdd| jS )NrM  Z	pointerxy_getintsr2   r   r   r   r
   r
   r   winfo_pointerxy  s   zMisc.winfo_pointerxyc                 C   rT  )NrM  ZpointeryrU  r   r
   r
   r   winfo_pointery  rW  zMisc.winfo_pointeryc                 C   rT  )NrM  Z	reqheightrU  r   r
   r
   r   winfo_reqheight  rW  zMisc.winfo_reqheightc                 C   rT  )NrM  ZreqwidthrU  r   r
   r
   r   winfo_reqwidth  rW  zMisc.winfo_reqwidthc                 C      	 |  | jdd| j|S )NrM  Zrgbr}  )rf   Zcolorr
   r
   r   	winfo_rgb  s   zMisc.winfo_rgbc                 C   rT  )NrM  ZrootxrU  r   r
   r
   r   winfo_rootx     zMisc.winfo_rootxc                 C   rT  )NrM  ZrootyrU  r   r
   r
   r   winfo_rooty  r  zMisc.winfo_rootyc                 C   r]  )NrM  screenr   r   r
   r
   r   winfo_screen  r   zMisc.winfo_screenc                 C   rT  )NrM  ZscreencellsrU  r   r
   r
   r   winfo_screencells  r  zMisc.winfo_screencellsc                 C   rT  )NrM  ZscreendepthrU  r   r
   r
   r   winfo_screendepth  r  zMisc.winfo_screendepthc                 C   rT  )NrM  ZscreenheightrU  r   r
   r
   r   winfo_screenheight  r  zMisc.winfo_screenheightc                 C   rT  )NrM  ZscreenmmheightrU  r   r
   r
   r   winfo_screenmmheight  r  zMisc.winfo_screenmmheightc                 C   rT  )NrM  ZscreenmmwidthrU  r   r
   r
   r   winfo_screenmmwidth  r  zMisc.winfo_screenmmwidthc                 C   r]  )NrM  Zscreenvisualr   r   r
   r
   r   winfo_screenvisual  r5  zMisc.winfo_screenvisualc                 C   rT  )NrM  ZscreenwidthrU  r   r
   r
   r   winfo_screenwidth  r  zMisc.winfo_screenwidthc                 C   r]  )NrM  Zserverr   r   r
   r
   r   winfo_server     zMisc.winfo_serverc                 C   r|  )NrM  toplevel)r   r2   r   r   r   r
   r
   r   winfo_toplevel  s   
zMisc.winfo_toplevelc                 C   rT  )NrM  ZviewablerU  r   r
   r
   r   winfo_viewable  rW  zMisc.winfo_viewablec                 C   r]  )NrM  visualr   r   r
   r
   r   winfo_visual  r5  zMisc.winfo_visualc                 C   r]  )NrM  Zvisualidr   r   r
   r
   r   winfo_visualid  r   zMisc.winfo_visualidFc                    sJ   	  j dd j|rdnd } fdd j |D } fdd|D S )NrM  Zvisualsavailable
includeidsc                    r   r
   )r2   r.   r   r   r
   r   r     r   z/Misc.winfo_visualsavailable.<locals>.<listcomp>c                       g | ]}  |qS r
   )_Misc__winfo_parseitemr   r   r
   r   r         )r2   r   r   r.   )rf   r  r  r
   r   r   winfo_visualsavailable  s   
zMisc.winfo_visualsavailablec                 C   s&   	 |d d t t| j|dd   S Nr   )r   r   _Misc__winfo_getint)rf   r4   r
   r
   r   Z__winfo_parseitem
  s   $zMisc.__winfo_parseitemc                 C   s   	 t |dS )Nr   )rb   rf   rW   r
   r
   r   Z__winfo_getint     
zMisc.__winfo_getintc                 C   rT  )NrM  ZvrootheightrU  r   r
   r
   r   winfo_vrootheight     zMisc.winfo_vrootheightc                 C   rT  )NrM  Z
vrootwidthrU  r   r
   r
   r   winfo_vrootwidth  r  zMisc.winfo_vrootwidthc                 C   rT  )NrM  ZvrootxrU  r   r
   r
   r   winfo_vrootx   r  zMisc.winfo_vrootxc                 C   rT  )NrM  ZvrootyrU  r   r
   r
   r   winfo_vrooty&  r  zMisc.winfo_vrootyc                 C   rT  )NrM  rY   rU  r   r
   r
   r   winfo_width,  rW  zMisc.winfo_widthc                 C   rT  )NrM  rW   rU  r   r
   r
   r   winfo_x1  r  zMisc.winfo_xc                 C   rT  )NrM  rX   rU  r   r
   r
   r   winfo_y7  r  zMisc.winfo_yc                 C   r   )Nr!   r   r   r
   r
   r   r!   =  r   zMisc.updatec                 C   r3  )Nr!   Z	idletasksr   r   r
   r
   r   update_idletasksA  r5  zMisc.update_idletasksc                 C   s8   	 |d u r| j | j d| jS | j d| j| d S )Nbindtagsr2   r.   r   r   )rf   ZtagListr
   r
   r   r  G  s   zMisc.bindtagsr   c                 C   s   	 t |tr| j|||f  d S |r4| || j|}d|r!dp"d|| jf }| j|||f  |S |r?| j||f S | j| j|S )Nz"%sif {"[%s %s]" == "break"} break
+r\   )r   r   r2   r   r   _substitute_subst_format_strr.   )rf   rq   sequencer
  r   needcleanupfuncidrD  r
   r
   r   _bindT  s"   


z
Misc._bindc                 C   s   	 |  d| jf|||S Nbindr  r   rf   r  r
  r   r
   r
   r   r  f  s   &z	Misc.bindc                 C   s,   	 | j d| j|d |r| | d S d S Nr  r\   r2   r   r   r   )rf   r  r  r
   r
   r   unbind  s
   zMisc.unbindc                 C   s   	 |  d|||dS )N)r  allr   r  r  r
   r
   r   bind_all     zMisc.bind_allc                 C   s   	 | j dd|d d S )Nr  r  r\   r   )rf   r  r
   r
   r   
unbind_all  r   zMisc.unbind_allc                 C   s   	 |  d|f|||dS )Nr  r   r  )rf   r7  r  r
  r   r
   r
   r   
bind_class     zMisc.bind_classc                 C   s   	 | j d||d d S r  r   )rf   r7  r  r
   r
   r   unbind_class     zMisc.unbind_classc                 C   s   	 | j | d S r}   )r2   r   )rf   ri   r
   r
   r   r     r   zMisc.mainloopc                 C   s   	 | j   d S r}   )r2   quitr   r
   r
   r   r    r   z	Misc.quitc                 C   $   	 |rt t| jj| j|S d S r}   )r   r   r2   r   r.   rf   r"  r
   r
   r   r~       zMisc._getintsc                 C   r  r}   )r   r   r2   r   r.   r  r
   r
   r   _getdoubles  r  zMisc._getdoublesc                 C   s   	 |r	| j |S d S r}   )r2   r   r  r
   r
   r   _getboolean  s   zMisc._getbooleanc                 C   s$   	 |rd|fS |d u rd| j fS dS )Nr   r
   r   r  r
   r
   r   r    s   
zMisc._displayofc                 C   s>   	 z|   jW S  ty   | jdd }|   _| Y S w )Nr2   Zwindowingsystem)r   Z_windowingsystem_cachedr"   r2   r   )rf   wsr
   r
   r   r    s   zMisc._windowingsystemc                 C   s   	 |r
t ||f}nt |}d}| D ]T\}}|d urh|d dkr(|d d }t|r2| |}n.t|ttfr`g }|D ]}t|trL|t	| q=t|t	rY|t
| q= nd|}|d| |f }q|S )Nr
   _r   r-   )r+   r%   callabler   r   r   r   rb   rd   r   r   r   )rf   r&   r   r   r)   r*   nvr   r
   r
   r   r    s,   


zMisc._optionsc                 C   sR   	 t |d}| }|d s| }|dd  }|D ]}|s! |S |j| }q|S )N.r   r   )r   splitr   rX  )rf   r[   wri   r
   r
   r   nametowidget  s   zMisc.nametowidgetc                 C   s   	 t ||| j}tt|}z|j}W n	 ty   Y nw z||j }W n	 ty-   Y nw | j|| |rE| j	d u r?g | _	| j	
| |S r}   )r   r   r`   r   r   r"   rA   r2   r   r   rd   )rf   r
  substr  r   r[   r
   r
   r   r     s&   

zMisc._registerc                 C   s$   	 | }|j d ur|j }|j d us|S r}   rz   )rf   r  r
   r
   r   r     s   z
Misc._root)z%#z%bz%fz%hz%kz%sz%tz%wz%xz%yz%Az%Ez%Kz%Nz%Wz%Tz%Xz%Yz%Dr   c                    s  	 t |t | jkr|S | jj}| jj  fdd}|\}}}}}}	}
}}}}}}}}}}}}t } ||_|||_z|||_W n	 t	yL   Y nw |||_
|||_||	|_||
|_|||_|||_|||_||_z|||_W n	 t	y   Y nw ||_|||_zt||_W n ty   ||_Y nw z| ||_W n ty   ||_Y nw |||_|||_z	 ||_W |fS  tt	fy   d|_Y |fS w )Nc              	      s(   	 z | W S  t tfy   |  Y S w r}   )r   ry   r   r   r
   r   getint_event.  s   
z&Misc._substitute.<locals>.getint_eventr   )r   _subst_formatr2   r   r   rG   serialrU   rV   ry   rZ   rT   rO   timerY   rW   rX   rM   rN   rS   Z
keysym_numr8   r    r   r   widgetrY  Zx_rootZy_rootrR   )rf   r   r   r  Znsignbr   hr)   rg   r4   r  rW   rX   AEKNWTXYDer
   r  r   r  (  sT   *













zMisc._substitutec                 C   s*   	 t  \}}}|  }|||| d S r}   )sysexc_infor   report_callback_exception)rf   r   valtbrr   r
   r
   r   _report_exceptione  s   zMisc._report_exceptionc                 G   s^   	 i }| j | j j| D ]}| j |}|d dd  f|dd   ||d dd  < q|S Nr   r   r2   r.   r   )rf   r   r&   rW   r
   r
   r   _getconfigurek  s   0zMisc._getconfigurec                 G   s2   | j | j j| }|d dd  f|dd   S r  r  )rf   r   rW   r
   r
   r   _getconfigure1s  s   zMisc._getconfigure1c                 C   s   	 |r
t ||f}n|rt |}|d u r| t| j|fS t|tr0| t| j|d| fS | jt| j|f| 	|  d S )Nr-   )
r+   r  r   r   r   r   r  r2   r   r  )rf   rD  r&   r   r
   r
   r   
_configurew  s   
$zMisc._configurec                 K      	 |  d||S )N	configurer  rf   r&   r   r
   r
   r   r    s   zMisc.configurec                 C      	 | j | jdd| S Ncgetr-   r   rf   r6   r
   r
   r   r    r   z	Misc.cgetc                 C   s   |  ||i d S r}   )r  rf   r6   r	   r
   r
   r   __setitem__  s   zMisc.__setitem__c                    s,   	 | j j  fdd | j | jdD S )Nc                    s    g | ]} |d  dd qS )r   r   Nr
   r   r   r
   r   r     s     zMisc.keys.<locals>.<listcomp>r  r  r   r
   r   r   rj     s
   
z	Misc.keysc                 C   r   r}   r  r   r
   r
   r   rF     r   zMisc.__str__c                 C   s   d| j j| j j| jf S )Nz<%s.%s object %s>)r   rB   rC   r   r   r
   r
   r   rk     s   zMisc.__repr___noarg_c                 C   <   	 |t ju r| | jdd| jS | jdd| j| d S )Npack	propagater   r  r  r2   r   r   rf   flagr
   r
   r   pack_propagate     

zMisc.pack_propagatec                    r   )Nc                    r  r
   r   r   r   r
   r   r     r  z$Misc.pack_slaves.<locals>.<listcomp>r  slavesr  r   r
   r   r   pack_slaves  s   
zMisc.pack_slavesc                    r   )Nc                    r  r
   r  r   r   r
   r   r     r  z%Misc.place_slaves.<locals>.<listcomp>placer  r  r   r
   r   r   place_slaves  s   
zMisc.place_slavesc                 C   s   	 | j dd| j| d S )Ngridanchorr   )rf   r  r
   r
   r   grid_anchor     zMisc.grid_anchorc                 C   s\   	 dd| j f}|d ur|d ur|||f }|d ur#|d ur#|||f }| | jj| p-d S )Nr
  bbox)r   r~  r2   r   )rf   columnrowZcol2Zrow2r   r
   r
   r   	grid_bbox  s   zMisc.grid_bboxc              	   C   sd   t |ttjfr0zt|}|sW d S d|v r| j|W S | j|W S  ttfy/   Y |S w |S )Nr  )	r   r   _tkinterZTcl_Objr2   r   r   r   ry   )rf   r	   Zsvaluer
   r
   r   _gridconvvalue  s   zMisc._gridconvvaluec                 C   s   	 t |tr&|s&|dd  dkr|d d }|d d dkr"d| }|f}n| ||}|s?t| j| jd|| j|| jdS | jd|| j|f| }t|dkrW| |S d S )Nr  r  r   r-   r
  )r3   )	r   r   r  r7   r2   r   r   r  r   )rf   r>  indexr&   r   optionsr   r
   r
   r   _grid_configure  s,   
zMisc._grid_configurec                 K      	 |  d|||S )Ncolumnconfigurer  rf   r  r&   r   r
   r
   r   grid_columnconfigure     zMisc.grid_columnconfigurec              	   C   s"   	 |  | jdd| j||pd S )Nr
  locationr}  rf   rW   rX   r
   r
   r   grid_location  s   zMisc.grid_locationc                 C   r  )Nr
  r  r   r  r
   r
   r   grid_propagate  r  zMisc.grid_propagatec                 K   r  )Nrowconfigurer  r  r
   r
   r   grid_rowconfigure,  r  zMisc.grid_rowconfigurec                 C   s   	 |  | jdd| jpd S )Nr
  sizer}  r   r
   r
   r   	grid_size6  s   zMisc.grid_sizec                    s\   	 d}|d ur|d|f }|d ur|d|f } fdd j  j dd jf| D S )Nr
   z-rowz-columnc                    r  r
   r  r   r   r
   r   r   E  r  z$Misc.grid_slaves.<locals>.<listcomp>r
  r  r  )rf   r  r  r   r
   r   r   grid_slaves=  s   
zMisc.grid_slavesc                 G       	 dd|f| }| j | d S )Neventr   r   rf   virtual	sequencesr   r
   r
   r   	event_addL  s   zMisc.event_addc                 G   r&  )Nr'  deleter   r(  r
   r
   r   event_deleteS  s   zMisc.event_deletec                 K   sF   	 dd| j |f}| D ]\}}|d| t|f }q| j| d S )Nr'  Zgenerate-%s)r   r%   r   r2   r   )rf   r  r   r   r)   r*   r
   r
   r   event_generateX  s
   zMisc.event_generatec                 C   r   )Nr'  r   r  )rf   r)  r
   r
   r   
event_infoa     zMisc.event_infoc                 C      	 | j | j ddS Nimagenamesr  r   r
   r
   r   image_namesi  r   zMisc.image_namesc                 C   r2  )Nr4  typesr  r   r
   r
   r   image_typesm  r   zMisc.image_typesr}   )r   )r   r   r   F)r   r   r  NNNNNN)rA   rB   rC   _last_child_idsr   rx   r   r   r   r   r   Zwaitvarr   r   r   r   r   r   r   r   rV   r   r   r  r  r  r  r  r  r  r  r  r  r   r#  r&  r(  r)  r+  r.  r2  r4  r8  r9  r;  r<  r?  rA  rB  rC  rG  rL  liftrN  rR  rV  r\  r_  ra  rb  rd  re  rj  rm  rn  ro  rp  rq  rs  rt  rv  rx  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!   r  r  r  r  r  r  r  r  r  r   r  r~  r  r  r  propertyr  r  r  r   r   registerr   r  r   r  r  r  r  r  r  r  configr  __getitem__r  rj   rF   rk   r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r   r"  r!  r$  r#  r%  r+  r-  r/  r0  r6  r8  r
   r
   r
   r   r     sR   
		)

	
=	

	r   c                   @   s   e Zd Z	 dd Zdd ZdS )r   c                 C   s   	 || _ || _|| _d S r}   )r
  r  r  )rf   r
  r  r  r
   r
   r   r   v  s   
zCallWrapper.__init__c                 G   sD   	 z| j r
| j | }| j| W S  ty       | j  Y d S r}   )r  r
  r   r  r  rf   r   r
   r
   r   r   |  s   
zCallWrapper.__call__NrA   rB   rC   r   r   r
   r
   r
   r   r   r  s    r   c                   @   &   e Zd Z	 dd Zdd Zdd ZdS )XViewc                 G   ,   	 | j j| jdg|R  }|s| |S d S )Nxviewr2   r   r   r  rf   r   r   r
   r
   r   rH    
   
zXView.xviewc                 C      	 | j | jdd| d S )NrH  movetor   rf   fractionr
   r
   r   xview_moveto     zXView.xview_movetoc                 C      	 | j | jdd|| d S )NrH  scrollr   rf   ri  rq   r
   r
   r   xview_scroll     zXView.xview_scrollN)rA   rB   rC   rH  rP  rU  r
   r
   r
   r   rF    
    rF  c                   @   rE  )YViewc                 G   rG  )NyviewrI  rJ  r
   r
   r   rY    rK  zYView.yviewc                 C   rL  )NrY  rM  r   rN  r
   r
   r   yview_moveto  rQ  zYView.yview_movetoc                 C   rR  )NrY  rS  r   rT  r
   r
   r   yview_scroll  rV  zYView.yview_scrollN)rA   rB   rC   rY  rZ  r[  r
   r
   r
   r   rX    rW  rX  c                   @   s  e Zd Z	 		dAddZeZdd ZeZdBddZeZdd	 Z	e	Z
dBd
dZeZdd ZeZdBddZeZdd ZeZdd ZeZdBddZeZ		dAddZeZdBddZeZdCddZeZdd ZeZdBddZeZ dBd d!Z!e!Z"dDd#d$Z#e#Z$dCd%d&Z%e%Z&dBd'd(Z'e'Z(d)d* Z)e)Z*dCd+d,Z+e+Z,dCd-d.Z-e-Z.dBd/d0Z/e/Z0dBd1d2Z1e1Z2dCd3d4Z3e3Z4dCd5d6Z5e5Z6dBd7d8Z7e7Z8dBd9d:Z9e9Z:dBd;d<Z;e;Z<dBd=d>Z=e=Z>d?d@ Z?e?Z@dS )EWmNc                 C   "   	 |  | jdd| j||||S )Nwmaspectr}  )rf   ZminNumerZminDenomZmaxNumerZmaxDenomr
   r
   r   	wm_aspect  s   zWm.wm_aspectc                 G   s   	 dd| j f| }| j|S )Nr^  
attributes)r   r2   r   rC  r
   r
   r   wm_attributes  s   zWm.wm_attributesc                 C      	 | j dd| j|S )Nr^  clientr   r   r
   r
   r   	wm_client     zWm.wm_clientc                    sZ   	 t |dkr
|f}dd jf| }|r j| d S  fdd j j|D S )Nr   r^  colormapwindowsc                    r  r
   r  r   r   r
   r   r     s    z)Wm.wm_colormapwindows.<locals>.<listcomp>)r   r   r2   r   r.   )rf   Zwlistr   r
   r   r   wm_colormapwindows  s   
zWm.wm_colormapwindowsc                 C   rc  )Nr^  r>  r   r   r
   r
   r   
wm_command     zWm.wm_commandc                 C   r]  )Nr^  	deiconifyr   r   r
   r
   r   wm_deiconify  r  zWm.wm_deiconifyc                 C   rc  )Nr^  
focusmodelr   )rf   Zmodelr
   r
   r   wm_focusmodel  rj  zWm.wm_focusmodelc                 C   r   )Nr^  forgetr   r   r
   r
   r   	wm_forget  r   zWm.wm_forgetc                 C   r]  )Nr^  framer   r   r
   r
   r   wm_frame  r   zWm.wm_framec                 C   rc  )Nr^  rl  r   )rf   ZnewGeometryr
   r
   r   wm_geometry  rf  zWm.wm_geometryc                 C   r]  )Nr^  r
  r}  )rf   Z	baseWidthZ
baseHeightZwidthIncZ	heightIncr
   r
   r   wm_grid  s
   
z
Wm.wm_gridc                 C   rc  )Nr^  groupr   rf   ZpathNamer
   r
   r   wm_group*  rf  zWm.wm_groupc                 C   s0   	 |r| j dd| jd|S | j dd| j|S )Nr^  
iconbitmap-defaultr   )rf   bitmapdefaultr
   r
   r   wm_iconbitmap1  s   zWm.wm_iconbitmapc                 C   r]  )Nr^  iconifyr   r   r
   r
   r   
wm_iconifyA  r   zWm.wm_iconifyc                 C   rc  )Nr^  iconmaskr   )rf   rz  r
   r
   r   wm_iconmaskG  rf  zWm.wm_iconmaskc                 C   rc  )Nr^  iconnamer   )rf   ZnewNamer
   r
   r   wm_iconnameN  rf  zWm.wm_iconnameFc                 G   sD   	 |r| j jdd| jdg|R   d S | j jdd| jg|R   d S )Nr^  	iconphotory  r   )rf   r{  r   r
   r
   r   wm_iconphotoU  s    zWm.wm_iconphotoc              	   C      	 |  | jdd| j||S )Nr^  iconpositionr}  r  r
   r
   r   wm_iconpositionp  s   
zWm.wm_iconpositionc                 C   rc  )Nr^  
iconwindowr   rv  r
   r
   r   wm_iconwindowx  rf  zWm.wm_iconwindowc                 C   r   )Nr^  manager   )rf   r  r
   r
   r   	wm_manage  rj  zWm.wm_managec              	   C   r  )Nr^  maxsizer}  rf   rY   rZ   r
   r
   r   
wm_maxsize     
zWm.wm_maxsizec              	   C   r  )Nr^  minsizer}  r  r
   r
   r   
wm_minsize  r  zWm.wm_minsizec                 C   r  )Nr^  overrideredirect)r  r2   r   r   r   r
   r
   r   wm_overrideredirect  s   

zWm.wm_overrideredirectc                 C   rc  )Nr^  positionfromr   rf   Zwhor
   r
   r   wm_positionfrom  rj  zWm.wm_positionfromc                 C   s0   	 t |r| |}n|}| jdd| j||S )Nr^  protocol)r  r   r2   r   r   )rf   r[   r
  r>  r
   r
   r   wm_protocol  s   zWm.wm_protocolc                 C   r6  )Nr^  	resizabler   r  r
   r
   r   wm_resizable  r  zWm.wm_resizablec                 C   rc  )Nr^  sizefromr   r  r
   r
   r   wm_sizefrom  rj  zWm.wm_sizefromc                 C   rc  )Nr^  rO   r   )rf   Znewstater
   r
   r   wm_state  rf  zWm.wm_statec                 C   rc  )Nr^  titler   r  r
   r
   r   wm_title  r   zWm.wm_titlec                 C   rc  )Nr^  	transientr   )rf   r{   r
   r
   r   wm_transient  rf  zWm.wm_transientc                 C   r]  )Nr^  rt   r   r   r
   r
   r   wm_withdraw  r  zWm.wm_withdrawr;  r}   r<  r:  )ArA   rB   rC   r`  r_  rb  ra  re  rd  rh  rg  ri  r>  rl  rk  rn  rm  rp  ro  rr  rq  rs  rl  rt  r
  rw  ru  r|  rx  r~  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rO   r  r  r  r  r  rt   r
   r
   r
   r   r\    s    






















r\  c                   @   sP   e Zd Z	 dZ	 	dddZdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dS )rp   r  NTFc           
   
   C   s   	 d | _ i | _d| _d | _|d u r.dd l}|jtjd }|j	|\}}|dvr.|| }d}	t
||||	t|||| _|rC|   tjjsO| || d S d S )NFr   )z.pyz.pyc)r{   rX  	_tkloadedr2   ospathbasenamer  argvsplitextr  createwantobjects_loadtkflagsignore_environmentreadprofile)
rf   
screenNamebaseNamer7  useTksyncZuser  extinteractiver
   r
   r   r     s$   zTk.__init__c                 C   s    | j s| j  |   d S d S r}   )r  r2   loadtkr  r   r
   r
   r   r  	  s   
z	Tk.loadtkc                 C   s   d| _ | jd}|tjkrtdtj|f t| jd}|tjkr-tdtj|f | jd u r5g | _| j	dt
 | j	dt | jd | jd trWtd u rW| a| d| j d S )	NT
tk_versionz4tk.h version (%s) doesn't match libtk.a version (%s)tcl_versionz6tcl.h version (%s) doesn't match libtcl.a version (%s)ZtkerrorexitWM_DELETE_WINDOW)r  r2   r   r  
TK_VERSIONr/   r   TCL_VERSIONr   r   r   r   rd   rl   rm   r  rx   )rf   r  r  r
   r
   r   r  	  s(   


z
Tk._loadtkc                 C   sT   	 t | j D ]}|  q| jd| j t|  tr&t	| u r(d a	d S d S d S Nrx   )
r   rX  valuesrx   r2   r   r   r   rl   rm   rf   r'   r
   r
   r   rx   !	  s   
z
Tk.destroyc           
      C   s   	 dd l }d|jv r|jd }n|j}|j|d| }|j|d| }|j|d| }|j|d| }d| i}	td|	 |j|rM| jd| |j|r\tt	|
 |	 |j|ri| jd| |j|rztt	|
 |	 d S d S )Nr   HOMEz.%s.tclz.%s.pyrf   zfrom tkinter import *source)r  environcurdirr  r   execisfiler2   r   openread)
rf   r  r7  r  homeZ	class_tclZclass_pyZbase_tclZbase_pydirr
   r
   r   r  +	  s&   
zTk.readprofilec                 C   s<   	 dd l }tdtjd |t_|t_|t_|||| d S )Nr   zException in Tkinter callback)file)	tracebackr$   r  stderr	last_type
last_valuelast_tracebackprint_exception)rf   r   r  r  r  r
   r
   r   r  A	  s   zTk.report_callback_exceptionc                 C   s   	 t | j|S r}   )ra   r2   )rf   attrr
   r
   r   __getattr__M	  r   zTk.__getattr__)NNrp   TFN)rA   rB   rC   r   r   r  r  rx   r  r  r  r
   r
   r
   r   rp     s    

rp   Fc                 C   s   t | |||S r}   )rp   )r  r  r7  r  r
   r
   r   Tcl`	  s   r  c                   @   sR   e Zd Z	 i fddZe Z ZZdd ZeZdd Z	e	Z
ej ZZej ZZdS )Packc                 K   &   	 | j dd| jf| ||  d S )Nr  r  r2   r   r   r  r  r
   r
   r   pack_configurei	  s   

zPack.pack_configurec                 C   r   )Nr  ro  r   r   r
   r
   r   pack_forget	  r   zPack.pack_forgetc                 C   :   	 t | j| jdd| j}d|v r| |d |d< |S )Nr  r   inr7   r2   r   r   r  rf   dr
   r
   r   	pack_info	  
   zPack.pack_infoN)rA   rB   rC   r  r  r  rA  r  ro  r  r   r   r  r  r  r  r
   r
   r
   r   r  d	  s    
r  c                   @   sH   e Zd Z	 i fddZe Z ZZdd ZeZdd Z	e	Z
ej ZZdS )Placec                 K   r  )Nr  r  r  r  r
   r
   r   place_configure	  s   

zPlace.place_configurec                 C   r   )Nr  ro  r   r   r
   r
   r   place_forget	  r   zPlace.place_forgetc                 C   r  )Nr  r   r  r  r  r
   r
   r   
place_info	  r  zPlace.place_infoN)rA   rB   rC   r  r  r  rA  r  ro  r  r   r   r	  r  r
   r
   r
   r   r  	  s    r  c                   @   s   e Zd Z	 i fddZe Z ZZej Z	Zej
 ZZ
dd ZeZdd Zdd ZeZej ZZej ZZej ZZej ZZej ZZd	S )
Gridc                 K   r  )Nr
  r  r  r  r
   r
   r   grid_configure	  s   

zGrid.grid_configurec                 C   r   )Nr
  ro  r   r   r
   r
   r   grid_forget	  r   zGrid.grid_forgetc                 C   r   )Nr
  r   r   r   r
   r
   r   grid_remove	  r   zGrid.grid_removec                 C   r  )Nr
  r   r  r  r  r
   r
   r   	grid_info	  r  zGrid.grid_infoN)rA   rB   rC   r  r
  r  rA  r   r  r  r  r  r  ro  r  r  r   r  r  r   r  r"  r!  r$  r#  r%  r  r
   r
   r
   r   r  	  s     





r  c                   @   s8   e Zd Z	 dd Zi i dfddZdd Zddd	Zd
S )
BaseWidgetc                 C   s   	 |d u rt  }|| _|j| _d }d|v r|d }|d= |sJ| jj }|jd u r,i |_|j|dd }||j|< |dkrDd|f }nd||f }|| _|j	dkrXd| | _	n|j	d | | _	i | _
| j| jj
v rs| jj
| j   | | jj
| j< d S )Nr[   r   r   z!%sz!%s%dr  )rs   r{   r2   r   rA   rG  r=  r   r   r   rX  rx   )rf   r{   r&   r[   countr
   r
   r   _setup	  s4   


zBaseWidget._setupr
   c           	      C   s   	 |r	t ||f}|| _| || | jd u rg | _dd | D }|D ]\}}||= q%| j|| jf| | |  |D ]
\}}|	| | q?d S )Nc                 S   s"   g | ]\}}t |tr||fqS r
   )r   r    rI   r
   r
   r   r   &
  s   " z'BaseWidget.__init__.<locals>.<listcomp>)
r+   
widgetNamer  r   r%   r2   r   r   r  r  )	rf   r{   r  r&   r   extraZclassesr)   r*   r
   r
   r   r   
  s    
zBaseWidget.__init__c                 C   sV   	 t | j D ]}|  q| jd| j | j| jjv r$| jj| j= t	|  d S r  )
r   rX  r  rx   r2   r   r   r   r{   r   r  r
   r
   r   rx   .
  s   zBaseWidget.destroyc                 C   s   | j | j|f| S r}   r   )rf   r[   r   r
   r
   r   _do6
  s   zBaseWidget._doN)r
   )rA   rB   rC   r  r   rx   r  r
   r
   r
   r   r  	  s    r  c                   @   s   e Zd Z	 dS )WidgetN)rA   rB   rC   r
   r
   r
   r   r  ;
  s    r  c                   @      e Zd Z	 di fddZdS )ToplevelNc           	      K   s   	 |r	t ||f}d}dD ]&}||v r3|| }|d dkr&d|d d  }nd| }|||f }||= qt| |d|i | |  }| |  | |  | d| j d S )Nr
   )r  class_r^  r  Zcolormapr  r  r-   r  r  )r+   r  r   r   r  r  r  rx   )	rf   r{   r&   r   r  Zwmkeyr  optrr   r
   r
   r   r   F
  s"   zToplevel.__init__rA   rB   rC   r   r
   r
   r
   r   r  C
      r  c                   @   s,   e Zd Z	 di fddZdd Zdd ZdS )rD   Nc                 K      	 t | |d|| d S )NZbuttonr  r   rf   r{   r&   r   r
   r
   r   r   d
  s   zButton.__init__c                 C      	 | j | jd d S Nflashr   r   r
   r
   r   r  y
  r   zButton.flashc                 C      	 | j | jdS Ninvoker   r   r
   r
   r   r  
  s   zButton.invoke)rA   rB   rC   r   r  r  r
   r
   r
   r   rD   a
  s
    rD   c                   @   s  e Zd Z	 di fddZdd Zdd Zdd	 Zd
d ZdvddZdd Z	dd Z
dd Zdd ZdwddZdxddZdwddZdwddZdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Z d>d? Z!d@dA Z"dvdBdCZ#dDdE Z$dFdG Z%dHdI Z&dJdK Z'dLdM Z(dNdO Z)dPdQ Z*dRdS Z+dTdU Z,dwdVdWZ-e-Z.dXdY Z/e/Z0dZd[ Z1dyd]d^Z2i fd_d`Z3dadb Z4e4 Z5Z6dcdd Z7dedf Z8dzdhdiZ9djdk Z:dldm Z;dndo Z<dpdq Z=drds Z>dtdu Z?dS ){CanvasNc                 K   r  )NZcanvasr  r  r
   r
   r   r   
     	zCanvas.__init__c                 G      	 | j | jdf|  d S )Naddtagr   rC  r
   r
   r   r  
  r  zCanvas.addtagc                 C      	 |  |d| d S NZabover  rf   newtagtagOrIdr
   r
   r   addtag_above
  r   zCanvas.addtag_abovec                 C   s   	 |  |d d S Nr  r  )rf   r  r
   r
   r   
addtag_all
  r   zCanvas.addtag_allc                 C   r  NZbelowr  r  r
   r
   r   addtag_below
  r   zCanvas.addtag_belowc                 C      	 |  |d|||| d S NZclosestr  )rf   r  rW   rX   halostartr
   r
   r   addtag_closest
  r  zCanvas.addtag_closestc                 C   r  NZenclosedr  rf   r  x1y1x2y2r
   r
   r   addtag_enclosed
  rQ  zCanvas.addtag_enclosedc                 C   r  NZoverlappingr  r  r
   r
   r   addtag_overlapping
  rQ  zCanvas.addtag_overlappingc                 C   r  NZwithtagr  r  r
   r
   r   addtag_withtag
  r   zCanvas.addtag_withtagc                 G   s"   	 |  | j| jdf| pd S Nr  r}  rC  r
   r
   r   r  
  s   zCanvas.bboxc                 C   s.   	 | j | jd||d |r| | d S d S r  r  )rf   r  r  r  r
   r
   r   
tag_unbind
  s
   zCanvas.tag_unbindc                 C   s   	 |  | jd|f|||S r  r  )rf   r  r  r
  r   r
   r
   r   tag_bind
  s   zCanvas.tag_bindc                 C      	 | j | j | jd||S )Ncanvasxrg  )rf   Zscreenxgridspacingr
   r
   r   r!  
  rk  zCanvas.canvasxc                 C   r   )Ncanvasyrg  )rf   Zscreenyr"  r
   r
   r   r#  
  rk  zCanvas.canvasyc                    s.   	  fdd j  j  jdf| D S )Nc                    r   r
   )r2   r   r   r   r
   r   r   
  r   z!Canvas.coords.<locals>.<listcomp>coordsr  rC  r
   r   r   r$  
  s   
zCanvas.coordsc              	   C   s`   	 t |}|d }t|ttfr|d d }ni }| j| jj| jd|g|| || R  S )Nr  r  )	r   r   r   r   r2   r   r   r   r  )rf   itemTyper   r   r&   r
   r
   r   _create
  s   
zCanvas._createc                 O   r  )NZarcr&  r   r
   r
   r   
create_arc
  r   zCanvas.create_arcc                 O   r  Nrz  r'  r   r
   r
   r   create_bitmap
  r   zCanvas.create_bitmapc                 O   r  )Nr4  r'  r   r
   r
   r   create_image  r   zCanvas.create_imagec                 O   r  )Nliner'  r   r
   r
   r   create_line  r   zCanvas.create_linec                 O   r  )NZovalr'  r   r
   r
   r   create_oval	  r   zCanvas.create_ovalc                 O   r  )NZpolygonr'  r   r
   r
   r   create_polygon  r   zCanvas.create_polygonc                 O   r  )NZ	rectangler'  r   r
   r
   r   create_rectangle  r   zCanvas.create_rectanglec                 O   r  Ntextr'  r   r
   r
   r   create_text  r   zCanvas.create_textc                 O   r  )Nr   r'  r   r
   r
   r   create_window  r   zCanvas.create_windowc                 G   r   )Ndcharsr   rC  r
   r
   r   r5    rV  zCanvas.dcharsc                 G   r   Nr,  r   rC  r
   r
   r   r,  "  r  zCanvas.deletec                 G   r   )Ndtagr   rC  r
   r
   r   r7  &  rV  zCanvas.dtagc                 G   "   	 |  | j| jdf| pdS )Nfindr
   r}  rC  r
   r
   r   r9  +     zCanvas.findc                 C      	 |  d|S r  r9  rf   r  r
   r
   r   
find_above0  r   zCanvas.find_abovec                 C      	 |  dS r	  r<  r   r
   r
   r   find_all4  r  zCanvas.find_allc                 C   r;  r  r<  r=  r
   r
   r   
find_below8  r   zCanvas.find_belowc                 C      	 |  d||||S r  r<  )rf   rW   rX   r  r  r
   r
   r   find_closest<  r  zCanvas.find_closestc                 C   rB  r  r<  rf   r  r  r  r  r
   r
   r   find_enclosedC  r  zCanvas.find_enclosedc                 C   rB  r  r<  rD  r
   r
   r   find_overlappingH  r  zCanvas.find_overlappingc                 C   r;  r  r<  r=  r
   r
   r   find_withtagM  r   zCanvas.find_withtagc                 G   s   	 | j | jdf| S r   r   rC  r
   r
   r   rV   Q  r   zCanvas.focusc                 G       	 | j | j | jdf| S )Ngettagsr  rC  r
   r
   r   rI  U     zCanvas.gettagsc                 G   r   Nicursorr   rC  r
   r
   r   rL  Z  rV  zCanvas.icursorc                 G   rH  Nr  rU  rC  r
   r
   r   r  _  s   zCanvas.indexc                 G   r   Ninsertr   rC  r
   r
   r   rO  c  rV  zCanvas.insertc                 C       	 | j | jdf|d| f S Nitemcgetr-   r   )rf   r  r/  r
   r
   r   rR  h  rJ  zCanvas.itemcgetc                 K      	 |  d|f||S Nitemconfigurer  rf   r  r&   r   r
   r
   r   rU  m  s   zCanvas.itemconfigurec                 G   r   rF  r   rC  r
   r
   r   	tag_lower|  rV  zCanvas.tag_lowerc                 G   r   )Nmover   rC  r
   r
   r   rX    r  zCanvas.mover\   c                 C   s   	 | j | jd||| d S )NrM  r   )rf   r  rW   rX   r
   r
   r   rM    s   zCanvas.movetoc                 K   s    	 | j | jdf| || S )N
postscriptr  r  r
   r
   r   rY    s   
zCanvas.postscriptc                 G   r   rI  r   rC  r
   r
   r   	tag_raise  rV  zCanvas.tag_raisec                 G   r   Nscaler   rC  r
   r
   r   r\    r  zCanvas.scalec                 C   rR  Nscanmarkr   r  r
   r
   r   	scan_mark  r  zCanvas.scan_mark
   c                 C      	 | j | jdd||| d S Nr^  dragtor   )rf   rW   rX   Zgainr
   r
   r   scan_dragto  s   zCanvas.scan_dragtoc                 C   rR  )Nselectadjustr   rf   r  r  r
   r
   r   select_adjust  r  zCanvas.select_adjustc                 C      	 | j | jdd d S )Nrf  r  r   r   r
   r
   r   select_clear  r   zCanvas.select_clearc                 C   rR  )Nrf  fromr   rh  r
   r
   r   select_from  r  zCanvas.select_fromc                 C   s   	 | j | jddpd S )Nrf  r   r   r   r
   r
   r   select_item  r   zCanvas.select_itemc                 C   rR  )Nrf  tor   rh  r
   r
   r   	select_to  r  zCanvas.select_toc                 C      	 | j | jd|pd S Nr    r   r=  r
   r
   r   r      r   zCanvas.typer<  r}   r   )r\   r\   )ra  )@rA   rB   rC   r   r  r  r
  r  r  r  r  r  r  r  r  r!  r#  r$  r&  r(  r*  r+  r-  r.  r/  r0  r3  r4  r5  r,  r7  r9  r>  r@  rA  rC  rE  rF  rG  rV   rI  rL  r  rO  rR  rU  
itemconfigrW  rG  rX  rM  rY  rZ  r>  rL  r\  r`  re  ri  rk  rm  rn  rp  r    r
   r
   r
   r   r  
  s|    



	


	
	
r  c                       sT   e Zd Z	 di fddZ fddZdd Zdd	 Zd
d Zdd Zdd Z	  Z
S )CheckbuttonNc                 K   r  NZcheckbuttonr  r  r
   r
   r   r     r  zCheckbutton.__init__c                    sB   | ds| jj }td7 ad| t |d< t || d S )Nr[   r   !)r   r   rA   rG  _checkbutton_countsuperr  )rf   r{   r&   r[   r   r
   r   r    s
   
zCheckbutton._setupc                 C   r  Ndeselectr   r   r
   r
   r   r{    r   zCheckbutton.deselectc                 C   r  r  r   r   r
   r
   r   r    r   zCheckbutton.flashc                 C   r  r  r   r   r
   r
   r   r    r   zCheckbutton.invokec                 C   r  Nrf  r   r   r
   r
   r   rf    r   zCheckbutton.selectc                 C   r  )Ntoggler   r   r
   r
   r   r}    r   zCheckbutton.toggle)rA   rB   rC   r   r  r{  r  r  rf  r}  __classcell__r
   r
   ry  r   rt    s    rt  c                   @   s   e Zd Z	 di fddZdddZdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd ZeZdd ZeZdd ZeZdd ZeZdd ZeZdd ZeZdS )EntryNc                 K   r  )Nentryr  r  r
   r
   r   r     s   
zEntry.__init__c                 C      	 | j | jd|| d S r6  r   rf   firstZlastr
   r
   r   r,    r   zEntry.deletec                 C   r  Nr   r   r   r
   r
   r   r     r   z	Entry.getc                 C      	 | j | jd| d S rK  r   rf   r  r
   r
   r   rL    r   zEntry.icursorc                 C      	 | j | j | jd|S rM  rU  r  r
   r
   r   r       zEntry.indexc                 C   r  rN  r   )rf   r  r"  r
   r
   r   rO    r   zEntry.insertc                 C   rL  r]  r   r  r
   r
   r   r`    r   zEntry.scan_markc                 C   rL  rc  r   r  r
   r
   r   re       zEntry.scan_dragtoc                 C   rL  )Nr:  rg  r   r  r
   r
   r   selection_adjust#  r   zEntry.selection_adjustc                 C   rj  Nr:  r  r   r   r
   r
   r   r;  )  r   zEntry.selection_clearc                 C   rL  )Nr:  rl  r   r  r
   r
   r   selection_from/  r   zEntry.selection_fromc                 C      	 | j | j | jddS Nr:  Zpresentr`  r   r
   r
   r   selection_present5  r  zEntry.selection_presentc                 C   rR  )Nr:  ranger   rf   r  endr
   r
   r   selection_range=  r  zEntry.selection_rangec                 C   rL  )Nr:  ro  r   r  r
   r
   r   selection_toC  r   zEntry.selection_tor}   )rA   rB   rC   r   r,  r   rL  r  rO  r`  re  r  ri  r;  rk  r  rm  r  Zselect_presentr  Zselect_ranger  rp  r
   r
   r
   r   r    s,    
r  c                   @   r  )FrameNc                 K   s`   	 t ||f}d}d|v rd|d f}|d= nd|v r$d|d f}|d= t| |d|i | d S )Nr
   r  z-classr^  rq  )r+   r  r   )rf   r{   r&   r   r  r
   r
   r   r   M  s   zFrame.__init__r  r
   r
   r
   r   r  J  r  r  c                   @   r  )LabelNc                 K   r  )Nlabelr  r  r
   r
   r   r   a  s   zLabel.__init__r  r
   r
   r
   r   r  ^  r  r  c                   @   s   e Zd Z	 di fddZdd Zdd Zdd	 Zd(d
dZd(ddZdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZeZd(ddZeZdd ZeZd(d d!ZeZd"d# Zd$d% Zd(d&d'ZeZdS ))ListboxNc                 K   r  )NZlistboxr  r  r
   r
   r   r   y  r  zListbox.__init__c                 C   r  Nactivater   r  r
   r
   r   r    r   zListbox.activatec                 C      	 |  | j| jd|pd S r  r}  r  r
   r
   r   r       zListbox.bboxc                 C   s   	 |  | j| jdpdS )Ncurselectionr
   r}  r   r
   r
   r   r    r  zListbox.curselectionc                 C   r  r6  r   r  r
   r
   r   r,    r   zListbox.deletec                 C   s8   	 |d ur| j | j | jd||S | j | jd|S r  r  r  r
   r
   r   r     s   
zListbox.getc                 C   ,   	 | j | jd|}|dkrd S | j |S Nr  r   r2   r   r   r   rf   r  rh   r
   r
   r   r       zListbox.indexc                 G   s   	 | j | jd|f|  d S rN  r   )rf   r  elementsr
   r
   r   rO       zListbox.insertc                 C   r  )NnearestrU  )rf   rX   r
   r
   r   r    r  zListbox.nearestc                 C   rR  r]  r   r  r
   r
   r   r`    r  zListbox.scan_markc                 C   rR  rc  r   r  r
   r
   r   re       zListbox.scan_dragtoc                 C   r  Nseer   r  r
   r
   r   r    r   zListbox.seec                 C   rL  )Nr:  r  r   r  r
   r
   r   selection_anchor  r   zListbox.selection_anchorc                 C   rR  r  r   r  r
   r
   r   r;    s   
zListbox.selection_clearc                 C      	 | j | j | jdd|S )Nr:  Zincludesr`  r  r
   r
   r   selection_includes     
zListbox.selection_includesc                 C   rR  )Nr:  r   r   r  r
   r
   r   selection_set  rV  zListbox.selection_setc                 C      	 | j | j | jdS )Nr#  rU  r   r
   r
   r   r#    r   zListbox.sizec                 C   rP  rQ  r   rf   r  r/  r
   r
   r   rR    rJ  zListbox.itemcgetc                 K   rS  rT  r  r  r
   r
   r   rU    s   zListbox.itemconfigurer}   )rA   rB   rC   r   r  r  r  r,  r   r  rO  r  r`  re  r  r  Zselect_anchorr;  rk  r  Zselect_includesr  Z
select_setr#  rR  rU  rs  r
   r
   r
   r   r  v  s4    






r  c                   @   s  e Zd Z	 di fddZd5ddZdd Zi fd	d
Zi fddZi fddZi fddZ	i fddZ
i fddZi fddZi fddZi fddZi fddZi fddZi fdd Zd6d!d"Zd#d$ Zd6d%d&ZeZd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 ZdS )7MenuNc                 K   r  Nmenur  r  r
   r
   r   r        zMenu.__init__r\   c                 C   s   	 | j d| j||| d S )Ntk_popupr   )rf   rW   rX   r  r
   r
   r   r    r  zMenu.tk_popupc                 C   r  r  r   r  r
   r
   r   r    r   zMenu.activatec                 K   s&   	 | j | jd|f| ||  d S Nr   r  )rf   r%  r&   r   r
   r
   r   r     s   

zMenu.addc                 K      	 |  d|p| d S NZcascader   r  r
   r
   r   add_cascade  r   zMenu.add_cascadec                 K   r  ru  r  r  r
   r
   r   add_checkbutton  r   zMenu.add_checkbuttonc                 K   r  Nr>  r  r  r
   r
   r   add_command  r   zMenu.add_commandc                 K   r  NZradiobuttonr  r  r
   r
   r   add_radiobutton  r   zMenu.add_radiobuttonc                 K   r  N	separatorr  r  r
   r
   r   add_separator  r   zMenu.add_separatorc                 K   s(   	 | j | jd||f| ||  d S rN  r  )rf   r  r%  r&   r   r
   r
   r   rO    s   

zMenu.insertc                 K      	 |  |d|p| d S r  rO  r  r
   r
   r   insert_cascade  r   zMenu.insert_cascadec                 K   r  ru  r  r  r
   r
   r   insert_checkbutton   r   zMenu.insert_checkbuttonc                 K   r  r  r  r  r
   r
   r   insert_command$  r   zMenu.insert_commandc                 K   r  r  r  r  r
   r
   r   insert_radiobutton(  r   zMenu.insert_radiobuttonc                 K   r  r  r  r  r
   r
   r   insert_separator,  r   zMenu.insert_separatorc                 C   s   	 |d u r|}|  ||  |}}|d u s|d u rd\}}t||d D ]}d| |v r=t| |d}|r=| | q%| j| jd|| d S )N)r   r  r   r>  r,  )	r  r  entryconfigr   	entrycgetr   r2   r   r   )rf   index1index2Z
num_index1Z
num_index2rh   r'   r
   r
   r   r,  0  s   
zMenu.deletec                 C   s   	 | j | jd|d| S )Nr  r-   r   r  r
   r
   r   r  @  r   zMenu.entrycgetc                 K   rS  )Nentryconfigurer  r  r
   r
   r   r  D  r   zMenu.entryconfigurec                 C   r  r  r  r  r
   r
   r   r  J  r  z
Menu.indexc                 C      	 | j | jd|S r  r   r  r
   r
   r   r  P  r  zMenu.invokec                 C   r  )Npostr   r  r
   r
   r   r  U  r   z	Menu.postc                 C   r  rr  r   r  r
   r
   r   r    Y  r   z	Menu.typec                 C   r  )Nunpostr   r   r
   r
   r   r  ]  r   zMenu.unpostc                 C   r  )N	xpositionrU  r  r
   r
   r   r  a  rV  zMenu.xpositionc                 C   r  )N	ypositionrU  r  r
   r
   r   r  f  r  zMenu.ypositionr\   r}   )rA   rB   rC   r   r  r  r   r  r  r  r  r  rO  r  r  r  r  r  r,  r  r  r  r  r  r  r    r  r  r  r
   r
   r
   r   r    s8    
	

r  c                   @   r  )
MenubuttonNc                 K      t | |d|| d S )N
menubuttonr  r  r
   r
   r   r   o     zMenubutton.__init__r  r
   r
   r
   r   r  l  r  r  c                   @   r  )MessageNc                 K   r  )Nmessager  r  r
   r
   r   r   v  r  zMessage.__init__r  r
   r
   r
   r   r  s  r  r  c                   @   s<   e Zd Z	 di fddZdd Zdd Zdd	 Zd
d ZdS )RadiobuttonNc                 K   r  r  r  r  r
   r
   r   r   }  r  zRadiobutton.__init__c                 C   r  rz  r   r   r
   r
   r   r{    rf  zRadiobutton.deselectc                 C   r  r  r   r   r
   r
   r   r    r   zRadiobutton.flashc                 C   r  r  r   r   r
   r
   r   r    r   zRadiobutton.invokec                 C   r  r|  r   r   r
   r
   r   rf    r   zRadiobutton.select)rA   rB   rC   r   r{  r  r  rf  r
   r
   r
   r   r  z  s    r  c                   @   s>   e Zd Z	 di fddZdd Zdd Zddd	Zd
d ZdS )ScaleNc                 K   r  r[  r  r  r
   r
   r   r        zScale.__init__c              
   C   sF   	 | j | jd}z| j |W S  tttfy"   | j | Y S w r  )r2   r   r   r   r   r#   ry   r   r   r
   r
   r   r     s   z	Scale.getc                 C   r  Nr   r   r   r
   r
   r   r     r   z	Scale.setc                 C      	 |  | j| jd|S )Nr$  r}  r   r
   r
   r   r$    r  zScale.coordsc                 C      	 | j | jd||S Nidentifyr   r  r
   r
   r   r    rf  zScale.identifyr}   )rA   rB   rC   r   r   r   r$  r  r
   r
   r
   r   r    s    
r  c                   @   sN   e Zd Z	 di fddZdddZdd Zdd	 Zd
d Zdd Zdd Z	dS )	ScrollbarNc                 K   r  )NZ	scrollbarr  r  r
   r
   r   r     r  zScrollbar.__init__c                 C   rq  r  r   r  r
   r
   r   r    r  zScrollbar.activatec                 C   r   )NrR   rg  )rf   ZdeltaxZdeltayr
   r
   r   rR     s   zScrollbar.deltac                 C   r   )NrO  rg  r  r
   r
   r   rO    r  zScrollbar.fractionc                 C   r  r  r   r  r
   r
   r   r    rf  zScrollbar.identifyc                 C   s   	 |  | j| jdS r  )r  r2   r   r   r   r
   r
   r   r     r  zScrollbar.getc                 C   r  r  r   r  r
   r
   r   r     rQ  zScrollbar.setr}   )
rA   rB   rC   r   r  rR   rO  r  r   r   r
   r
   r
   r   r    s    
	r  c                   @   s  e Zd Z	 di fddZdd Zdd Zdd	 Zdjd
dZdjddZdd Z	dkddZ
dd ZdjddZdd Zdd Zdd Zdd ZdjddZd d! Zdjd"d#Zi fd$d%Zd&d' Zd(d) Zd*d+ Zdjd,d-Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zi fd8d9Zd:d; Zd<d= Z d>d? Z!d@dA Z"			dldBdCZ#dDdE Z$dFdG Z%djdHdIZ&djdJdKZ'dLdM Z(djdNdOZ)e)Z*dPdQ Z+djdRdSZ,djdTdUZ-djdVdWZ.djdXdYZ/djdZd[Z0d\d] Z1djd^d_Z2d`da Z3djdbdcZ4e4Z5i fdddeZ6dfdg Z7dhdi Z8dS )mTextNc                 K   r  r1  r  r  r
   r
   r   r     s   zText.__init__c                 C   r  r  r}  r  r
   r
   r   r    s   z	Text.bboxc              	   C   s    	 | j | j | jd|||S )Ncomparer`  )rf   r  opr  r
   r
   r   r    s   zText.comparec                 G   sV   	 dd |D }|||g7 }| j j| jdg|R  pd }|d ur)t|dkr)|fS |S )Nc                 S   s   g | ]}| d sd| qS )r-   r.  )
startswith)rJ   argr
   r
   r   r   (  rL   zText.count.<locals>.<listcomp>r     )r2   r   r   r   )rf   r  r  r   r   r
   r
   r   r    s   z
Text.countc                 C   s8   	 |d u r| j | j | jdS | j | jd| d S )Ndebugr`  r   r
   r
   r   r  0  s   z
Text.debugc                 C   r  r6  r   rf   r  r  r
   r
   r   r,  7  r   zText.deletec                 C   r  )N	dlineinfor}  r  r
   r
   r   r  ;  r  zText.dlineinfoc           
   	   K   s   	 g }d }d }|sg }|fdd}|}zEt |ts | | }}|d|g7 }|D ]}	||	 r5|d|	  q(|| |rB|| | jj| jdg|R   |W |rX| | S S |ra| | w w )Nc                 S   s   | | ||f d S r}   )rd   )r6   r	   r  rZ  r
   r
   r   append_tripleV  s   z Text.dump.<locals>.append_triplez-commandr-   dump)r   r   r   rd   r2   r   r   r   )
rf   r  r  r>  r   r   	func_namerZ  r  r6   r
   r
   r   r  A  s2   


z	Text.dumpc                 G   s   	 | j j| jdg|R  S )Neditr   rC  r
   r
   r   r  i  s   z	Text.editc                 C   r;  )NZmodifiedr  )rf   r  r
   r
   r   edit_modifiedx  s   zText.edit_modifiedc                 C   r?  )NZredor  r   r
   r
   r   	edit_redo  s   
zText.edit_redoc                 C   r?  )Nresetr  r   r
   r
   r   
edit_reset     
zText.edit_resetc                 C   r?  r  r  r   r
   r
   r   edit_separator  s   
zText.edit_separatorc                 C   r?  )NZundor  r   r
   r
   r   	edit_undo  s   
zText.edit_undoc                 C   r  r  r   r  r
   r
   r   r     r   zText.getc                 C   L   	 |d d dkrd| }|dd  dkr|d d }| j | jdd||S )Nr   r-   r  r  r4  r  r   r  r
   r
   r   
image_cget     zText.image_cgetc                 K      	 |  dd|f||S )Nr4  r  r  r  r
   r
   r   image_configure  r   zText.image_configurec                 K   s&   	 | j j| jdd|g| ||R  S )Nr4  r  r  r  r
   r
   r   image_create  s   

zText.image_createc                 C   s   	 | j | jddS r3  r   r   r
   r
   r   r6    r   zText.image_namesc                 C   s   	 t | j| jd|S rM  )r   r2   r   r   r  r
   r
   r   r    r   z
Text.indexc                 G   s    	 | j | jd||f|  d S rN  r   )rf   r  charsr   r
   r
   r   rO    s   zText.insertc                 C   s   	 | j | jdd||fS )Nr_  Zgravityr   )rf   markName	directionr
   r
   r   mark_gravity  r1  zText.mark_gravityc                 C   r  )Nr_  r5  r  r   r
   r
   r   
mark_names  r  zText.mark_namesc                 C   rR  )Nr_  r   r   )rf   r  r  r
   r
   r   mark_set  r  zText.mark_setc                 G      	 | j | jddf|  d S )Nr_  Zunsetr   )rf   Z	markNamesr
   r
   r   
mark_unset  r  zText.mark_unsetc                 C      	 | j | jdd|pd S )Nr_  nextr   r  r
   r
   r   	mark_next  r   zText.mark_nextc                 C   r  )Nr_  Zpreviousr   r  r
   r
   r   mark_previous  r   zText.mark_previousc                 K   s*   	 | j j| jdd|g| ||R   d S )Npeerr  r  )rf   ZnewPathNamer&   r   r
   r
   r   peer_create  s   
zText.peer_createc                 C   r  )Nr
  r5  r  r   r
   r
   r   
peer_names  rV  zText.peer_namesc                 G   s$   	 | j j| jd|||g|R   d S )Nr   r   )rf   r  r  r  r   r
   r
   r   r     s   "zText.replacec                 C   rR  r]  r   r  r
   r
   r   r`    r  zText.scan_markc                 C   rR  rc  r   r  r
   r
   r   re    r  zText.scan_dragtoc                 C   s   	 | j dg}|r|d |r|d |r|d |r"|d |r)|d |
r0|d |	r<|d ||	 |rI|d	 d
krI|d || || |rZ|| t| jt|S )Nr   z	-forwardsz
-backwardsz-exactz-regexpz-nocasez-elidez-countr   r-   r!  )r   rd   r   r2   r   r   )rf   r0  r  Z	stopindexZforwardsZ	backwardsexactZregexpZnocaser  Zelider   r
   r
   r   r     s   


zText.searchc                 C   r  r  r   r  r
   r
   r   r    r   zText.seec                 G   s"   	 | j | jdd||f|  d S )Ntagr   r   )rf   tagNamer  r   r
   r
   r   tag_add  s   zText.tag_addc                 C   s0   	 | j | jdd||d |r| | d S d S )Nr  r  r\   r  )rf   r  r  r  r
   r
   r   r     s
   zText.tag_unbindc                 C   s   	 |  | jdd|f|||S )Nr  r  r  )rf   r  r  r
  r   r
   r
   r   r  '  s   zText.tag_bindc                 C   r  )Nr   r-   r  r  r  r  r   )rf   r  r/  r
   r
   r   tag_cget0  r  zText.tag_cgetc                 K   r  )Nr  r  r  )rf   r  r&   r   r
   r
   r   tag_configure8  r   zText.tag_configurec                 G   r  )Nr  r,  r   )rf   ZtagNamesr
   r
   r   
tag_delete>  r  zText.tag_deletec                 C   rR  )Nr  rG  r   )rf   r  rH  r
   r
   r   rW  B  rV  zText.tag_lowerc                 C   r  )Nr  r5  r  r  r
   r
   r   	tag_namesG  rz  zText.tag_namesc              
   C   "   	 | j | j | jdd|||S )Nr  Z	nextranger  rf   r  r  r  r
   r
   r   tag_nextrangeL     zText.tag_nextrangec              
   C   r  )Nr  Z	prevranger  r  r
   r
   r   tag_prevrangeS  r  zText.tag_prevrangec                 C   rR  )Nr  rJ  r   )rf   r  rK  r
   r
   r   rZ  Z  s   zText.tag_raisec                 C   r  )Nr  Zrangesr  )rf   r  r
   r
   r   
tag_ranges`  r  zText.tag_rangesc                 C   rb  )Nr  r   r   r  r
   r
   r   
tag_removee  s   zText.tag_removec                 C   r  )Nr   r-   r  r  r   r  r   r  r
   r
   r   window_cgetj  r  zText.window_cgetc                 K   r  )Nr   r  r  r  r
   r
   r   window_configurer  r   zText.window_configurec                 K   s(   	 | j | jdd|f| ||  d S )Nr   r  r  r  r
   r
   r   window_createx  s   
zText.window_createc                 C   r  )Nr   r5  r  r   r
   r
   r   window_names~  rW  zText.window_namesc                 G   r  )NrY  z
-pickplacer   )rf   rq   r
   r
   r   yview_pickplace  r  zText.yview_pickplacer}   r<  )NNNNNNNN)9rA   rB   rC   r   r  r  r  r  r,  r  r  r  r  r  r  r  r  r   r  r  r  r6  r  rO  r  r  r  r  r  r	  r  r  r   r`  re  r   r  r  r  r  r  r  Z
tag_configr  rW  r  r  r  rZ  r  r  r  r  Zwindow_configr  r  r   r
   r
   r
   r   r    sv    


(







	







r  c                   @   s    e Zd Z	 dddZdd ZdS )_setitNc                 C   s   || _ || _|| _d S r}   )_setit__value_setit__var_setit__callback)rf   varr	   r   r
   r
   r   r     s   
z_setit.__init__c                 G   s4   | j | j | jd ur| j| jg|R   d S d S r}   )r#  r   r"  r$  rC  r
   r
   r   r     s   
z_setit.__call__r}   rD  r
   r
   r
   r   r!    s    
r!  c                   @   rE  )
OptionMenuc           
      O   s   	 d|dt ddd}t| |d| d| _t| ddd	 }| _|j| _|d
}d
|v r/|d
= |r;t	dt
t| |j|t|||d |D ]}	|j|	t||	|d qH|| d< d S )Nr,   r   r'   )ZborderwidthZtextvariableZindicatoronZreliefr  Zhighlightthicknessr  Ztk_optionMenur  r   )r[   Ztearoffr>  zunknown option -)r  r>  )ZRAISEDr  r   r  r  _OptionMenu__menur   Zmenunamer   ry   r  r0   r  r!  )
rf   r{   r   r	   r  kwargsr   r  r   r*   r
   r
   r   r     s,   


zOptionMenu.__init__c                 C   s   |dkr| j S t| |S r  )r'  r  rB  r   r
   r
   r   rB    s   zOptionMenu.__getitem__c                 C   s   	 t |  d | _d S r}   )r  rx   r'  r   r
   r
   r   rx     s   

zOptionMenu.destroyN)rA   rB   rC   r   rB  rx   r
   r
   r
   r   r&    s
    r&  c                   @   sf   e Zd Z	 dZdi dfddZdd Zdd Zd	d
 Zdd Zdd Z	e	Z
dd Zdd Zdd ZdS )Imager   Nc           	      K   s   d | _ |d u rtd}t|d|| _|s!t jd7  _dtjf }|r,|r,t||f}n|r0|}d}| D ]\}}t|rC| 	|}|d| |f }q6| j
dd||f|  || _ d S )	Nzcreate imager2   r   z	pyimage%rr
   r-   r4  r  )r[   rs   ra   r2   r)  _last_idr+   r%   r  r   r   )	rf   Zimgtyper[   r&   r{   r   r  r)   r*   r
   r
   r   r     s    

zImage.__init__c                 C   s   | j S r}   )r[   r   r
   r
   r   rF     s    zImage.__str__c                 C   s8   | j rz| jdd| j  W d S  ty   Y d S w d S )Nr4  r,  )r[   r2   r   ry   r   r
   r
   r   r     s   zImage.__del__c                 C   s   | j | jdd| | d S Nr  r-   r2   r   r[   r  r
   r
   r   r    s   zImage.__setitem__c                 C      | j | jdd| S r+  r,  r  r
   r
   r   rB    r  zImage.__getitem__c                 K   sx   	 d}t | D ]%\}}|d ur.|d dkr|d d }t|r&| |}|d| |f }q	| j| jdf|  d S )Nr
   r  r  r-   rA  )r+   r%   r  r   r2   r   r[   )rf   r   r   r)   r*   r
   r
   r   r    s   
zImage.configurec                 C   rT  )Nr4  rZ   r2   r   r   r[   r   r
   r
   r   rZ     rW  zImage.heightc                 C   r]  )Nr4  r    r,  r   r
   r
   r   r      r   z
Image.typec                 C   rT  )Nr4  rY   r.  r   r
   r
   r   rY     rW  zImage.width)rA   rB   rC   r*  r   rF   r   r  rB  r  rA  rZ   r    rY   r
   r
   r
   r   r)    s    r)  c                   @   s~   e Zd Z	 di dfddZdd Zdd Zdd	 Zd
d ZdddZdddZ	dd Z
dddZdddZdd Zdd ZdS )
PhotoImageNc                 K       	 t j| d|||fi | d S )NZphotor)  r   rf   r[   r&   r{   r   r
   r
   r   r     s   zPhotoImage.__init__c                 C   r  )Nblankr,  r   r
   r
   r   r3  	  r   zPhotoImage.blankc                 C   r  r  r,  )rf   r/  r
   r
   r   r    r   zPhotoImage.cgetc                 C   r-  r  r,  r  r
   r
   r   rB    r  zPhotoImage.__getitem__c                 C   s$   	 t | jd}| j|d| j |S )Nrz   copyr/  r2   r   r[   )rf   	destImager
   r
   r   r4    s   zPhotoImage.copyr\   c                 C   6   	 t | jd}|dkr|}| j|d| jd|| |S )Nrz   r\   r4  z-zoomr5  rf   rW   rX   r6  r
   r
   r   zoom  
   zPhotoImage.zoomc                 C   r7  )Nrz   r\   r4  z
-subsampler5  r8  r
   r
   r   	subsample&  r:  zPhotoImage.subsamplec                 C   r  r  r,  r  r
   r
   r   r   0  r   zPhotoImage.getc                 C   sJ   	 | j d|f}|r|d dkr|dd  }|d t| }| j| d S )Nputr   -tor   )r=  r[   r   r2   r   )rf   r  ro  r   r
   r
   r   r<  4  s   zPhotoImage.putc                 C   sB   	 | j d|f}|r|d|f }|r|d t| }| j| d S )Nwritez-format)z-fromr>  )rf   filenameformatZfrom_coordsr   r
   r
   r   r?  ?  s   zPhotoImage.writec              	   C   s    	 | j | j | jdd||S )Ntransparencyr   )r2   r   r   r[   r  r
   r
   r   transparency_getI  s   zPhotoImage.transparency_getc                 C   rb  )NrB  r   r,  )rf   rW   rX   r   r
   r
   r   transparency_setN  r  zPhotoImage.transparency_setr  r}   r<  )rA   rB   rC   r   r3  r  rB  r4  r9  r;  r   r<  r?  rC  rD  r
   r
   r
   r   r/    s    






r/  c                   @   s   e Zd Z	 di dfddZdS )BitmapImageNc                 K   r0  r)  r1  r2  r
   r
   r   r   V  s   zBitmapImage.__init__r  r
   r
   r
   r   rE  S  s    rE  c                  C      t dj} | | ddS )Nzuse image_names()r4  r5  rs   r2   r.   r   r2   r
   r
   r   r6  ]     
r6  c                  C   rF  )Nzuse image_types()r4  r7  rG  rH  r
   r
   r   r8  b  rI  r8  c                   @   s   e Zd Z	 di fddZdd Zd*ddZdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd*d d!Zd"d# Zd$d% Zd&d' Zd(d) ZdS )+SpinboxNc                 K   r  )NZspinboxr  r  r
   r
   r   r   j  s   zSpinbox.__init__c                 C   r  r  r}  r  r
   r
   r   r    s   zSpinbox.bboxc                 C   r  r6  r   r  r
   r
   r   r,    s   zSpinbox.deletec                 C   r  r  r   r   r
   r
   r   r     r   zSpinbox.getc                 C   r  rK  r   r  r
   r
   r   rL       zSpinbox.icursorc                 C   r  r  r   r  r
   r
   r   r    r   zSpinbox.identifyc                 C   r  rM  r   r  r
   r
   r   r    r  zSpinbox.indexc                 C   r  rN  r   )rf   r  rg   r
   r
   r   rO    r   zSpinbox.insertc                 C   r  r  r   rf   elementr
   r
   r   r    rK  zSpinbox.invokec                 G   r8  )Nr^  r
   r}  rC  r
   r
   r   r^    r:  zSpinbox.scanc                 C   r;  Nr_  r^  r  r
   r
   r   r`    s   zSpinbox.scan_markc                 C   r;  )Nrd  rO  r  r
   r
   r   re    s   	zSpinbox.scan_dragtoc                 G   r8  )Nr:  r
   r}  rC  r
   r
   r   r:    r:  zSpinbox.selectionc                 C   r;  )Nrg  r:  r  r
   r
   r   r       zSpinbox.selection_adjustc                 C   r?  )Nr  rP  r   r
   r
   r   r;    s   
zSpinbox.selection_clearc                 C   s   	 | j | jdd|S )Nr:  rM  r   rL  r
   r
   r   selection_element  r   zSpinbox.selection_elementc                 C      	 |  d| d S )Nrl  rP  r  r
   r
   r   r    r   zSpinbox.selection_fromc                 C   r  r  r`  r   r
   r
   r   r    r  zSpinbox.selection_presentc                 C   s   	 |  d|| d S )Nr  rP  r  r
   r
   r   r    r   zSpinbox.selection_rangec                 C   rS  )Nro  rP  r  r
   r
   r   r    r   zSpinbox.selection_tor}   )rA   rB   rC   r   r  r,  r   rL  r  r  rO  r  r^  r`  re  r:  r  r;  rR  r  r  r  r  r
   r
   r
   r   rJ  g  s,    
	
rJ  c                   @   r  )
LabelFrameNc                 K   r  )NZ
labelframer  r  r
   r
   r   r     s   zLabelFrame.__init__r  r
   r
   r
   r   rT    r  rT  c                   @   s   e Zd Z	 di fddZdd Zdd ZeZdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zd ddZeZdd ZdS )!PanedWindowNc                 K   r  )NZpanedwindowr  r  r
   r
   r   r   4  s   zPanedWindow.__init__c                 K   s$   	 | j | jd|f| |  d S r  r  )rf   r[  r   r
   r
   r   r   D  s   "zPanedWindow.addc                 C   r  Nro  r   )rf   r[  r
   r
   r   r   N  r*  zPanedWindow.removec                 C   r  r  r   r  r
   r
   r   r  W  r   zPanedWindow.identifyc                 G   r8  )Nproxyr
   r}  rC  r
   r
   r   rW  c  r:  zPanedWindow.proxyc                 C   r?  NZcoordrW  r   r
   r
   r   proxy_coordh  r  zPanedWindow.proxy_coordc                 C   r?  rV  rY  r   r
   r
   r   proxy_forgetm  r  zPanedWindow.proxy_forgetc                 C   r  Nr  rY  r  r
   r
   r   proxy_placer  s   zPanedWindow.proxy_placec                 G   r8  )Nsashr
   r}  rC  r
   r
   r   r^  w  r:  zPanedWindow.sashc                 C   r;  rX  r^  r  r
   r
   r   
sash_coord|  rQ  zPanedWindow.sash_coordc                 C   r;  rN  r_  r  r
   r
   r   	sash_mark  s   zPanedWindow.sash_markc                 C   r  r\  r_  )rf   r  rW   rX   r
   r
   r   
sash_place  r  zPanedWindow.sash_placec                 C   rP  )Npanecgetr-   r   )rf   r[  r/  r
   r
   r   rc    s   zPanedWindow.panecgetc                 K   sf   	 |d u r|s|  | jd|S t|tr!|s!| | jd|d| S | j| jd|f| ||  d S )Npaneconfigurer-   )r  r   r   r   r  r2   r   r  rV  r
   r
   r   rd    s   C

zPanedWindow.paneconfigurec                 C   r  )Npanesr  r   r
   r
   r   re    r   zPanedWindow.panesr}   )rA   rB   rC   r   r   r   ro  r  rW  rZ  r[  r]  r^  r`  ra  rb  rc  rd  Z
paneconfigre  r
   r
   r
   r   rU  1  s&    

LrU  c                  C   s   t  } dt }|d7 }t| |d}|  t| d| fddd}|  || _t| d| jd}|  |   |   | 	  | 
  d S )	NzThis is Tcl/Tk version %su   
This should be a cedilla: çr2  z	Click me!c                 S   s   | j jd| j d  dS )Nz[%s]r2  rf  )testr  rv   r
   r
   r   <lambda>  s    z_test.<locals>.<lambda>)r2  r>  ZQUIT)rp   
TclVersionr  r  rD   rg  rx   r}  r!   rk  r   )rr   r2  r  rg  r  r
   r
   r   _test  s    
rj  c                 C   s2   g | ]\}}| d st|tjs|dvr|qS )r  >   r  )r  r   r7  
ModuleType)rJ   r[   objr
   r
   r   r     s    
r   __main__)TNr}   r9  )NNrp   F)\enumr  r7  r  ry   Ztkinter.constantsrer  floatr  Z	TkVersionr  ri  ZREADABLEZWRITABLEZ	EXCEPTIONcompiler   ASCIIr   r   r   r   r"   r+   r7   r   Enumr8   rG   rl   rm   rn   rs   rw   r|   r   r   r   r   r   r   r   r   r   rb   r   r   r   r   r   rF  rX  r\  rp   r  r  r  r  r  r  r  rD   r  rw  rt  r  r  r  r  r  r  r  r  r  r  r  r!  r&  r)  r/  rE  r6  r8  rJ  rT  rU  rj  globalsr%   __all__rA   r
   r
   r
   r   <module>   s     



,R

	 6

         u  2
~.37?/  8,Vt !'2   'BT
 3 C

