a
    ze                    @   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y   Y n0 dd Zz
ejZW n ey   Y n0 d{ddZG dd dee jZG dd dZdadadd Z d|ddZ!dd Z"d}d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)d~d'd(Z*e+Z,eZ-d)d* Z.G d+d, d,Z/G d-d. d.Z0G d/d0 d0Z1G d1d2 d2Z2G d3d4 d4Z3G d5d6 d6e/e3Z4dd8d9Z5G d:d; d;Z6G d<d= d=Z7G d>d? d?Z8G d@dA dAe/Z9G dBdC dCe9e6e7e8Z:G dDdE dEe9e3Z;G dFdG dGe:Z<G dHdI dIe:e1e2Z=G dJdK dKe:Z>G dLdM dMe:e1Z?G dNdO dOe:Z@G dPdQ dQe:ZAG dRdS dSe:e1e2ZBG dTdU dUe:ZCG dVdW dWe:ZDG dXdY dYe:ZEG dZd[ d[e:ZFG d\d] d]e:ZGG d^d_ d_e:ZHG d`da dae:e1e2ZIG dbdc dcZJG ddde deeDZKG dfdg dgZLG dhdi dieLZMG djdk dkeLZNdldm ZOdndo ZPG dpdq dqe:e1ZQG drds dse:ZRG dtdu due:ZSdvdw ZTdxdy eU V D ZWeXdzkreT  dS )    N)*   z([\\{}])z([\s])c                 C   s   d tt| S )N )joinmap
_stringifyvalue r
   &/usr/lib/python3.9/tkinter/__init__.py_join8   s    r   c                 C   s   t | ttfrHt| dkr:t| d } t| rFd|  } qdt|  } ntt| } | sZd} nbt| rt	d| } | 
dd} t	d| } | d dkrd	|  } n| d dkst| rd|  } | 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   s@   d}| D ]2}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 q0 ttfy } z0td| |	 D ]\}}|||< qhW Y d }~q0d }~0 0 q0|S d 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   sz   |  |}t|d rtdt|}i }t||D ]@\}}t|}|r`|d dkr`|dd  }|rl||}|||< q4|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    

r6   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   r7      sP   r7   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sL d= | jdkr^ d= n|t| jtr| j}d	}g }t|D ]\}}|d
|> @ r|	| q|d
t
|> d
  @ }|s|s|	t| d| d< | jdkr 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>charrG   
send_eventTr   state)ZShiftLockZControlZMod1ZMod2ZMod3ZMod4ZMod5ZButton1ZButton2ZButton3ZButton4ZButton5r   |delta)rM   rN   keysymkeycoderL   numrQ   focusxywidthheightz<%s event%s>name c                 3   s&   | ]}| v rd | | f V  qdS )z %s=%sNr
   )rI   r(   attrsr
   r   	<genexpr>  rK   z!Event.__repr__.<locals>.<genexpr>)__dict__r$   rL   reprgetattrrN   r   int	enumerateappendr   hexr   rQ   r   )selfrN   Zmodssinkeysr
   r\   r   __repr__   s6    


zEvent.__repr__N)r@   rA   rB   rk   r
   r
   r
   r   rF      s   +rF   c                   C   s   da d abd S )NF)_support_default_root_default_rootr
   r
   r
   r   NoDefaultRoot  s    rn   c                 C   s.   t stdts*| r$td|  dt }tS )NzINo 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    rr   c                 C   s   d S Nr
   )errr
   r
   r   _tkerror/  s    ru   c                 C   s,   zt | } W n ty   Y n0 t| d S rs   )rb   
ValueError
SystemExit)coder
   r
   r   _exit4  s
    ry   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|s&td}| | _|j| _|rD|| _ndtt	 | _t	d7 a	|d urn| 
| n&| j| jdd| js| 
| j d S )Nzname must be a stringzcreate variablePY_VARr   infoexists)r   r   r"   rr   _rootr1   _tk_namer`   _varnum
initialize
getbooleancall_defaultrf   masterr	   rZ   r
   r
   r   __init__I  s    
zVariable.__init__c                 C   sb   | j d u rd S | j | j dd| jr6| j | j | jd ur^| jD ]}| j | qFd | _d S )Nr|   r}   )r   r   r   r   Zglobalunsetvar_tclCommandsdeletecommandrf   rZ   r
   r
   r   __del__g  s    


zVariable.__del__c                 C   s   | j S rs   )r   rf   r
   r
   r   rE   s  s    zVariable.__str__c                 C   s   | j | j|S rs   )r   globalsetvarr   rf   r	   r
   r
   r   setw  s    zVariable.setc                 C   s   | j | jS rs   )r   globalgetvarr   r   r
   r
   r   get}  s    zVariable.getc                 C   s   t |d | jj}tt|}z
|j}W n ty8   Y n0 z||j }W n tyZ   Y n0 | j	|| | j
d u rzg | _
| j
| |S rs   )CallWrapperr~   __call__r`   id__func__r!   r@   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   sv   | j ddd| j|| |  D ] \}}| j |d |kr  qrq | j | z| j| W n typ   Y n0 d S )Nr   remover   r   )	r   r   r   
trace_infor-   r   r   r   rv   rf   r   r   mcar
   r
   r   trace_remove  s    zVariable.trace_removec              
      s4   | j j  fddt  | j ddd| jD S )Nc                    s   g | ]\}} ||fqS r
   r
   rH   r-   r
   r   
<listcomp>  rK   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. qq.| j | z| j| W n ty~   Y n0 d S )Nr   Zvdeleter   )	r   r   r   r-   r   r   r   r   rv   r   r
   r
   r   trace_vdelete  s    
zVariable.trace_vdeletec                    s(    fdd j  j dd jD S )Nc                    s   g | ]} j |qS r
   )r   r-   rI   rV   r   r
   r   r     rK   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o4| jj|jjko4| j|jkS rs   )r   rz   NotImplementedr   	__class__r@   r   )rf   otherr
   r
   r   __eq__  s    

zVariable.__eq__)NNN)r@   rA   rB   r   r   r   r   r   rE   r   r   r   r   r   r   r   r   r   r   r   r   r
   r
   r
   r   rz   @  s$   

rz   c                   @   s"   e Zd ZdZdddZdd ZdS )	StringVarr[   Nc                 C   s   t | ||| d S rs   rz   r   r   r
   r
   r   r     s    
zStringVar.__init__c                 C   s$   | j | j}t|tr|S t|S rs   )r   r   r   r   r   r   r
   r
   r   r     s    
zStringVar.get)NNNr@   rA   rB   r   r   r   r
   r
   r
   r   r     s   
r   c                   @   s"   e Zd ZdZdddZdd ZdS )IntVarr   Nc                 C   s   t | ||| d S rs   r   r   r
   r
   r   r     s    
zIntVar.__init__c              	   C   sH   | j | j}z| j |W S  ttfyB   t| j | Y S 0 d S rs   )r   r   r   getintr"   TclErrorrb   	getdoubler   r
   r
   r   r     s
    z
IntVar.get)NNNr   r
   r
   r
   r   r     s   
r   c                   @   s"   e Zd ZdZdddZdd ZdS )	DoubleVarg        Nc                 C   s   t | ||| d S rs   r   r   r
   r
   r   r   *  s    
zDoubleVar.__init__c                 C   s   | j | j | jS rs   )r   r   r   r   r   r
   r
   r   r   6  s    zDoubleVar.get)NNNr   r
   r
   r
   r   r   &  s   
r   c                   @   s.   e Zd ZdZd	ddZdd ZeZdd ZdS )

BooleanVarFNc                 C   s   t | ||| d S rs   r   r   r
   r
   r   r   ?  s    
zBooleanVar.__init__c                 C   s   | j | j| j |S rs   )r   r   r   r   r   r
   r
   r   r   K  s    zBooleanVar.setc                 C   s8   z| j | j | jW S  ty2   tdY n0 d S N invalid literal for getboolean())r   r   r   r   r   rv   r   r
   r
   r   r   Q  s    zBooleanVar.get)NNN)r@   rA   rB   r   r   r   r   r   r
   r
   r
   r   r   ;  s
   
r   c                 C   s   t dj|  d S )Nzrun the main loop)rr   r1   mainloop)ri   r
   r
   r   r   Y  s    r   c                 C   s2   zt dj| W S  ty,   tdY n0 d S )Nzuse getboolean()r   )rr   r1   r   r   rv   rg   r
   r
   r   r   c  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d2ddZd3ddZd4ddZd5d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d6d.d/Zd0d1 Zd2d3 Zd7d5d6Zd7d8 Z d9d: Z!d;d< Z"d=d> Z#d?d@ Z$dAdB Z%dCdD Z&dEdF Z'd8dGdHZ(dIdJ Z)dKdL Z*d9dMdNZ+dOdP Z,dQdR Z-dSdT Z.dUdV Z/dWdX Z0dYdZ Z1d:d[d\Z2d;d]d^Z3e3Z4d<d_d`Z5d=dadbZ6dcdd Z7dedf Z8dgdh Z9didj Z:d>dkdlZ;dmdn Z<dodp Z=dqdr Z>dsdt Z?dudv Z@dwdx ZAd?dydzZBd{d| ZCd}d~ ZDdd ZEdd ZFd@dd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]dAddZ^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd ZeddÄ Zfddń ZgddǄ ZhddɄ ZidBdd˄ZjdCdd΄ZkdDddЄZldEdd҄ZmdFddԄZnddք ZodGdd؄Zpddڄ ZqdHdd܄Zrddބ Zsdd Ztdd Zudd Zvdd Zwexdd ZydIddZzdd Z{e{Z|dJddZ}e}Z~dd ZdZdeZdd Zdd Zdd Zdd Zdd ZdKdd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dLddZeZdM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dNd"d#Zd$d% Zd&d' Zd(d) ZdOd*d+Zd,d- Zd.d/ ZdS (P  MiscNc                 C   s,   | j d ur(| j D ]}| j| qd | _ d S rs   )r   r1   r   r   r
   r
   r   destroyx  s    

zMisc.destroyc                 C   s4   | j | z| j| W n ty.   Y n0 d S rs   )r1   r   r   r   rv   r   r
   r
   r   r     s
    zMisc.deletecommandc                 C   s   | j | j dd|S )Nr   tk_strictMotif)r1   r   r   rf   booleanr
   r
   r   r     s    zMisc.tk_strictMotifc                 C   s   | j d d S )N	tk_bisquer1   r   r   r
   r
   r   r     s    zMisc.tk_bisquec                 O   s(   | j dt| tt|   d S )N)tk_setPalette)r1   r   r   r   r$   rf   argskwr
   r
   r   r     s
    zMisc.tk_setPaletter{   c                 C   s   | j dd| d S )Ntkwaitr   r   r   r
   r
   r   wait_variable  s    zMisc.wait_variablec                 C   s"   |d u r| }| j dd|j d S )Nr   windowr1   r   _wrf   r   r
   r
   r   wait_window  s    zMisc.wait_windowc                 C   s"   |d u r| }| j dd|j d S )Nr   Z
visibilityr   r   r
   r
   r   wait_visibility  s    zMisc.wait_visibility1c                 C   s   | j || d S rs   )r1   setvar)rf   rZ   r	   r
   r
   r   r     s    zMisc.setvarc                 C   s   | j |S rs   )r1   getvarr   r
   r
   r   r     s    zMisc.getvarc              
   C   sD   z| j |W S  ty> } ztt|W Y d }~n
d }~0 0 d S rs   )r1   r   r   rv   r   rf   rg   excr
   r
   r   r     s    zMisc.getintc              
   C   sD   z| j |W S  ty> } ztt|W Y d }~n
d }~0 0 d S rs   )r1   r   r   rv   r   r   r
   r
   r   r     s    zMisc.getdoublec                 C   s.   z| j |W S  ty(   tdY n0 d S r   )r1   r   r   rv   )rf   rg   r
   r
   r   r     s    zMisc.getbooleanc                 C   s   | j d| j d S NrU   r   r   r
   r
   r   	focus_set  s    zMisc.focus_setc                 C   s   | j dd| j d S )NrU   z-forcer   r   r
   r
   r   focus_force  s    zMisc.focus_forcec                 C   s&   | j d}|dks|sd S | |S )NrU   none)r1   r   _nametowidgetr   r
   r
   r   	focus_get  s    zMisc.focus_getc                 C   s,   | j dd| j}|dks|s"d S | |S )NrU   
-displayofr   r1   r   r   r   r   r
   r
   r   focus_displayof  s    zMisc.focus_displayofc                 C   s,   | j dd| j}|dks|s"d S | |S )NrU   z-lastforr   r   r   r
   r
   r   focus_lastfor  s    zMisc.focus_lastforc                 C   s   | j d d S )Ntk_focusFollowsMouser   r   r
   r
   r   r     s    zMisc.tk_focusFollowsMousec                 C   s"   | j d| j}|sd S | |S )Ntk_focusNextr   r   r
   r
   r   r     s    	zMisc.tk_focusNextc                 C   s"   | j d| j}|sd S | |S )Ntk_focusPrevr   r   r
   r
   r   r     s    zMisc.tk_focusPrevc                    sN   sj d| d S  fdd}j|_|j d|S d S )Nafterc                      sX   z.   W z  W qT ty,   Y qT0 n$z  W n tyP   Y n0 0 d S rs   )r   r   r
   r   funcrZ   rf   r
   r   callit,  s    
zMisc.after.<locals>.callit)r1   r   r@   r   )rf   msr   r   r   r
   r   r   r      s    
z
Misc.afterc                 G   s   | j d|g|R  S )NZidle)r   )rf   r   r   r
   r
   r   
after_idle8  s    zMisc.after_idlec                 C   sb   |st dz.| jdd|}| j|d }| | W n tyL   Y n0 | jdd| d S )Nz?id must be a valid identifier returned from after or after_idler   r|   r   cancel)rv   r1   r   r-   r   r   )rf   r   dataZscriptr
   r
   r   after_cancel@  s    zMisc.after_cancelr   c                 C   s   | j d| |  d S )N)bell)r1   r   
_displayofrf   	displayofr
   r
   r   r   Q  s    z	Misc.bellc                 K   sb   d|vrL| j dkrLz d|d< | jd| | W S  tyJ   |d= Y n0 | jd| | S )Nr   x11UTF8_STRING)	clipboardr   )_windowingsystemr1   r   _optionsr   rf   r   r
   r
   r   clipboard_getV  s    zMisc.clipboard_getc                 K   s,   d|vr| j |d< | jd| |  d S )Nr   )r   clearr   r1   r   r   r   r
   r
   r   clipboard_clearm  s    zMisc.clipboard_clearc                 K   s4   d|vr| j |d< | jd| | d|f  d S )Nr   )r   rd   --r   )rf   stringr   r
   r
   r   clipboard_appendu  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   s   | j dd| j d S )Nr   releaser   r   r
   r
   r   grab_release  s    zMisc.grab_releasec                 C   s   | j dd| j d S )Nr   r   r   r   r
   r
   r   grab_set  s    zMisc.grab_setc                 C   s   | j ddd| j d S )Nr   r   z-globalr   r   r
   r
   r   grab_set_global  s    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  s    zMisc.option_addc                 C   s   | j dd d S )Nr  r   r   r   r
   r
   r   option_clear  s    zMisc.option_clearc                 C   s   | j dd| j||S )Nr  r   r   )rf   rZ   	classNamer
   r
   r   
option_get  s    zMisc.option_getc                 C   s   | j dd|| d S )Nr  Zreadfiler   )rf   ZfileNamer
  r
   r
   r   option_readfile  s    zMisc.option_readfilec                 K   s,   d|vr| j |d< | jd| |  d S )Nr   )	selectionr   r   r   r
   r
   r   selection_clear  s    zMisc.selection_clearc                 K   st   d|vr| j |d< d|vr^| jdkr^z d|d< | jd| | W S  ty\   |d= Y n0 | jd| | S )Nr   r   r   r   )r  r   )r   r   r1   r   r   r   r   r
   r
   r   selection_get  s    	zMisc.selection_getc                 K   s.   |  |}| jd| | | j|f  d S )N)r  handle)r   r1   r   r   r   )rf   commandr   rZ   r
   r
   r   selection_handle  s    
zMisc.selection_handlec                 K   s"   | j d| | | jf  d S )Nr  Zown)r1   r   r   r   r   r
   r
   r   selection_own  s
    zMisc.selection_ownc                 K   s:   d|vr| j |d< | jd| | }|s0d S | |S )Nr   r  )r   r1   r   r   r   )rf   r   rZ   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   r    s    z	Misc.sendc                 C   s   | j d| j| d S Nlowerr   )rf   	belowThisr
   r
   r   r    s    z
Misc.lowerc                 C   s   | j d| j| d S Nraiser   )rf   	aboveThisr
   r
   r   tkraise   s    zMisc.tkraisec                 C   s(   d|  | |f }| j| j|S )N)winfoZatom)r   r1   r   r   )rf   rZ   r   r   r
   r
   r   
winfo_atom  s    zMisc.winfo_atomc                 C   s    d|  | |f }| j|S )N)r"  Zatomnamer   r1   r   rf   r   r   r   r
   r
   r   winfo_atomname  s    zMisc.winfo_atomnamec                 C   s   | j | j dd| jS )Nr"  Zcellsr1   r   r   r   r   r
   r
   r   winfo_cells  s    zMisc.winfo_cellsc              	   C   sP   g }| j | j dd| jD ],}z|| | W q tyH   Y q0 q|S )Nr"  children)r1   r-   r   r   rd   r   KeyError)rf   resultchildr
   r
   r   winfo_children  s    zMisc.winfo_childrenc                 C   s   | j dd| jS )Nr"  classr   r   r
   r
   r   winfo_class#  s    zMisc.winfo_classc                 C   s   | j | j dd| jS )Nr"  Zcolormapfullr1   r   r   r   r   r
   r
   r   winfo_colormapfull'  s    zMisc.winfo_colormapfullc                 C   s4   d|  | ||f }| j|}|s*d S | |S )N)r"  Z
containing)r   r1   r   r   )rf   ZrootXZrootYr   r   rZ   r
   r
   r   winfo_containing,  s    zMisc.winfo_containingc                 C   s   | j | j dd| jS )Nr"  depthr'  r   r
   r
   r   winfo_depth4  s    zMisc.winfo_depthc                 C   s   | j | j dd| jS )Nr"  r}   r'  r   r
   r
   r   winfo_exists8  s    zMisc.winfo_existsc                 C   s   | j | j dd| j|S )Nr"  Zfpixelsr1   r   r   r   rf   numberr
   r
   r   winfo_fpixels=  s    
zMisc.winfo_fpixelsc                 C   s   | j dd| jS )Nr"  geometryr   r   r
   r
   r   winfo_geometryC  s    zMisc.winfo_geometryc                 C   s   | j | j dd| jS )Nr"  rY   r'  r   r
   r
   r   winfo_heightG  s    zMisc.winfo_heightc                 C   s   t | jdd| jdS )Nr"  r   r   )rb   r1   r   r   r   r
   r
   r   winfo_idL  s    zMisc.winfo_idc                 C   s"   d|  | }| j| j|S )N)r"  Zinterps)r   r1   r-   r   )rf   r   r   r
   r
   r   winfo_interpsP  s    zMisc.winfo_interpsc                 C   s   | j | j dd| jS )Nr"  Zismappedr'  r   r
   r
   r   winfo_ismappedU  s    zMisc.winfo_ismappedc                 C   s   | j dd| jS )Nr"  managerr   r   r
   r
   r   winfo_managerZ  s    zMisc.winfo_managerc                 C   s   | j dd| jS )Nr"  rZ   r   r   r
   r
   r   
winfo_name^  s    zMisc.winfo_namec                 C   s   | j dd| jS )Nr"  parentr   r   r
   r
   r   winfo_parentb  s    zMisc.winfo_parentc                 C   s    d|  | |f }| j|S )N)r"  pathnamer$  r%  r
   r
   r   winfo_pathnamef  s    zMisc.winfo_pathnamec                 C   s   | j | j dd| j|S )Nr"  Zpixelsr'  r7  r
   r
   r   winfo_pixelsl  s    zMisc.winfo_pixelsc                 C   s   | j | j dd| jS )Nr"  Zpointerxr'  r   r
   r
   r   winfo_pointerxq  s    zMisc.winfo_pointerxc                 C   s   |  | jdd| jS )Nr"  Z	pointerxy_getintsr1   r   r   r   r
   r
   r   winfo_pointerxyv  s    zMisc.winfo_pointerxyc                 C   s   | j | j dd| jS )Nr"  Zpointeryr'  r   r
   r
   r   winfo_pointery{  s    zMisc.winfo_pointeryc                 C   s   | j | j dd| jS )Nr"  Z	reqheightr'  r   r
   r
   r   winfo_reqheight  s    zMisc.winfo_reqheightc                 C   s   | j | j dd| jS )Nr"  Zreqwidthr'  r   r
   r
   r   winfo_reqwidth  s    zMisc.winfo_reqwidthc                 C   s   |  | jdd| j|S )Nr"  ZrgbrI  )rf   Zcolorr
   r
   r   	winfo_rgb  s    zMisc.winfo_rgbc                 C   s   | j | j dd| jS )Nr"  Zrootxr'  r   r
   r
   r   winfo_rootx  s    zMisc.winfo_rootxc                 C   s   | j | j dd| jS )Nr"  Zrootyr'  r   r
   r
   r   winfo_rooty  s    zMisc.winfo_rootyc                 C   s   | j dd| jS )Nr"  screenr   r   r
   r
   r   winfo_screen  s    zMisc.winfo_screenc                 C   s   | j | j dd| jS )Nr"  Zscreencellsr'  r   r
   r
   r   winfo_screencells  s    zMisc.winfo_screencellsc                 C   s   | j | j dd| jS )Nr"  Zscreendepthr'  r   r
   r
   r   winfo_screendepth  s    zMisc.winfo_screendepthc                 C   s   | j | j dd| jS )Nr"  Zscreenheightr'  r   r
   r
   r   winfo_screenheight  s    zMisc.winfo_screenheightc                 C   s   | j | j dd| jS )Nr"  Zscreenmmheightr'  r   r
   r
   r   winfo_screenmmheight  s    zMisc.winfo_screenmmheightc                 C   s   | j | j dd| jS )Nr"  Zscreenmmwidthr'  r   r
   r
   r   winfo_screenmmwidth  s    zMisc.winfo_screenmmwidthc                 C   s   | j dd| jS )Nr"  Zscreenvisualr   r   r
   r
   r   winfo_screenvisual  s    zMisc.winfo_screenvisualc                 C   s   | j | j dd| jS )Nr"  Zscreenwidthr'  r   r
   r
   r   winfo_screenwidth  s    zMisc.winfo_screenwidthc                 C   s   | j dd| jS )Nr"  Zserverr   r   r
   r
   r   winfo_server  s    zMisc.winfo_serverc                 C   s   |  | jdd| jS )Nr"  toplevel)r   r1   r   r   r   r
   r
   r   winfo_toplevel  s    
zMisc.winfo_toplevelc                 C   s   | j | j dd| jS )Nr"  Zviewabler'  r   r
   r
   r   winfo_viewable  s    zMisc.winfo_viewablec                 C   s   | j dd| jS )Nr"  visualr   r   r
   r
   r   winfo_visual  s    zMisc.winfo_visualc                 C   s   | j dd| jS )Nr"  Zvisualidr   r   r
   r
   r   winfo_visualid  s    zMisc.winfo_visualidFc                    sH    j dd j|rdnd } fdd j |D } fdd|D S )Nr"  Zvisualsavailable
includeidsc                    s   g | ]} j |qS r
   )r1   r-   r   r   r
   r   r     rK   z/Misc.winfo_visualsavailable.<locals>.<listcomp>c                    s   g | ]}  |qS r
   )_Misc__winfo_parseitemr   r   r
   r   r     rK   )r1   r   r   r-   )rf   rb  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   r3   r
   r
   r   Z__winfo_parseitem  s    zMisc.__winfo_parseitemc                 C   s
   t |dS )Nr   )rb   rf   rV   r
   r
   r   Z__winfo_getint  s    zMisc.__winfo_getintc                 C   s   | j | j dd| jS )Nr"  Zvrootheightr'  r   r
   r
   r   winfo_vrootheight  s    zMisc.winfo_vrootheightc                 C   s   | j | j dd| jS )Nr"  Z
vrootwidthr'  r   r
   r
   r   winfo_vrootwidth  s    zMisc.winfo_vrootwidthc                 C   s   | j | j dd| jS )Nr"  Zvrootxr'  r   r
   r
   r   winfo_vrootx  s    zMisc.winfo_vrootxc                 C   s   | j | j dd| jS )Nr"  Zvrootyr'  r   r
   r
   r   winfo_vrooty	  s    zMisc.winfo_vrootyc                 C   s   | j | j dd| jS )Nr"  rX   r'  r   r
   r
   r   winfo_width  s    zMisc.winfo_widthc                 C   s   | j | j dd| jS )Nr"  rV   r'  r   r
   r
   r   winfo_x  s    zMisc.winfo_xc                 C   s   | j | j dd| jS )Nr"  rW   r'  r   r
   r
   r   winfo_y  s    zMisc.winfo_yc                 C   s   | j d d S )Nr    r   r   r
   r
   r   r       s    zMisc.updatec                 C   s   | j dd d S )Nr    Z	idletasksr   r   r
   r
   r   update_idletasks$  s    zMisc.update_idletasksc                 C   s6   |d u r | j | j d| jS | j d| j| d S )Nbindtagsr1   r-   r   r   )rf   ZtagListr
   r
   r   ro  *  s
    zMisc.bindtagsr   c                 C   s   t |tr | j|||f  nn|rd| || j|}d|r>dp@d|| jf }| j|||f  |S |rz| j||f S | j| j|S d S )Nz"%sif {"[%s %s]" == "break"} break
+r[   )r   r   r1   r   r   _substitute_subst_format_strr-   )rf   rp   sequencer   r   needcleanupfuncidr  r
   r
   r   _bind7  s     


z
Misc._bindc                 C   s   |  d| jf|||S Nbindrw  r   rf   rt  r   r   r
   r
   r   ry  I  s    'z	Misc.bindc                 C   s&   | j d| j|d |r"| | d S Nry  r[   r1   r   r   r   )rf   rt  rv  r
   r
   r   unbindr  s    zMisc.unbindc                 C   s   |  d|||dS )N)ry  allr   rw  r{  r
   r
   r   bind_ally  s    zMisc.bind_allc                 C   s   | j dd|d d S )Nry  r  r[   r   )rf   rt  r
   r
   r   
unbind_all  s    zMisc.unbind_allc                 C   s   |  d|f|||dS )Nry  r   r  )rf   r  rt  r   r   r
   r
   r   
bind_class  s    zMisc.bind_classc                 C   s   | j d||d d S r|  r   )rf   r  rt  r
   r
   r   unbind_class  s    zMisc.unbind_classc                 C   s   | j | d S rs   )r1   r   )rf   ri   r
   r
   r   r     s    zMisc.mainloopc                 C   s   | j   d S rs   )r1   quitr   r
   r
   r   r    s    z	Misc.quitc                 C   s"   |rt t| jj| j|S d S rs   )r   r   r1   r   r-   rf   r   r
   r
   r   rJ    s    zMisc._getintsc                 C   s"   |rt t| jj| j|S d S rs   )r   r   r1   r   r-   r  r
   r
   r   _getdoubles  s    zMisc._getdoublesc                 C   s   |r| j |S d S rs   )r1   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 0 d S )Nr1   Zwindowingsystem)r~   Z_windowingsystem_cachedr!   r1   r   )rf   wsr
   r
   r   r     s    zMisc._windowingsystemc                 C   s   |rt ||f}nt |}d}| D ]\}}|d ur&|d dkrN|d d }t|rb| |}n^t|ttfrg }|D ]<}t|tr|t	| qxt|t	r|t
| qx qqxd|}|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   sN   t |d}| }|d s.| }|dd  }|D ]}|s> qJ|j| }q2|S )N.r   r   )r   splitr~   r)  )rf   rZ   wri   r
   r
   r   nametowidget  s    zMisc.nametowidgetc                 C   s   t ||| j}tt|}z
|j}W n ty6   Y n0 z||j }W n tyX   Y n0 | j|| |r| j	d u r|g | _	| j	
| |S rs   )r   r   r`   r   r   r!   r@   r1   r   r   rd   )rf   r   substru  r   rZ   r
   r
   r   r     s     

zMisc._registerc                 C   s   | }|j r|j }q|S rs   r   )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	y   Y n0 |||_
|||_||	|_||
|_|||_|||_|||_||_z|||_W n t	y   Y n0 ||_|||_zt||_W n ty@   ||_Y n0 z| ||_W n tyl   ||_Y n0 |||_|||_z ||_W n tt	fy   d|_Y n0 |fS )Nc              	      s*   z
 | W S  t tfy$   |  Y S 0 d S rs   )rv   r   r   r   r
   r   getint_event  s    
z&Misc._substitute.<locals>.getint_eventr   )r   _subst_formatr1   r   r   rF   serialrT   rU   r   rY   rS   rN   timerX   rV   rW   rL   rM   rR   Z
keysym_numr7   r   rv   r   widgetr*  Zx_rootZy_rootrQ   )rf   r   r   r  Znsignbr   hr(   rg   r3   r  rV   rW   AEKNWTXYDer
   r  r   rr    sJ    *











zMisc._substitutec                 C   s(   t  \}}}|  }|||| d S rs   )sysexc_infor~   report_callback_exception)rf   r   valtbrq   r
   r
   r   _report_exceptionH  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   r1   r-   r   )rf   r   r%   rV   r
   r
   r   _getconfigureN  s
    0zMisc._getconfigurec                 G   s2   | j | j j| }|d dd  f|dd   S r  r  )rf   r   rV   r
   r
   r   _getconfigure1V  s    zMisc._getconfigure1c                 C   s   |rt ||f}n|rt |}|d u r:| t| j|fS t|tr^| t| j|d| fS | jt| j|f| 	|  d S )Nr,   )
r*   r  r   r   r   r   r  r1   r   r   )rf   r  r%   r   r
   r
   r   
_configureZ  s    
zMisc._configurec                 K   s   |  d||S )N	configurer  rf   r%   r   r
   r
   r   r  g  s    zMisc.configurec                 C   s   | j | jdd| S Ncgetr,   r   rf   r5   r
   r
   r   r  r  s    z	Misc.cgetc                 C   s   |  ||i d S rs   )r  rf   r5   r	   r
   r
   r   __setitem__x  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   ~  rK   zMisc.keys.<locals>.<listcomp>r  rp  r   r
   r   r   rj   {  s    
z	Misc.keysc                 C   s   | j S rs   r  r   r
   r
   r   rE     s    zMisc.__str__c                 C   s   d| j j| j j| jf S )Nz<%s.%s object %s>)r   rA   rB   r   r   r
   r
   r   rk     s    zMisc.__repr___noarg_c                 C   s:   |t ju r"| | jdd| jS | jdd| j| d S )Npack	propagater   r  r  r1   r   r   rf   flagr
   r
   r   pack_propagate  s
    

zMisc.pack_propagatec                    s(    fdd j  j dd jD S )Nc                    s   g | ]}  |qS r
   r   r   r   r
   r   r     rK   z$Misc.pack_slaves.<locals>.<listcomp>r  slavesrp  r   r
   r   r   pack_slaves  s
    
zMisc.pack_slavesc                    s(    fdd j  j dd jD S )Nc                    s   g | ]}  |qS r
   r  r   r   r
   r   r     rK   z%Misc.place_slaves.<locals>.<listcomp>placer  rp  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  s    zMisc.grid_anchorc                 C   sZ   dd| j f}|d ur(|d ur(|||f }|d urD|d urD|||f }| | jj| pXd S )Nr  bbox)r   rJ  r1   r   )rf   columnrowZcol2Zrow2r   r
   r
   r   	grid_bbox  s    zMisc.grid_bboxc              	   C   sf   t |ttjfrbz:t|}|s$W d S d|v r:| j|W S | j|W S W n ttfy`   Y n0 |S )Nr  )	r   r   _tkinterZTcl_Objr1   r   r   rv   r   )rf   r	   Zsvaluer
   r
   r   _gridconvvalue  s    zMisc._gridconvvaluec                 C   s   t |trJ|sJ|dd  dkr*|d d }|d d dkrBd| }|f}n| ||}|s|t| j| jd|| j|| jdS | jd|| j|f| }t|dkr| |S d S )Nr  r  r   r,   r  )r2   )	r   r   r   r6   r1   r   r   r  r   )rf   r  indexr%   r   optionsr   r
   r
   r   _grid_configure  s(    zMisc._grid_configurec                 K   s   |  d|||S )Ncolumnconfigurer  rf   r  r%   r   r
   r
   r   grid_columnconfigure  s    zMisc.grid_columnconfigurec              	   C   s    |  | jdd| j||pd S )Nr  locationrI  rf   rV   rW   r
   r
   r   grid_location  s    zMisc.grid_locationc                 C   s:   |t ju r"| | jdd| jS | jdd| j| d S )Nr  r  r  r  r
   r
   r   grid_propagate  s
    

zMisc.grid_propagatec                 K   s   |  d|||S )Nrowconfigurer  r  r
   r
   r   grid_rowconfigure  s    zMisc.grid_rowconfigurec                 C   s   |  | jdd| jpd S )Nr  sizerI  r   r
   r
   r   	grid_size  s
    zMisc.grid_sizec                    sZ   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                    s   g | ]}  |qS r
   r  r   r   r
   r   r   (  rK   z$Misc.grid_slaves.<locals>.<listcomp>r  r  rp  )rf   r  r  r   r
   r   r   grid_slaves   s    
zMisc.grid_slavesc                 G   s   dd|f| }| j | d S )Neventr   r   rf   virtual	sequencesr   r
   r
   r   	event_add/  s    zMisc.event_addc                 G   s   dd|f| }| j | d S )Nr  deleter   r  r
   r
   r   event_delete6  s    zMisc.event_deletec                 K   sD   dd| j |f}| D ]\}}|d| t|f }q| j| d S )Nr  Zgenerate-%s)r   r$   r   r1   r   )rf   rt  r   r   r(   r)   r
   r
   r   event_generate;  s    zMisc.event_generatec                 C   s   | j | j dd|S )Nr  r|   r  )rf   r  r
   r
   r   
event_infoD  s    zMisc.event_infoc                 C   s   | j | j ddS Nimagenamesr  r   r
   r
   r   image_namesL  s    zMisc.image_namesc                 C   s   | j | j ddS )Nr  typesr  r   r
   r
   r   image_typesP  s    zMisc.image_types)N)r{   )N)N)r{   r   )r{   )N)r   )N)N)N)N)r   )r   )r   )r   )r   )F)N)r   )NNN)N)NNN)NNN)r   )N)Nr   )N)N)NNNN)NN)N)r@   rA   rB   _last_child_idsr   r   r   r   r   r   r   Zwaitvarr   r   r   r   r   r   r   r   rU   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!  liftr#  r&  r(  r-  r/  r1  r2  r4  r5  r9  r;  r<  r=  r>  r?  rA  rB  rD  rF  rG  rH  rK  rL  rM  rN  rO  rP  rQ  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r]  r^  r`  ra  rd  rc  re  rg  rh  ri  rj  rk  rl  rm  r    rn  ro  rw  ry  r~  r  r  r  r  r   r  rJ  r  r  r   propertyr   r   r  r   r   registerr~   r  r   rs  rr  r  r  r  r  r  configr  __getitem__r  rj   rE   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  r  r  r  r
   r
   r
   r   r   m  sN  
		)

	
=	

	r   c                   @   s   e Zd Zdd Zdd ZdS )r   c                 C   s   || _ || _|| _d S rs   )r   r  r  )rf   r   r  r  r
   r
   r   r   Y  s    zCallWrapper.__init__c                 G   sJ   z| j r| j | }| j| W S  ty0    Y n   | j  Y n0 d S rs   )r  r   rw   r  r  rf   r   r
   r
   r   r   _  s    
zCallWrapper.__call__Nr@   rA   rB   r   r   r
   r
   r
   r   r   U  s   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )XViewc                 G   s*   | j j| jdg|R  }|s&| |S d S )Nxviewr1   r   r   r  rf   r   r   r
   r
   r   r  o  s    zXView.xviewc                 C   s   | j | jdd| d S )Nr  movetor   rf   fractionr
   r
   r   xview_movetou  s    zXView.xview_movetoc                 C   s   | j | jdd|| d S )Nr  scrollr   rf   r8  rp   r
   r
   r   xview_scrollz  s    zXView.xview_scrollN)r@   rA   rB   r  r  r  r
   r
   r
   r   r  k  s   r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )YViewc                 G   s*   | j j| jdg|R  }|s&| |S d S )Nyviewr  r  r
   r
   r   r    s    zYView.yviewc                 C   s   | j | jdd| d S )Nr  r  r   r  r
   r
   r   yview_moveto  s    zYView.yview_movetoc                 C   s   | j | jdd|| d S )Nr  r  r   r   r
   r
   r   yview_scroll  s    zYView.yview_scrollN)r@   rA   rB   r  r  r  r
   r
   r
   r   r    s   r  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
dCd
dZeZdd ZeZdDddZeZdd ZeZdd ZeZdEddZeZdFddZeZdGddZeZdHddZeZdd ZeZdIddZeZ dJd d!Z!e!Z"dKd#d$Z#e#Z$dLd%d&Z%e%Z&dMd'd(Z'e'Z(d)d* Z)e)Z*dNd+d,Z+e+Z,dOd-d.Z-e-Z.dPd/d0Z/e/Z0dQd1d2Z1e1Z2dRd3d4Z3e3Z4dSd5d6Z5e5Z6dTd7d8Z7e7Z8dUd9d:Z9e9Z:dVd;d<Z;e;Z<dWd=d>Z=e=Z>d?d@ Z?e?Z@dS )XWmNc                 C   s    |  | jdd| j||||S )NwmaspectrI  )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   r1   r   r  r
   r
   r   wm_attributes  s    zWm.wm_attributesc                 C   s   | j dd| j|S )Nr  clientr   r   r
   r
   r   	wm_client  s    zWm.wm_clientc                    sZ   t |dkr|f}dd jf| }|r4 j| n" fdd j j|D S d S )Nr   r  colormapwindowsc                    s   g | ]}  |qS r
   r  r   r   r
   r   r     s   z)Wm.wm_colormapwindows.<locals>.<listcomp>)r   r   r1   r   r-   )rf   Zwlistr   r
   r   r   wm_colormapwindows  s    
zWm.wm_colormapwindowsc                 C   s   | j dd| j|S )Nr  r  r   r   r
   r
   r   
wm_command  s    zWm.wm_commandc                 C   s   | j dd| jS )Nr  	deiconifyr   r   r
   r
   r   wm_deiconify  s    zWm.wm_deiconifyc                 C   s   | j dd| j|S )Nr  
focusmodelr   )rf   Zmodelr
   r
   r   wm_focusmodel  s    zWm.wm_focusmodelc                 C   s   | j dd| d S )Nr  forgetr   r   r
   r
   r   	wm_forget  s    zWm.wm_forgetc                 C   s   | j dd| jS )Nr  framer   r   r
   r
   r   wm_frame  s    zWm.wm_framec                 C   s   | j dd| j|S )Nr  r:  r   )rf   ZnewGeometryr
   r
   r   wm_geometry  s    zWm.wm_geometryc                 C   s    |  | jdd| j||||S )Nr  r  rI  )rf   Z	baseWidthZ
baseHeightZwidthIncZ	heightIncr
   r
   r   wm_grid   s    
z
Wm.wm_gridc                 C   s   | j dd| j|S )Nr  groupr   rf   ZpathNamer
   r
   r   wm_group  s    zWm.wm_groupc                 C   s2   |r| j dd| jd|S | j dd| j|S d S )Nr  
iconbitmap-defaultr   )rf   bitmapdefaultr
   r
   r   wm_iconbitmap  s    	zWm.wm_iconbitmapc                 C   s   | j dd| jS )Nr  iconifyr   r   r
   r
   r   
wm_iconify$  s    zWm.wm_iconifyc                 C   s   | j dd| j|S )Nr  iconmaskr   )rf   r   r
   r
   r   wm_iconmask*  s    zWm.wm_iconmaskc                 C   s   | j dd| j|S )Nr  iconnamer   )rf   ZnewNamer
   r
   r   wm_iconname1  s    zWm.wm_iconnameFc                 G   s@   |r"| j jdd| jdg|R   n| j jdd| jg|R   d S )Nr  	iconphotor  r   )rf   r!  r   r
   r
   r   wm_iconphoto8  s    zWm.wm_iconphotoc              	   C   s   |  | jdd| j||S )Nr  iconpositionrI  r  r
   r
   r   wm_iconpositionS  s    
zWm.wm_iconpositionc                 C   s   | j dd| j|S )Nr  
iconwindowr   r  r
   r
   r   wm_iconwindow[  s    zWm.wm_iconwindowc                 C   s   | j dd| d S )Nr  manager   )rf   r  r
   r
   r   	wm_manageb  s    zWm.wm_managec              	   C   s   |  | jdd| j||S )Nr  maxsizerI  rf   rX   rY   r
   r
   r   
wm_maxsizej  s    
zWm.wm_maxsizec              	   C   s   |  | jdd| j||S )Nr  minsizerI  r2  r
   r
   r   
wm_minsizes  s    
zWm.wm_minsizec                 C   s   |  | jdd| j|S )Nr  overrideredirect)r  r1   r   r   r   r
   r
   r   wm_overrideredirect|  s    

zWm.wm_overrideredirectc                 C   s   | j dd| j|S )Nr  positionfromr   rf   Zwhor
   r
   r   wm_positionfrom  s    zWm.wm_positionfromc                 C   s.   t |r| |}n|}| jdd| j||S )Nr  protocol)r  r   r1   r   r   )rf   rZ   r   r  r
   r
   r   wm_protocol  s    zWm.wm_protocolc                 C   s   | j dd| j||S )Nr  	resizabler   r2  r
   r
   r   wm_resizable  s    zWm.wm_resizablec                 C   s   | j dd| j|S )Nr  sizefromr   r9  r
   r
   r   wm_sizefrom  s    zWm.wm_sizefromc                 C   s   | j dd| j|S )Nr  rN   r   )rf   Znewstater
   r
   r   wm_state  s    zWm.wm_statec                 C   s   | j dd| j|S )Nr  titler   r  r
   r
   r   wm_title  s    zWm.wm_titlec                 C   s   | j dd| j|S )Nr  	transientr   )rf   r   r
   r
   r   wm_transient  s    zWm.wm_transientc                 C   s   | j dd| jS )Nr  withdrawr   r   r
   r
   r   wm_withdraw  s    zWm.wm_withdraw)NNNN)N)N)N)N)NNNN)N)NN)N)N)F)NN)N)NN)NN)N)N)NN)NN)N)N)N)N)Ar@   rA   rB   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-  r0  r/  r3  r1  r5  r4  r7  r6  r:  r8  r<  r;  r>  r=  r@  r?  rA  rN   rC  rB  rE  rD  rG  rF  r
   r
   r
   r   r    s     




  

















r  c                   @   sJ   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 )ro   r  NTFc           
   
   C   s   d | _ i | _d| _d | _|d u rZdd l}|jtjd }|j	|\}}|dvrZ|| }d}	t
||||	t|||| _|r|   tjjs| || d S )NFr   )z.pyz.pyc)r   r)  	_tkloadedr1   ospathbasenamer  argvsplitextr  createwantobjects_loadtkflagsignore_environmentreadprofile)
rf   
screenNamebaseNamer  useTksyncZuserI  extinteractiver
   r
   r   r     s     zTk.__init__c                 C   s   | j s| j  |   d S rs   )rH  r1   loadtkrP  r   r
   r
   r   rZ    s    
z	Tk.loadtkc                 C   s   d| _ | jd}|tjkr.tdtj|f t| jd}|tjkrZtdtj|f | jd u rjg | _| j	dt
 | j	dt | jd | jd trts| 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)rH  r1   r   r  
TK_VERSIONr.   r   TCL_VERSIONr   r   ru   ry   rd   rl   rm   r;  r   )rf   r[  r\  r
   r
   r   rP    s(    


z
Tk._loadtkc                 C   sJ   t | j D ]}|  q| jd| j t|  trFt	| u rFd a	d S Nr   )
r   r)  valuesr   r1   r   r   r   rl   rm   rf   r&   r
   r
   r   r   	  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|r| jd| |j|rtt	|
 |	 |j|r| jd| |j|rtt	|
 |	 d S )Nr   HOMEz.%s.tclz.%s.pyrf   zfrom tkinter import *source)rI  environcurdirrJ  r   execisfiler1   r   openread)
rf   rU  r  rI  homeZ	class_tclZclass_pyZbase_tclZbase_pydirr
   r
   r   rS  	  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  ro  r
   r
   r   r  $	  s    zTk.report_callback_exceptionc                 C   s   t | j|S rs   )ra   r1   )rf   attrr
   r
   r   __getattr__0	  s    zTk.__getattr__)NNro   TFN)r@   rA   rB   r   r   rZ  rP  r   rS  r  rv  r
   r
   r
   r   ro     s     

ro   Fc                 C   s   t | |||S rs   )ro   )rT  rU  r  rV  r
   r
   r   TclC	  s    rw  c                   @   sP   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   s$   | j dd| jf| ||  d S )Nr  r  r1   r   r   r   r  r
   r
   r   pack_configureL	  s
    

zPack.pack_configurec                 C   s   | j dd| j d S )Nr  r  r   r   r
   r
   r   pack_forgetb	  s    zPack.pack_forgetc                 C   s8   t | j| jdd| j}d|v r4| |d |d< |S )Nr  r|   inr6   r1   r   r   r  rf   dr
   r
   r   	pack_infoh	  s    zPack.pack_infoN)r@   rA   rB   rz  r  r  r  r{  r  r  r|   r   r  r  r  r  r
   r
   r
   r   rx  G	  s   
rx  c                   @   sF   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   s$   | j dd| jf| ||  d S )Nr  r  ry  r  r
   r
   r   place_configurez	  s
    

zPlace.place_configurec                 C   s   | j dd| j d S )Nr  r  r   r   r
   r
   r   place_forget	  s    zPlace.place_forgetc                 C   s8   t | j| jdd| j}d|v r4| |d |d< |S )Nr  r|   r|  r}  r~  r
   r
   r   
place_info	  s    zPlace.place_infoN)r@   rA   rB   r  r  r  r  r  r  r  r|   r   r  r  r
   r
   r
   r   r  u	  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   s$   | j dd| jf| ||  d S )Nr  r  ry  r  r
   r
   r   grid_configure	  s
    

zGrid.grid_configurec                 C   s   | j dd| j d S )Nr  r  r   r   r
   r
   r   grid_forget	  s    zGrid.grid_forgetc                 C   s   | j dd| j d S )Nr  r   r   r   r
   r
   r   grid_remove	  s    zGrid.grid_removec                 C   s8   t | j| jdd| j}d|v r4| |d |d< |S )Nr  r|   r|  r}  r~  r
   r
   r   	grid_info	  s    zGrid.grid_infoN)r@   rA   rB   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  	  s   





r  c                   @   s6   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   |s
t  }|| _|j| _d }d|v r2|d }|d= |s| jj }|jd u rRi |_|j|dd }||j|< |dkrd|f }nd||f }|| _|j	dkrd| | _	n|j	d | | _	i | _
| j| jj
v r| jj
| j   | | jj
| j< d S )NrZ   r   r   z!%sz!%s%dr  )rr   r   r1   r   r@   r  r  r   r   r   r)  r   )rf   r   r%   rZ   countr
   r
   r   _setup	  s2    


zBaseWidget._setupr
   c           	      C   s   |rt ||f}|| _t| || | jd u r4g | _dd | D }|D ]\}}||= qJ| j|| jf| | 	|  |D ]\}}|
| | q~d S )Nc                 S   s"   g | ]\}}t |tr||fqS r
   )r   r   rH   r
   r
   r   r   	
  rK   z'BaseWidget.__init__.<locals>.<listcomp>)r*   
widgetNamer  r  r   r$   r1   r   r   r   r  )	rf   r   r  r%   r   extraclassesr(   r)   r
   r
   r   r    
  s    
zBaseWidget.__init__c                 C   sT   t | j D ]}|  q| jd| j | j| jjv rF| jj| j= t	|  d S ra  )
r   r)  rb  r   r1   r   r   r   r   r   rc  r
   r
   r   r   
  s
    zBaseWidget.destroyc                 C   s   | j | j|f| S rs   r   )rf   rZ   r   r
   r
   r   _do
  s    zBaseWidget._doN)r
   )r@   rA   rB   r  r   r   r  r
   r
   r
   r   r  	  s   r  c                   @   s   e Zd ZdS )WidgetN)r@   rA   rB   r
   r
   r
   r   r  
  s   r  c                   @   s   e Zd Zdi fddZdS )ToplevelNc           	      K   s   |rt ||f}d}dD ]L}||v r|| }|d dkrJd|d d  }nd| }|||f }||= qt| |d|i | |  }| |  | |  | d| j d S )Nr
   )rR  class_r.  r_  Zcolormapr  r  r,   r\  r^  )r*   r  r   r~   r'  rB  r;  r   )	rf   r   r%   r   r  Zwmkeyr  optrq   r
   r
   r   r   )
  s    zToplevel.__init__r@   rA   rB   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S )rC   Nc                 K   s   t | |d|| d S )NZbuttonr  r   rf   r   r%   r   r
   r
   r   r   G
  s    zButton.__init__c                 C   s   | j | jd d S Nflashr   r   r
   r
   r   r  \
  s    
zButton.flashc                 C   s   | j | jdS Ninvoker   r   r
   r
   r   r  h
  s    zButton.invoke)r@   rA   rB   r   r  r  r
   r
   r
   r   rC   D
  s   rC   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dyddZdzd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"d{dBdCZ#dDdE Z$dFdG Z%dHdI Z&dJdK Z'dLdM Z(dNdO Z)dPdQ Z*dRdS Z+dTdU Z,d|dVdWZ-e-Z.dXdY Z/e/Z0dZd[ Z1d}d]d^Z2i fd_d`Z3dadb Z4e4 Z5Z6dcdd Z7dedf Z8d~dhdiZ9djdk Z:dldm Z;dndo Z<dpdq Z=drds Z>dtdu Z?dS )CanvasNc                 K   s   t | |d|| d S )NZcanvasr  r  r
   r
   r   r   v
  s    
zCanvas.__init__c                 G   s   | j | jdf|  d S )Naddtagr   r  r
   r
   r   r  
  s    zCanvas.addtagc                 C   s   |  |d| d S NZabover  rf   newtagtagOrIdr
   r
   r   addtag_above
  s    zCanvas.addtag_abovec                 C   s   |  |d d S Nr  r  )rf   r  r
   r
   r   
addtag_all
  s    zCanvas.addtag_allc                 C   s   |  |d| d S NZbelowr  r  r
   r
   r   addtag_below
  s    zCanvas.addtag_belowc                 C   s   |  |d|||| d S NZclosestr  )rf   r  rV   rW   halostartr
   r
   r   addtag_closest
  s    zCanvas.addtag_closestc                 C   s   |  |d|||| d S NZenclosedr  rf   r  x1y1x2y2r
   r
   r   addtag_enclosed
  s    zCanvas.addtag_enclosedc                 C   s   |  |d|||| d S NZoverlappingr  r  r
   r
   r   addtag_overlapping
  s    zCanvas.addtag_overlappingc                 C   s   |  |d| d S NZwithtagr  r  r
   r
   r   addtag_withtag
  s    zCanvas.addtag_withtagc                 G   s    |  | j| jdf| pd S Nr  rI  r  r
   r
   r   r  
  s
    zCanvas.bboxc                 C   s(   | j | jd||d |r$| | d S r|  r}  )rf   r  rt  rv  r
   r
   r   
tag_unbind
  s    zCanvas.tag_unbindc                 C   s   |  | jd|f|||S rx  rz  )rf   r  rt  r   r   r
   r
   r   tag_bind
  s    zCanvas.tag_bindc                 C   s   | j | j | jd||S )Ncanvasxr6  )rf   Zscreenxgridspacingr
   r
   r   r  
  s    
zCanvas.canvasxc                 C   s   | j | j | jd||S )Ncanvasyr6  )rf   Zscreenyr  r
   r
   r   r  
  s    
zCanvas.canvasyc                    s,    fdd j  j  jdf| D S )Nc                    s   g | ]} j |qS r
   )r1   r   r   r   r
   r   r   
  rK   z!Canvas.coords.<locals>.<listcomp>coordsrp  r  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  rN  )	r   r   r   r   r1   r   r   r   r   )rf   itemTyper   r   r%   r
   r
   r   _create
  s    zCanvas._createc                 O   s   |  d||S )NZarcr  r   r
   r
   r   
create_arc
  s    zCanvas.create_arcc                 O   s   |  d||S Nr   r  r   r
   r
   r   create_bitmap
  s    zCanvas.create_bitmapc                 O   s   |  d||S )Nr  r  r   r
   r
   r   create_image
  s    zCanvas.create_imagec                 O   s   |  d||S )Nliner  r   r
   r
   r   create_line
  s    zCanvas.create_linec                 O   s   |  d||S )NZovalr  r   r
   r
   r   create_oval
  s    zCanvas.create_ovalc                 O   s   |  d||S )NZpolygonr  r   r
   r
   r   create_polygon
  s    zCanvas.create_polygonc                 O   s   |  d||S )NZ	rectangler  r   r
   r
   r   create_rectangle
  s    zCanvas.create_rectanglec                 O   s   |  d||S Ntextr  r   r
   r
   r   create_text
  s    zCanvas.create_textc                 O   s   |  d||S )Nr   r  r   r
   r
   r   create_window
  s    zCanvas.create_windowc                 G   s   | j | jdf|  d S )Ndcharsr   r  r
   r
   r   r     s    zCanvas.dcharsc                 G   s   | j | jdf|  d S Nr  r   r  r
   r
   r   r    s    zCanvas.deletec                 G   s   | j | jdf|  d S )Ndtagr   r  r
   r
   r   r  	  s    zCanvas.dtagc                 G   s    |  | j| jdf| pdS )Nfindr
   rI  r  r
   r
   r   r    s
    zCanvas.findc                 C   s   |  d|S r  r  rf   r  r
   r
   r   
find_above  s    zCanvas.find_abovec                 C   s
   |  dS r  r  r   r
   r
   r   find_all  s    zCanvas.find_allc                 C   s   |  d|S r  r  r  r
   r
   r   
find_below  s    zCanvas.find_belowc                 C   s   |  d||||S r  r  )rf   rV   rW   r  r  r
   r
   r   find_closest  s    zCanvas.find_closestc                 C   s   |  d||||S r  r  rf   r  r  r  r  r
   r
   r   find_enclosed&  s    zCanvas.find_enclosedc                 C   s   |  d||||S r  r  r  r
   r
   r   find_overlapping+  s    zCanvas.find_overlappingc                 C   s   |  d|S r  r  r  r
   r
   r   find_withtag0  s    zCanvas.find_withtagc                 G   s   | j | jdf| S r   r   r  r
   r
   r   rU   4  s    zCanvas.focusc                 G   s   | j | j | jdf| S )Ngettagsrp  r  r
   r
   r   r  8  s    zCanvas.gettagsc                 G   s   | j | jdf|  d S Nicursorr   r  r
   r
   r   r  =  s    zCanvas.icursorc                 G   s   | j | j | jdf| S Nr  r'  r  r
   r
   r   r  B  s    zCanvas.indexc                 G   s   | j | jdf|  d S Ninsertr   r  r
   r
   r   r  F  s    zCanvas.insertc                 C   s   | j | jdf|d| f S Nitemcgetr,   r   )rf   r  r  r
   r
   r   r  K  s    zCanvas.itemcgetc                 K   s   |  d|f||S Nitemconfigurer  rf   r  r%   r   r
   r
   r   r  P  s    zCanvas.itemconfigurec                 G   s   | j | jdf|  d S r  r   r  r
   r
   r   	tag_lower_  s    zCanvas.tag_lowerc                 G   s   | j | jdf|  d S )Nmover   r  r
   r
   r   r  f  s    zCanvas.mover[   c                 C   s   | j | jd||| d S )Nr  r   )rf   r  rV   rW   r
   r
   r   r  j  s    zCanvas.movetoc                 K   s   | j | jdf| || S )N
postscriptry  r  r
   r
   r   r  s  s    
zCanvas.postscriptc                 G   s   | j | jdf|  d S r  r   r  r
   r
   r   	tag_raise{  s    zCanvas.tag_raisec                 G   s   | j | jdf|  d S Nscaler   r  r
   r
   r   r    s    zCanvas.scalec                 C   s   | j | jdd|| d S Nscanmarkr   r  r
   r
   r   	scan_mark  s    zCanvas.scan_mark
   c                 C   s   | j | jdd||| d S Nr  dragtor   )rf   rV   rW   Zgainr
   r
   r   scan_dragto  s    zCanvas.scan_dragtoc                 C   s   | j | jdd|| d S )Nselectadjustr   rf   r  r  r
   r
   r   select_adjust  s    zCanvas.select_adjustc                 C   s   | j | jdd d S )Nr  r   r   r   r
   r
   r   select_clear  s    zCanvas.select_clearc                 C   s   | j | jdd|| d S )Nr  fromr   r  r
   r
   r   select_from  s    zCanvas.select_fromc                 C   s   | j | jddpd S )Nr  r   r   r   r
   r
   r   select_item  s    zCanvas.select_itemc                 C   s   | j | jdd|| d S )Nr  tor   r  r
   r
   r   	select_to  s    zCanvas.select_toc                 C   s   | j | jd|pd S Nr   r   r  r
   r
   r   r     s    zCanvas.type)NN)N)NNN)N)N)NN)N)r[   r[   )r  )@r@   rA   rB   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  rU   r  r  r  r  r  r  
itemconfigr  r  r  r  r  r  r  r!  r  r  r  r  r  r  r  r  r   r
   r
   r
   r   r  s
  sx   


	



	
	
r  c                   @   sB   e Zd Zdi fddZdd Zdd Zdd	 Zd
d Zdd ZdS )CheckbuttonNc                 K   s   t | |d|| d S NZcheckbuttonr  r  r
   r
   r   r     s    
zCheckbutton.__init__c                 C   s   | j | jd d S Ndeselectr   r   r
   r
   r   r    s    zCheckbutton.deselectc                 C   s   | j | jd d S r  r   r   r
   r
   r   r    s    zCheckbutton.flashc                 C   s   | j | jdS r  r   r   r
   r
   r   r    s    zCheckbutton.invokec                 C   s   | j | jd d S Nr  r   r   r
   r
   r   r    s    zCheckbutton.selectc                 C   s   | j | jd d S )Ntoggler   r   r
   r
   r   r    s    zCheckbutton.toggle)	r@   rA   rB   r   r  r  r  r  r  r
   r
   r
   r   r    s   r  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   s   t | |d|| d S )Nentryr  r  r
   r
   r   r     s    zEntry.__init__c                 C   s   | j | jd|| d S r  r   rf   firstZlastr
   r
   r   r    s    zEntry.deletec                 C   s   | j | jdS Nr   r   r   r
   r
   r   r     s    z	Entry.getc                 C   s   | j | jd| d S r  r   rf   r  r
   r
   r   r    s    zEntry.icursorc                 C   s   | j | j | jd|S r  r'  r  r
   r
   r   r    s    zEntry.indexc                 C   s   | j | jd|| d S r  r   )rf   r  r   r
   r
   r   r    s    zEntry.insertc                 C   s   | j | jdd| d S r  r   rf  r
   r
   r   r    s    zEntry.scan_markc                 C   s   | j | jdd| d S r  r   rf  r
   r
   r   r    s    zEntry.scan_dragtoc                 C   s   | j | jdd| d S )Nr  r  r   r  r
   r
   r   selection_adjust  s    zEntry.selection_adjustc                 C   s   | j | jdd d S Nr  r   r   r   r
   r
   r   r    s    zEntry.selection_clearc                 C   s   | j | jdd| d S )Nr  r  r   r  r
   r
   r   selection_from  s    zEntry.selection_fromc                 C   s   | j | j | jddS Nr  Zpresentr0  r   r
   r
   r   selection_present  s    zEntry.selection_presentc                 C   s   | j | jdd|| d S )Nr  ranger   rf   r  endr
   r
   r   selection_range  s    zEntry.selection_rangec                 C   s   | j | jdd| d S )Nr  r  r   r  r
   r
   r   selection_to  s    zEntry.selection_to)N)r@   rA   rB   r   r  r   r  r  r  r  r  r  r  r  r  r  r  r  Zselect_presentr  Zselect_ranger  r  r
   r
   r
   r   r    s(   
r  c                   @   s   e Zd Zdi fddZdS )FrameNc                 K   s^   t ||f}d}d|v r,d|d f}|d= nd|v rFd|d f}|d= t| |d|i | d S )Nr
   r  z-classr.  r  )r*   r  r   )rf   r   r%   r   r  r
   r
   r   r   &  s    zFrame.__init__r  r
   r
   r
   r   r  #  s   r  c                   @   s   e Zd Zdi fddZdS )LabelNc                 K   s   t | |d|| d S )Nlabelr  r  r
   r
   r   r   :  s    zLabel.__init__r  r
   r
   r
   r   r  7  s   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   s   t | |d|| d S )NZlistboxr  r  r
   r
   r   r   R  s    zListbox.__init__c                 C   s   | j | jd| d S Nactivater   r  r
   r
   r   r  \  s    zListbox.activatec                 C   s   |  | j| jd|pd S r  rI  r  r
   r
   r   r  `  s    zListbox.bboxc                 C   s   |  | j| jdpdS )Ncurselectionr
   rI  r   r
   r
   r   r  e  s    zListbox.curselectionc                 C   s   | j | jd|| d S r  r   r	  r
   r
   r   r  i  s    zListbox.deletec                 C   s:   |d ur$| j | j | jd||S | j | jd|S d S r  rp  r	  r
   r
   r   r   m  s
    
zListbox.getc                 C   s*   | j | jd|}|dkrd S | j |S Nr  r   r1   r   r   r   rf   r  rh   r
   r
   r   r  u  s    zListbox.indexc                 G   s   | j | jd|f|  d S r  r   )rf   r  elementsr
   r
   r   r  {  s    zListbox.insertc                 C   s   | j | j | jd|S )Nnearestr'  )rf   rW   r
   r
   r   r"    s    zListbox.nearestc                 C   s   | j | jdd|| d S r  r   r  r
   r
   r   r    s    zListbox.scan_markc                 C   s   | j | jdd|| d S r  r   r  r
   r
   r   r    s    zListbox.scan_dragtoc                 C   s   | j | jd| d S Nseer   r  r
   r
   r   r$    s    zListbox.seec                 C   s   | j | jdd| d S )Nr  r  r   r  r
   r
   r   selection_anchor  s    zListbox.selection_anchorc                 C   s   | j | jdd|| d S r  r   r	  r
   r
   r   r    s    
zListbox.selection_clearc                 C   s   | j | j | jdd|S )Nr  Zincludesr0  r  r
   r
   r   selection_includes  s    
zListbox.selection_includesc                 C   s   | j | jdd|| d S )Nr  r   r   r	  r
   r
   r   selection_set  s    zListbox.selection_setc                 C   s   | j | j | jdS )Nr  r'  r   r
   r
   r   r    s    zListbox.sizec                 C   s   | j | jdf|d| f S r  r   rf   r  r  r
   r
   r   r    s    zListbox.itemcgetc                 K   s   |  d|f||S r  r  r  r
   r
   r   r    s    zListbox.itemconfigure)N)N)N)N)N)r@   rA   rB   r   r  r  r  r  r   r  r  r"  r  r  r$  r%  Zselect_anchorr  r  r&  Zselect_includesr'  Z
select_setr  r  r  r   r
   r
   r
   r   r  O  s0   






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d7d%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 )8MenuNc                 K   s   t | |d|| d S Nmenur  r  r
   r
   r   r     s    zMenu.__init__r[   c                 C   s   | j d| j||| d S )Ntk_popupr   )rf   rV   rW   r  r
   r
   r   r,    s    zMenu.tk_popupc                 C   s   | j | jd| d S r  r   r  r
   r
   r   r    s    zMenu.activatec                 K   s$   | j | jd|f| ||  d S Nr   ry  )rf   r  r%   r   r
   r
   r   r     s    
zMenu.addc                 K   s   |  d|p| d S NZcascader   r  r
   r
   r   add_cascade  s    zMenu.add_cascadec                 K   s   |  d|p| d S r  r/  r  r
   r
   r   add_checkbutton  s    zMenu.add_checkbuttonc                 K   s   |  d|p| d S Nr  r/  r  r
   r
   r   add_command  s    zMenu.add_commandc                 K   s   |  d|p| d S NZradiobuttonr/  r  r
   r
   r   add_radiobutton  s    zMenu.add_radiobuttonc                 K   s   |  d|p| d S N	separatorr/  r  r
   r
   r   add_separator  s    zMenu.add_separatorc                 K   s&   | j | jd||f| ||  d S r  ry  )rf   r  r  r%   r   r
   r
   r   r    s    
zMenu.insertc                 K   s   |  |d|p| d S r.  r  r  r
   r
   r   insert_cascade  s    zMenu.insert_cascadec                 K   s   |  |d|p| d S r  r9  r  r
   r
   r   insert_checkbutton  s    zMenu.insert_checkbuttonc                 K   s   |  |d|p| d S r2  r9  r  r
   r
   r   insert_command  s    zMenu.insert_commandc                 K   s   |  |d|p| d S r4  r9  r  r
   r
   r   insert_radiobutton  s    zMenu.insert_radiobuttonc                 K   s   |  |d|p| d S r6  r9  r  r
   r
   r   insert_separator  s    zMenu.insert_separatorc                 C   s   |d u r|}|  ||  | }}|d u s2|d u r:d\}}t||d D ]0}d| |v rHt| |d}|rH| | qH| j| jd|| d S )N)r   r  r   r  r  )	r  r  entryconfigr   	entrycgetr   r1   r   r   )rf   index1index2Z
num_index1Z
num_index2rh   r&   r
   r
   r   r  	  s    zMenu.deletec                 C   s   | j | jd|d| S )Nr@  r,   r   r(  r
   r
   r   r@    s    zMenu.entrycgetc                 K   s   |  d|f||S )Nentryconfigurer  r  r
   r
   r   rC    s    zMenu.entryconfigurec                 C   s*   | j | jd|}|dkrd S | j |S r  r  r   r
   r
   r   r  #  s    z
Menu.indexc                 C   s   | j | jd|S r  r   r  r
   r
   r   r  )  s    zMenu.invokec                 C   s   | j | jd|| d S )Npostr   r  r
   r
   r   rD  .  s    z	Menu.postc                 C   s   | j | jd|S r  r   r  r
   r
   r   r   2  s    z	Menu.typec                 C   s   | j | jd d S )Nunpostr   r   r
   r
   r   rE  6  s    zMenu.unpostc                 C   s   | j | j | jd|S )N	xpositionr'  r  r
   r
   r   rF  :  s    zMenu.xpositionc                 C   s   | j | j | jd|S )N	ypositionr'  r  r
   r
   r   rG  ?  s    zMenu.yposition)r[   )N)N)r@   rA   rB   r   r,  r  r   r0  r1  r3  r5  r8  r  r:  r;  r<  r=  r>  r  r@  rC  r?  r  r  rD  r   rE  rF  rG  r
   r
   r
   r   r)    s4   	


r)  c                   @   s   e Zd Zdi fddZdS )
MenubuttonNc                 K   s   t | |d|| d S )N
menubuttonr  r  r
   r
   r   r   H  s    zMenubutton.__init__r  r
   r
   r
   r   rH  E  s   rH  c                   @   s   e Zd Zdi fddZdS )MessageNc                 K   s   t | |d|| d S )Nmessager  r  r
   r
   r   r   O  s    zMessage.__init__r  r
   r
   r
   r   rJ  L  s   rJ  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   s   t | |d|| d S r4  r  r  r
   r
   r   r   V  s    
zRadiobutton.__init__c                 C   s   | j | jd d S r  r   r   r
   r
   r   r  b  s    zRadiobutton.deselectc                 C   s   | j | jd d S r  r   r   r
   r
   r   r  g  s    zRadiobutton.flashc                 C   s   | j | jdS r  r   r   r
   r
   r   r  k  s    zRadiobutton.invokec                 C   s   | j | jd d S r  r   r   r
   r
   r   r  o  s    zRadiobutton.select)r@   rA   rB   r   r  r  r  r  r
   r
   r
   r   rL  S  s
   rL  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   s   t | |d|| d S r  r  r  r
   r
   r   r   w  s    	zScale.__init__c              
   C   sH   | j | jd}z| j |W S  tttfyB   | j | Y S 0 d S r  )r1   r   r   r   rv   r"   r   r   r   r
   r
   r   r     s
    z	Scale.getc                 C   s   | j | jd| d S Nr   r   r   r
   r
   r   r     s    z	Scale.setc                 C   s   |  | j| jd|S )Nr  rI  r   r
   r
   r   r    s    zScale.coordsc                 C   s   | j | jd||S Nidentifyr   r  r
   r
   r   rP    s    zScale.identify)N)r@   rA   rB   r   r   r   r  rP  r
   r
   r
   r   rM  t  s
   
rM  c                   @   sL   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   s   t | |d|| d S )NZ	scrollbarr  r  r
   r
   r   r     s    	zScrollbar.__init__c                 C   s   | j | jd|pd S r  r   r  r
   r
   r   r    s    zScrollbar.activatec                 C   s   | j | j | jd||S )NrQ   r6  )rf   ZdeltaxZdeltayr
   r
   r   rQ     s    zScrollbar.deltac                 C   s   | j | j | jd||S )Nr  r6  r  r
   r
   r   r    s    zScrollbar.fractionc                 C   s   | j | jd||S rO  r   r  r
   r
   r   rP    s    zScrollbar.identifyc                 C   s   |  | j| jdS r  )r  r1   r   r   r   r
   r
   r   r     s    zScrollbar.getc                 C   s   | j | jd|| d S rN  r   r	  r
   r
   r   r     s    zScrollbar.set)N)
r@   rA   rB   r   r  rQ   r  rP  r   r   r
   r
   r
   r   rQ    s   
	rQ  c                   @   s  e Zd Zdi fddZdd Zdd Zdd	 Zdjd
dZdkddZdd Z	dlddZ
dd ZdmddZdd Zdd Zdd Zdd ZdnddZd d! Zdod"d#Zi fd$d%Zd&d' Zd(d) Zd*d+ Zdpd,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"dqdBdCZ#dDdE Z$dFdG Z%drdHdIZ&dsdJdKZ'dLdM Z(dtdNdOZ)e)Z*dPdQ Z+dudRdSZ,dvdTdUZ-dwdVdWZ.dxdXdYZ/dydZd[Z0d\d] Z1dzd^d_Z2d`da Z3d{dbdcZ4e4Z5i fdddeZ6dfdg Z7dhdi Z8dS )|TextNc                 K   s   t | |d|| d S r  r  r  r
   r
   r   r     s    zText.__init__c                 C   s   |  | j| jd|pd S r  rI  r  r
   r
   r   r    s
    z	Text.bboxc              	   C   s   | j | j | jd|||S )Ncomparer0  )rf   rA  oprB  r
   r
   r   rS    s    zText.comparec                 G   sX   dd |D }|||g7 }| j j| jdg|R  p4d }|d urPt|dkrP|fS |S d S )Nc                 S   s   g | ]}| d sd| qS )r,   r  )
startswith)rI   argr
   r
   r   r     rK   zText.count.<locals>.<listcomp>r     )r1   r   r   r   )rf   rA  rB  r   r   r
   r
   r   r    s    z
Text.countc                 C   s6   |d u r | j | j | jdS | j | jd| d S )Ndebugr0  r   r
   r
   r   rX  	  s    z
Text.debugc                 C   s   | j | jd|| d S r  r   rf   rA  rB  r
   r
   r   r    s    zText.deletec                 C   s   |  | j| jd|S )N	dlineinforI  r  r
   r
   r   rZ    s    zText.dlineinfoc           
   	   K   s   g }d }d }|s$g }|fdd}|}zt |ts>| | }}|d|g7 }|D ]}	||	 rN|d|	  qN|| |r|| | jj| jdg|R   |W |r| | S n|r| | 0 d S )Nc                 S   s   | | ||f d S rs   )rd   )r5   r	   r  r+  r
   r
   r   append_triple/  s    z Text.dump.<locals>.append_triplez-commandr,   dump)r   r   r   rd   r1   r   r   r   )
rf   rA  rB  r  r   r   	func_namer+  r[  r5   r
   r
   r   r\    s2    



 z	Text.dumpc                 G   s   | j j| jdg|R  S )Neditr   r  r
   r
   r   r^  B  s    z	Text.editc                 C   s   |  d|S )NZmodifiedr^  )rf   rV  r
   r
   r   edit_modifiedQ  s    	zText.edit_modifiedc                 C   s
   |  dS )NZredor_  r   r
   r
   r   	edit_redo\  s    zText.edit_redoc                 C   s
   |  dS )Nresetr_  r   r
   r
   r   
edit_resetf  s    zText.edit_resetc                 C   s
   |  dS r6  r_  r   r
   r
   r   edit_separatork  s    zText.edit_separatorc                 C   s
   |  dS )NZundor_  r   r
   r
   r   	edit_undor  s    	zText.edit_undoc                 C   s   | j | jd||S r  r   rY  r
   r
   r   r   }  s    zText.getc                 C   sJ   |d d dkrd| }|dd  dkr4|d d }| j | jdd||S )Nr   r,   r  r  r  r  r   r(  r
   r
   r   
image_cget  s
    zText.image_cgetc                 K   s   |  dd|f||S )Nr  r  r  r  r
   r
   r   image_configure  s    zText.image_configurec                 K   s$   | j j| jdd|g| ||R  S )Nr  rN  ry  r  r
   r
   r   image_create  s
    

zText.image_createc                 C   s   | j | jddS r  r   r   r
   r
   r   r    s    zText.image_namesc                 C   s   t | j| jd|S r  )r   r1   r   r   r  r
   r
   r   r    s    z
Text.indexc                 G   s   | j | jd||f|  d S r  r   )rf   r  charsr   r
   r
   r   r    s    zText.insertc                 C   s   | j | jdd||fS )Nr  Zgravityr   )rf   markName	directionr
   r
   r   mark_gravity  s    zText.mark_gravityc                 C   s   | j | j | jddS )Nr  r  rp  r   r
   r
   r   
mark_names  s    zText.mark_namesc                 C   s   | j | jdd|| d S )Nr  r   r   )rf   rj  r  r
   r
   r   mark_set  s    zText.mark_setc                 G   s   | j | jddf|  d S )Nr  Zunsetr   )rf   Z	markNamesr
   r
   r   
mark_unset  s    zText.mark_unsetc                 C   s   | j | jdd|pd S )Nr  nextr   r  r
   r
   r   	mark_next  s    zText.mark_nextc                 C   s   | j | jdd|pd S )Nr  Zpreviousr   r  r
   r
   r   mark_previous  s    zText.mark_previousc                 K   s(   | j j| jdd|g| ||R   d S )NpeerrN  ry  )rf   ZnewPathNamer%   r   r
   r
   r   peer_create  s    
zText.peer_createc                 C   s   | j | j | jddS )Nrs  r  rp  r   r
   r
   r   
peer_names  s    zText.peer_namesc                 G   s"   | j j| jd|||g|R   d S )Nr   r   )rf   rA  rB  ri  r   r
   r
   r   r     s    zText.replacec                 C   s   | j | jdd|| d S r  r   r  r
   r
   r   r    s    zText.scan_markc                 C   s   | j | jdd|| d S r  r   r  r
   r
   r   r    s    zText.scan_dragtoc                 C   s   | j dg}|r|d |r&|d |r4|d |rB|d |rP|d |
r^|d |	rv|d ||	 |r|d	 d
kr|d || || |r|| t| jt|S )Nr   z	-forwardsz
-backwardsz-exactz-regexpz-nocasez-elidez-countr   r,   r   )r   rd   r   r1   r   r   )rf   r	  r  Z	stopindexZforwardsZ	backwardsexactZregexpZnocaser  Zelider   r
   r
   r   r     s    


zText.searchc                 C   s   | j | jd| d S r#  r   r  r
   r
   r   r$    s    zText.seec                 G   s    | j | jdd||f|  d S )Ntagr   r   )rf   tagNamerA  r   r
   r
   r   tag_add  s    zText.tag_addc                 C   s*   | j | jdd||d |r&| | d S )Nrw  ry  r[   r}  )rf   rx  rt  rv  r
   r
   r   r    s    zText.tag_unbindc                 C   s   |  | jdd|f|||S )Nrw  ry  rz  )rf   rx  rt  r   r   r
   r
   r   r     s    zText.tag_bindc                 C   sJ   |d d dkrd| }|dd  dkr4|d d }| j | jdd||S )Nr   r,   r  r  rw  r  r   )rf   rx  r  r
   r
   r   tag_cget	  s
    zText.tag_cgetc                 K   s   |  dd|f||S )Nrw  r  r  )rf   rx  r%   r   r
   r
   r   tag_configure  s    zText.tag_configurec                 G   s   | j | jddf|  d S )Nrw  r  r   )rf   ZtagNamesr
   r
   r   
tag_delete  s    zText.tag_deletec                 C   s   | j | jdd|| d S )Nrw  r  r   )rf   rx  r  r
   r
   r   r    s    zText.tag_lowerc                 C   s   | j | j | jdd|S )Nrw  r  rp  r  r
   r
   r   	tag_names   s    zText.tag_namesc              
   C   s    | j | j | jdd|||S )Nrw  Z	nextrangerp  rf   rx  rA  rB  r
   r
   r   tag_nextrange%  s    zText.tag_nextrangec              
   C   s    | j | j | jdd|||S )Nrw  Z	prevrangerp  r~  r
   r
   r   tag_prevrange,  s    zText.tag_prevrangec                 C   s   | j | jdd|| d S )Nrw  r  r   )rf   rx  r   r
   r
   r   r  3  s    zText.tag_raisec                 C   s   | j | j | jdd|S )Nrw  Zrangesrp  )rf   rx  r
   r
   r   
tag_ranges9  s    
zText.tag_rangesc                 C   s   | j | jdd||| d S )Nrw  r   r   r~  r
   r
   r   
tag_remove>  s    zText.tag_removec                 C   sJ   |d d dkrd| }|dd  dkr4|d d }| j | jdd||S )Nr   r,   r  r  r   r  r   r(  r
   r
   r   window_cgetC  s
    zText.window_cgetc                 K   s   |  dd|f||S )Nr   r  r  r  r
   r
   r   window_configureK  s    zText.window_configurec                 K   s&   | j | jdd|f| ||  d S )Nr   rN  ry  r  r
   r
   r   window_createQ  s
    
zText.window_createc                 C   s   | j | j | jddS )Nr   r  rp  r   r
   r
   r   window_namesW  s    zText.window_namesc                 G   s   | j | jddf|  d S )Nr  z
-pickplacer   )rf   rp   r
   r
   r   yview_pickplace\  s    zText.yview_pickplace)N)N)NN)N)N)N)N)NNNNNNNN)N)N)N)N)N)N)N)N)N)N)9r@   rA   rB   r   r  rS  r  rX  r  rZ  r\  r^  r`  ra  rc  rd  re  r   rf  rg  rh  r  r  r  rl  rm  rn  ro  rq  rr  rt  ru  r   r  r  r   r$  ry  r  r  rz  r{  Z
tag_configr|  r  r}  r  r  r  r  r  r  r  Zwindow_configr  r  r  r
   r
   r
   r   rR    sr   


(




   


	







rR  c                   @   s   e Zd ZdddZdd ZdS )_setitNc                 C   s   || _ || _|| _d S rs   )_setit__value_setit__var_setit__callback)rf   varr	   r   r
   r
   r   r   d  s    z_setit.__init__c                 G   s,   | j | j | jr(| j| jg|R   d S rs   )r  r   r  r  r  r
   r
   r   r   i  s    z_setit.__call__)Nr  r
   r
   r
   r   r  a  s   
r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )
OptionMenuc           
      O   s   d|dt ddd}t| |d| d| _t| ddd	 }| _|j| _|d
}d
|v r\|d
= |rtt	dt
t| |j|t|||d |D ]}	|j|	t||	|d q|| d< d S )Nr+   r   r&   )ZborderwidthZtextvariableZindicatoronZreliefr  ZhighlightthicknessrI  Ztk_optionMenur+  r   )rZ   Ztearoffr  zunknown option -)r  r  )ZRAISEDr  r   r  r)  _OptionMenu__menur   Zmenunamer   r   rp  r/   r3  r  )
rf   r   r   r	   rb  kwargsr   r+  r   r)   r
   r
   r   r   r  s*    


zOptionMenu.__init__c                 C   s   |dkr| j S t| |S r*  )r  r  r  r   r
   r
   r   r    s    zOptionMenu.__getitem__c                 C   s   t |  d | _d S rs   )rH  r   r  r   r
   r
   r   r     s    
zOptionMenu.destroyN)r@   rA   rB   r   r  r   r
   r
   r
   r   r  o  s   r  c                   @   sd   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 | _ |std}t|d|| _|s>t jd7  _dtjf }|rT|rTt||f}n|r\|}d}| D ]*\}}t|r| 	|}|d| |f }qh| j
dd||f|  || _ d S )	Nzcreate imager1   r   z	pyimage%rr
   r,   r  rN  )rZ   rr   ra   r1   r  _last_idr*   r$   r  r   r   )	rf   ZimgtyperZ   r%   r   r   r  r(   r)   r
   r
   r   r     s     
zImage.__init__c                 C   s   | j S rs   )rZ   r   r
   r
   r   rE     rK   zImage.__str__c                 C   s4   | j r0z| jdd| j  W n ty.   Y n0 d S )Nr  r  )rZ   r1   r   r   r   r
   r
   r   r     s
    zImage.__del__c                 C   s   | j | jdd| | d S Nr  r,   r1   r   rZ   r  r
   r
   r   r    s    zImage.__setitem__c                 C   s   | j | jdd| S r  r  r  r
   r
   r   r    s    zImage.__getitem__c                 K   sv   d}t | D ]J\}}|d ur|d dkr8|d d }t|rJ| |}|d| |f }q| j| jdf|  d S )Nr
   r  r  r,   r  )r*   r$   r  r   r1   r   rZ   )rf   r   r   r(   r)   r
   r
   r   r    s    
zImage.configurec                 C   s   | j | j dd| jS )Nr  rY   r1   r   r   rZ   r   r
   r
   r   rY     s    zImage.heightc                 C   s   | j dd| jS )Nr  r   r  r   r
   r
   r   r     s    z
Image.typec                 C   s   | j | j dd| jS )Nr  rX   r  r   r
   r
   r   rX     s    zImage.width)r@   rA   rB   r  r   rE   r   r  r  r  r  rY   r   rX   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   s   t j| d|||fi | d S )NZphotor  r   rf   rZ   r%   r   r   r
   r
   r   r     s    zPhotoImage.__init__c                 C   s   | j | jd d S )Nblankr  r   r
   r
   r   r    s    zPhotoImage.blankc                 C   s   | j | jdd| S r  r  )rf   r  r
   r
   r   r    s    zPhotoImage.cgetc                 C   s   | j | jdd| S r  r  r  r
   r
   r   r    s    zPhotoImage.__getitem__c                 C   s"   t | jd}| j|d| j |S )Nr  copyr  r1   r   rZ   )rf   	destImager
   r
   r   r    s    zPhotoImage.copyr[   c                 C   s4   t | jd}|dkr|}| j|d| jd|| |S )Nr  r[   r  z-zoomr  rf   rV   rW   r  r
   r
   r   zoom  s    zPhotoImage.zoomc                 C   s4   t | jd}|dkr|}| j|d| jd|| |S )Nr  r[   r  z
-subsampler  r  r
   r
   r   	subsample  s    zPhotoImage.subsamplec                 C   s   | j | jd||S r  r  r  r
   r
   r   r   	  s    zPhotoImage.getc                 C   sH   | j d|f}|r8|d dkr(|dd  }|d t| }| j| d S )Nputr   -tor   )r  rZ   r   r1   r   )rf   r   r  r   r
   r
   r   r    s    zPhotoImage.putc                 C   s@   | j d|f}|r|d|f }|r0|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   )r1   r   r   rZ   r  r
   r
   r   transparency_get"  s    zPhotoImage.transparency_getc                 C   s   | j | jdd||| d S )Nr  r   r  )rf   rV   rW   r   r
   r
   r   transparency_set'  s    zPhotoImage.transparency_set)r[   )r[   )N)NN)r@   rA   rB   r   r  r  r  r  r  r  r   r  r  r  r  r
   r
   r
   r   r    s   






r  c                   @   s   e Zd Zdi dfddZdS )BitmapImageNc                 K   s   t j| d|||fi | d S r  r  r  r
   r
   r   r   /  s    zBitmapImage.__init__r  r
   r
   r
   r   r  ,  s   r  c                  C   s   t dj} | | ddS )Nzuse image_names()r  r  rr   r1   r-   r   r1   r
   r
   r   r  6  s    
r  c                  C   s   t dj} | | ddS )Nzuse image_types()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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   s   t | |d|| d S )NZspinboxr  r  r
   r
   r   r   C  s    zSpinbox.__init__c                 C   s   |  | j| jd|pd S r  rI  r  r
   r
   r   r  `  s    zSpinbox.bboxc                 C   s   | j | jd||S r  r   r	  r
   r
   r   r  n  s    	zSpinbox.deletec                 C   s   | j | jdS r  r   r   r
   r
   r   r   y  s    zSpinbox.getc                 C   s   | j | jd|S r  r   r  r
   r
   r   r  }  s    zSpinbox.icursorc                 C   s   | j | jd||S rO  r   r  r
   r
   r   rP    s    zSpinbox.identifyc                 C   s   | j | jd|S r  r   r  r
   r
   r   r    s    zSpinbox.indexc                 C   s   | j | jd||S r  r   )rf   r  rg   r
   r
   r   r    s    zSpinbox.insertc                 C   s   | j | jd|S r  r   rf   elementr
   r
   r   r    s    zSpinbox.invokec                 G   s    |  | j| jdf| pdS )Nr  r
   rI  r  r
   r
   r   r    s
    zSpinbox.scanc                 C   s   |  d|S Nr  r  rf  r
   r
   r   r    s    zSpinbox.scan_markc                 C   s   |  d|S )Nr  r  rf  r
   r
   r   r    s    
zSpinbox.scan_dragtoc                 G   s    |  | j| jdf| pdS )Nr  r
   rI  r  r
   r
   r   r    s
    zSpinbox.selectionc                 C   s   |  d|S )Nr  r  r  r
   r
   r   r    s    zSpinbox.selection_adjustc                 C   s
   |  dS )Nr   r  r   r
   r
   r   r    s    zSpinbox.selection_clearc                 C   s   | j | jdd|S )Nr  r  r   r  r
   r
   r   selection_element  s    zSpinbox.selection_elementc                 C   s   |  d| d S )Nr  r  r  r
   r
   r   r    s    zSpinbox.selection_fromc                 C   s   | j | j | jddS r  r0  r   r
   r
   r   r    s    zSpinbox.selection_presentc                 C   s   |  d|| d S )Nr  r  r  r
   r
   r   r    s    zSpinbox.selection_rangec                 C   s   |  d| d S )Nr  r  r  r
   r
   r   r    s    zSpinbox.selection_to)N)N)r@   rA   rB   r   r  r  r   r  rP  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
   r
   r
   r   r  @  s(   
	
r  c                   @   s   e Zd Zdi fddZdS )
LabelFrameNc                 K   s   t | |d|| d S )NZ
labelframer  r  r
   r
   r   r     s    zLabelFrame.__init__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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   s   t | |d|| d S )NZpanedwindowr  r  r
   r
   r   r     s    zPanedWindow.__init__c                 K   s"   | j | jd|f| |  d S r-  ry  )rf   r,  r   r
   r
   r   r     s    zPanedWindow.addc                 C   s   | j | jd| d S Nr  r   )rf   r,  r
   r
   r   r   '  s    zPanedWindow.removec                 C   s   | j | jd||S rO  r   r  r
   r
   r   rP  0  s    
zPanedWindow.identifyc                 G   s    |  | j| jdf| pdS )Nproxyr
   rI  r  r
   r
   r   r  <  s
    zPanedWindow.proxyc                 C   s
   |  dS NZcoordr  r   r
   r
   r   proxy_coordA  s    zPanedWindow.proxy_coordc                 C   s
   |  dS r  r  r   r
   r
   r   proxy_forgetF  s    zPanedWindow.proxy_forgetc                 C   s   |  d||S Nr  r  r  r
   r
   r   proxy_placeK  s    zPanedWindow.proxy_placec                 G   s    |  | j| jdf| pdS )Nsashr
   rI  r  r
   r
   r   r  P  s
    zPanedWindow.sashc                 C   s   |  d|S r  r  r  r
   r
   r   
sash_coordU  s    zPanedWindow.sash_coordc                 C   s   |  d|S r  r  r  r
   r
   r   	sash_markc  s    zPanedWindow.sash_markc                 C   s   |  d|||S r  r  )rf   r  rV   rW   r
   r
   r   
sash_placej  s    zPanedWindow.sash_placec                 C   s   | j | jdf|d| f S )Npanecgetr,   r   )rf   r,  r  r
   r
   r   r  o  s    zPanedWindow.panecgetc                 K   sd   |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  r1   r   r   r  r
   r
   r   r  w  s    D
zPanedWindow.paneconfigurec                 C   s   | j | j | jdS )Npanesrp  r   r
   r
   r   r    s    zPanedWindow.panes)N)r@   rA   rB   r   r   r   r  rP  r  r  r  r  r  r  r  r  r  r  Z
paneconfigr  r
   r
   r
   r   r  
  s"   

Lr  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: çr  z	Click me!c                 S   s   | j jd| j d  dS )Nz[%s]r  r  )testr  )rq   r
   r
   r   <lambda>  s   z_test.<locals>.<lambda>)r  r  ZQUIT)ro   
TclVersionr  r  rC   r  r   r#  r    r  r   )rq   r  r  r  r  r
   r
   r   _test  s     
r  c                 C   s2   g | ]*\}}| d st|tjs|dvr|qS )r  >   rO  )rU  r   r  
ModuleType)rI   rZ   objr
   r
   r   r     s   r   __main__)TN)N)r   )r   )NNro   F)Yenumr  r  r  r   Ztkinter.constantsrerO  floatr_  Z	TkVersionr`  r  ZREADABLEZWRITABLEZ	EXCEPTIONcompiler   ASCIIr   r   r   r   r!   r*   r6   r   Enumr7   rF   rl   rm   rn   rr   ru   ry   r   rz   r   r   r   r   r   rb   r   r   r   r   r   r  r  r  ro   rw  rx  r  r  r  r  r  rC   r  r  r  r  r  r  r)  rH  rJ  rL  rM  rQ  rR  r  r  r  r  r  r  r  r  r  r  r  globalsr$   __all__r@   r
   r
   r
   r   <module>!   s   



,R

	 6

         q  2~
.37?/  8$Vt !'2   'BT
 3 C
