???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d͕                    @   s  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k
r   Y nX dd Zz
ejZW n ek
r   Y nX dxddZG dd dee jZG dd dZdadadd ZdyddZ dd Z!dzd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.Z/G d/d0 d0Z0G d1d2 d2Z1G d3d4 d4Z2G d5d6 d6e.e2Z3d|d7d8Z4G d9d: d:Z5G d;d< d<Z6G d=d> d>Z7G d?d@ d@e.Z8G dAdB dBe8e5e6e7Z9G dCdD dDe8e2Z:G dEdF dFe9Z;G dGdH dHe9e0e1Z<G dIdJ dJe9Z=G dKdL dLe9e0Z>G dMdN dNe9Z?G dOdP dPe9Z@G dQdR dRe9e0e1ZAG dSdT dTe9ZBG dUdV dVe9ZCG dWdX dXe9ZDG dYdZ dZe9ZEG d[d\ d\e9ZFG d]d^ d^e9ZGG d_d` d`e9e0e1ZHG dadb dbZIG dcdd ddeCZJG dedf dfZKG dgdh dheKZLG didj djeKZMdkdl ZNdmdn ZOG dodp dpe9e0ZPG dqdr dre9ZQG dsdt dte9ZRdudv ZSeTdwkreS  dS )}    N)*   z([\\{}])z([\s])c                 C   s   d tt| S )N )joinmap
_stringifyvalue r
   (/usr/lib64/python3.8/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 k	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k
r } z(td| |	 D ]\}}|||< qjW 5 d }~X Y q0X 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>   s       z"Event.__repr__.<locals>.<dictcomp>charrG   
send_eventTr   state)ZShiftZLockZControlZMod1ZMod2ZMod3ZMod4ZMod5ZButton1ZButton2ZButton3ZButton4ZButton5r   |delta)rL   rM   keysymkeycoderK   numrO   focusxywidthheightz<%s event%s>name c                 3   s&   | ]}| krd | | f V  qdS )z %s=%sNr
   )rI   r(   Zattrsr
   r   	<genexpr>  s      z!Event.__repr__.<locals>.<genexpr>)__dict__r$   rK   reprgetattrrM   r   int	enumerateappendr   hexr   rO   r   )selfrM   Zmodssinkeysr
   rZ   r   __repr__   s6    


zEvent.__repr__N)r@   rA   rB   rh   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    rk   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)ri   r.   rj   Tk)whatrootr
   r
   r   _get_default_root#  s    ro   c                 C   s   d S Nr
   )errr
   r
   r   _tkerror/  s    rr   c                 C   s.   zt | } W n tk
r    Y nX t| d S rp   )r_   
ValueError
SystemExit)coder
   r
   r   _exit4  s
    rv   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 )VariablerY   Nc                 C   s   |d k	rt |tstd|s&td}| | _|j| _|rD|| _ndtt	 | _t	d7 a	|d k	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"   ro   _rootr1   _tk_namer]   _varnum
initialize
getbooleancall_defaultrc   masterr	   rX   r
   r
   r   __init__I  s    
zVariable.__init__c                 C   sb   | j d krd S | j | j dd| jr6| j | j | jd k	r^| jD ]}| j | qFd | _d S )Nry   rz   )r|   r   r   r}   Zglobalunsetvar_tclCommandsdeletecommandrc   rX   r
   r
   r   __del__g  s    


zVariable.__del__c                 C   s   | j S rp   )r}   rc   r
   r
   r   rE   s  s    zVariable.__str__c                 C   s   | j | j|S rp   )r|   globalsetvarr}   rc   r	   r
   r
   r   setw  s    zVariable.setc                 C   s   | j | jS rp   )r|   globalgetvarr}   r   r
   r
   r   get}  s    zVariable.getc                 C   s   t |d | jj}tt|}z
|j}W n tk
r:   Y nX z||j }W n tk
r^   Y nX | j	|| | j
d kr~g | _
| j
| |S rp   )CallWrapperr{   __call__r]   id__func__r!   r@   r|   createcommandr   ra   )rc   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}   rc   moder   r   r
   r
   r   	trace_add  s    

  zVariable.trace_addc                 C   sx   | j ddd| j|| |  D ] \}}| j |d |kr  qtq | j | z| j| W n tk
rr   Y nX d S )Nr   remover   r   )	r|   r   r}   
trace_infor-   r   r   r   rs   rc   r   r   mZ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>  s     z'Variable.trace_info.<locals>.<listcomp>r   ry   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k
r   Y nX d S )Nr   Zvdeleter   )	r|   r   r}   r-   r   r   r   r   rs   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   rT   r   r
   r   r     s     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 rp   )r   rw   NotImplementedr}   	__class__r@   r|   )rc   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   rw   @  s$   

rw   c                   @   s"   e Zd ZdZdddZdd ZdS )	StringVarrY   Nc                 C   s   t | ||| d S rp   rw   r   r   r
   r
   r   r     s    
zStringVar.__init__c                 C   s$   | j | j}t|tr|S t|S rp   )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 rp   r   r   r
   r
   r   r     s    
zIntVar.__init__c              	   C   sJ   | j | j}z| j |W S  ttfk
rD   t| j | Y S X d S rp   )r|   r   r}   getintr"   TclErrorr_   	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 rp   r   r   r
   r
   r   r   *  s    
zDoubleVar.__init__c                 C   s   | j | j | jS rp   )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 rp   r   r   r
   r
   r   r   ?  s    
zBooleanVar.__init__c                 C   s   | j | j| j |S rp   )r|   r   r}   r   r   r
   r
   r   r   K  s    zBooleanVar.setc                 C   s:   z| j | j | jW S  tk
r4   tdY nX d S N invalid literal for getboolean())r|   r   r   r}   r   rs   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)ro   r1   mainloop)rf   r
   r
   r   r   Y  s    r   c                 C   s4   zt dj| W S  tk
r.   tdY nX d S )Nzuse getboolean()r   )ro   r1   r   r   rs   rd   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 k	r(| j D ]}| j| qd | _ d S rp   )r   r1   r   r   r
   r
   r   destroyx  s    

zMisc.destroyc                 C   s6   | j | z| j| W n tk
r0   Y nX d S rp   )r1   r   r   r   rs   r   r
   r
   r   r     s
    zMisc.deletecommandc                 C   s   | j | j dd|S )Nr   tk_strictMotif)r1   r   r   rc   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$   rc   argskwr
   r
   r   r     s
    zMisc.tk_setPaletterx   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 kr| }| j dd|j d S )Nr   windowr1   r   _wrc   r   r
   r
   r   wait_window  s    zMisc.wait_windowc                 C   s"   |d k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 rp   )r1   setvar)rc   rX   r	   r
   r
   r   r     s    zMisc.setvarc                 C   s   | j |S rp   )r1   getvarr   r
   r
   r   r     s    zMisc.getvarc              
   C   sB   z| j |W S  tk
r< } ztt|W 5 d }~X Y nX d S rp   )r1   r   r   rs   r   rc   rd   excr
   r
   r   r     s    zMisc.getintc              
   C   sB   z| j |W S  tk
r< } ztt|W 5 d }~X Y nX d S rp   )r1   r   r   rs   r   r   r
   r
   r   r     s    zMisc.getdoublec                 C   s0   z| j |W S  tk
r*   tdY nX d S r   )r1   r   r   rs   )rc   rd   r
   r
   r   r     s    zMisc.getbooleanc                 C   s   | j d| j d S NrS   r   r   r
   r
   r   	focus_set  s    zMisc.focus_setc                 C   s   | j dd| j d S )NrS   z-forcer   r   r
   r
   r   focus_force  s    zMisc.focus_forcec                 C   s&   | j d}|dks|sd S | |S )NrS   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 )NrS   
-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 )NrS   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                      s8   z   W 5 z  W n tk
r0   Y nX X d S rp   )r   r   r
   r   funcrX   rc   r
   r   callit,  s    zMisc.after.<locals>.callit)r1   r   r@   r   )rc   Zmsr   r   r   r
   r   r   r      s    
z
Misc.afterc                 G   s   | j d|f| S )NZidle)r   )rc   r   r   r
   r
   r   
after_idle8  s    zMisc.after_idlec                 C   sd   |st dz.| jdd|}| j|d }| | W n tk
rN   Y nX | jdd| d S )Nz?id must be a valid identifier returned from after or after_idler   ry   r   Zcancel)rs   r1   r   r-   r   r   )rc   r   dataZscriptr
   r
   r   after_cancel@  s    zMisc.after_cancelr   c                 C   s   | j d| |  d S )N)bell)r1   r   
_displayofrc   	displayofr
   r
   r   r   Q  s    z	Misc.bellc                 K   sd   d|krN| j dkrNz d|d< | jd| | W S  tk
rL   |d= Y nX | jd| | S )Nr   x11UTF8_STRING)	clipboardr   )_windowingsystemr1   r   _optionsr   rc   r   r
   r
   r   clipboard_getV  s    zMisc.clipboard_getc                 K   s,   d|k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|kr| j |d< | jd| | d|f  d S )Nr   )r   ra   --r   )rc   stringr   r
   r
   r   clipboard_appendu  s
     
zMisc.clipboard_appendc                 C   s$   | j dd| j}|sd S | |S )NgrabZ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   )rc   r   r
   r
   r   grab_status  s     zMisc.grab_statusc                 C   s   | j dd||| d S )Noptionr   r   )rc   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   )rc   rX   	classNamer
   r
   r   
option_get  s    zMisc.option_getc                 C   s   | j dd|| d S )Nr  Zreadfiler   )rc   ZfileNamer  r
   r
   r   option_readfile  s    zMisc.option_readfilec                 K   s,   d|kr| j |d< | jd| |  d S )Nr   )	selectionr   r   r   r
   r
   r   selection_clear  s     
zMisc.selection_clearc                 K   sv   d|kr| j |d< d|kr`| jdkr`z d|d< | jd| | W S  tk
r^   |d= Y nX | 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	  Zhandle)r   r1   r   r   r   )rc   commandr   rX   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|kr| j |d< | jd| | }|s0d S | |S )Nr   r  )r   r1   r   r   r   )rc   r   rX   r
   r
   r   selection_own_get  s     
 zMisc.selection_own_getc                 G   s   | j d||f| S )Nsendr   )rc   Zinterpcmdr   r
   r
   r   r    s    z	Misc.sendc                 C   s   | j d| j| d S Nlowerr   )rc   	belowThisr
   r
   r   r    s    z
Misc.lowerc                 C   s   | j d| j| d S Nraiser   )rc   	aboveThisr
   r
   r   tkraise   s    zMisc.tkraisec                 C   s(   d|  | |f }| j| j|S )N)winfoZatom)r   r1   r   r   )rc   rX   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   rc   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   sR   g }| j | j dd| jD ].}z|| | W q tk
rJ   Y qX q|S )Nr  children)r1   r-   r   r   ra   r   KeyError)rc   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   )rc   ZrootXZrootYr   r   rX   r
   r
   r   winfo_containing,  s     zMisc.winfo_containingc                 C   s   | j | j dd| jS )Nr  Zdepthr  r   r
   r
   r   winfo_depth4  s    zMisc.winfo_depthc                 C   s   | j | j dd| jS )Nr  rz   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   rc   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  rW   r  r   r
   r
   r   winfo_heightG  s    zMisc.winfo_heightc                 C   s   t | jdd| jdS )Nr  r   r   )r_   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   )rc   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  Zmanagerr   r   r
   r
   r   winfo_managerZ  s    zMisc.winfo_managerc                 C   s   | j dd| jS )Nr  rX   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  r.  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rgbr?  )rc   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     s     z/Misc.winfo_visualsavailable.<locals>.<listcomp>c                    s   g | ]}  |qS r
   )_Misc__winfo_parseitemr   r   r
   r   r     s     )r1   r   r   r-   )rc   rX  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)rc   r3   r
   r
   r   Z__winfo_parseitem  s    zMisc.__winfo_parseitemc                 C   s
   t |dS )Nr   )r_   rc   rT   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  rV   r  r   r
   r
   r   winfo_width  s    zMisc.winfo_widthc                 C   s   | j | j dd| jS )Nr  rT   r  r   r
   r
   r   winfo_x  s    zMisc.winfo_xc                 C   s   | j | j dd| jS )Nr  rU   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 kr | j | j d| jS | j d| j| d S )Nbindtagsr1   r-   r   r   )rc   ZtagListr
   r
   r   re  *  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
+rY   )r   r   r1   r   r   _substitute_subst_format_strr-   )rc   rm   sequencer   r   needcleanupfuncidr  r
   r
   r   _bind7  s"    


 z
Misc._bindc                 C   s   |  d| jf|||S Nbindrm  r   rc   rj  r   r   r
   r
   r   ro  I  s    'z	Misc.bindc                 C   s&   | j d| j|d |r"| | d S Nro  rY   r1   r   r   r   )rc   rj  rl  r
   r
   r   unbindr  s    zMisc.unbindc                 C   s   |  d|||dS )N)ro  allr   rm  rq  r
   r
   r   bind_ally  s    zMisc.bind_allc                 C   s   | j dd|d d S )Nro  ru  rY   r   )rc   rj  r
   r
   r   
unbind_all  s    zMisc.unbind_allc                 C   s   |  d|f|||dS )Nro  r   rv  )rc   r  rj  r   r   r
   r
   r   
bind_class  s    zMisc.bind_classc                 C   s   | j d||d d S rr  r   )rc   r  rj  r
   r
   r   unbind_class  s    zMisc.unbind_classc                 C   s   | j | d S rp   )r1   r   )rc   rf   r
   r
   r   r     s    zMisc.mainloopc                 C   s   | j   d S rp   )r1   quitr   r
   r
   r   r{    s    z	Misc.quitc                 C   s"   |rt t| jj| j|S d S rp   )r   r   r1   r   r-   rc   r   r
   r
   r   r@    s    zMisc._getintsc                 C   s"   |rt t| jj| j|S d S rp   )r   r   r1   r   r-   r|  r
   r
   r   _getdoubles  s    zMisc._getdoublesc                 C   s   |r| j |S d S rp   )r1   r   r|  r
   r
   r   _getboolean  s    zMisc._getbooleanc                 C   s"   |rd|fS |d krd| j fS dS )Nr   r
   r   r   r
   r
   r   r     s
    
zMisc._displayofc                 C   sB   z|   jW S  tk
r<   | jdd }|   _| Y S X d S )Nr1   Zwindowingsystem)r{   Z_windowingsystem_cachedr!   r1   r   )rc   Zwsr
   r
   r   r     s    zMisc._windowingsystemc                 C   s   |rt ||f}nt |}d}| D ]\}}|d k	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   r_   ra   r   r   r   )rc   r%   r   r   r(   r)   Z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!  )rc   rX   wrf   r
   r
   r   nametowidget  s    zMisc.nametowidgetc                 C   s   t ||| j}tt|}z
|j}W n tk
r8   Y nX z||j }W n tk
r\   Y nX | j|| |r| j	d krg | _	| j	
| |S rp   )r   r   r]   r   r   r!   r@   r1   r   r   ra   )rc   r   substrk  r   rX   r
   r
   r   r     s     

zMisc._registerc                 C   s   | }|j r|j }q|S rp   r   )rc   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	k
r   Y nX |||_
|||_||	|_||
|_|||_|||_|||_||_z|||_W n t	k
r
   Y nX ||_|||_zt||_W n tk
rF   ||_Y nX z| ||_W n tk
rt   ||_Y nX |||_|||_z ||_W n  tt	fk
r   d|_Y nX |fS )Nc              	      s,   z
 | W S  t tfk
r&   |  Y S X d S rp   )rs   r   r   r   r
   r   getint_event  s    
z&Misc._substitute.<locals>.getint_eventr   )r   _subst_formatr1   r   r   rF   serialrR   rS   r   rW   rQ   rM   timerV   rT   rU   rK   rL   rP   Z
keysym_numr7   r   rs   r   widgetr"  Zx_rootZy_rootrO   )rc   r   r   r  Znsignbr   hr(   rd   r3   r  rT   rU   AEKNWTXYDer
   r  r   rh    sT     *

  






  


zMisc._substitutec                 C   s(   t  \}}}|  }|||| d S rp   )sysexc_infor{   report_callback_exception)rc   r   valtbrn   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   )rc   r   r%   rT   r
   r
   r   _getconfigureN  s
    0zMisc._getconfigurec                 G   s2   | j | j j| }|d dd  f|dd   S r  r  )rc   r   rT   r
   r
   r   _getconfigure1V  s    zMisc._getconfigure1c                 C   s   |rt ||f}n|rt |}|d k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   )rc   r  r%   r   r
   r
   r   
_configureZ  s    
zMisc._configurec                 K   s   |  d||S )N	configurer  rc   r%   r   r
   r
   r   r  g  s    zMisc.configurec                 C   s   | j | jdd| S Ncgetr,   r   rc   r5   r
   r
   r   r  r  s    z	Misc.cgetc                 C   s   |  ||i d S rp   )r  rc   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   ~  s     zMisc.keys.<locals>.<listcomp>r  rf  r   r
   r   r   rg   {  s    
z	Misc.keysc                 C   s   | j S rp   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   rh     s
      zMisc.__repr___noarg_c                 C   s:   |t jkr"| | jdd| jS | jdd| j| d S )Npack	propagater   r  r~  r1   r   r   rc   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     s     z$Misc.pack_slaves.<locals>.<listcomp>r  slavesrf  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     s     z%Misc.place_slaves.<locals>.<listcomp>placer  rf  r   r
   r   r   place_slaves  s    
  zMisc.place_slavesc                 C   s   | j dd| j| d S )Ngridanchorr   )rc   r  r
   r
   r   grid_anchor  s    zMisc.grid_anchorc                 C   sZ   dd| j f}|d k	r(|d k	r(|||f }|d k	rD|d k	rD|||f }| | jj| pXd S )Nr  bbox)r   r@  r1   r   )rc   columnrowZcol2Zrow2r   r
   r
   r   	grid_bbox  s    zMisc.grid_bboxc              	   C   sh   t |ttjfrdz:t|}|s$W d S d|kr:| j|W S | j|W S W n ttfk
rb   Y nX |S )Nr  )	r   r   _tkinterZTcl_Objr1   r   r   rs   r   )rc   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   )rc   r  indexr%   r   optionsr   r
   r
   r   _grid_configure  s(    zMisc._grid_configurec                 K   s   |  d|||S )Ncolumnconfigurer  rc   r  r%   r   r
   r
   r   grid_columnconfigure  s    zMisc.grid_columnconfigurec              	   C   s    |  | jdd| j||pd S )Nr  locationr?  rc   rT   rU   r
   r
   r   grid_location  s        zMisc.grid_locationc                 C   s:   |t jk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  sizer?  r   r
   r
   r   	grid_size  s
    zMisc.grid_sizec                    sZ   d}|d k	r|d|f }|d k	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   (  s     z$Misc.grid_slaves.<locals>.<listcomp>r  r  rf  )rc   r  r  r   r
   r   r   grid_slaves   s    
zMisc.grid_slavesc                 G   s   dd|f| }| j | d S )Neventr   r   rc   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   )rc   rj  r   r   r(   r)   r
   r
   r   event_generate;  s    zMisc.event_generatec                 C   s   | j | j dd|S )Nr  ry   r  )rc   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)rx   )N)N)rx   r   )rx   )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   rS   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'  r)  r*  r+  r,  r0  r2  r3  r4  r5  r6  r7  r8  r:  r<  r=  r>  rA  rB  rC  rD  rE  rF  rG  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rS  rT  rV  rW  rZ  rY  r[  r]  r^  r_  r`  ra  rb  rc  r    rd  re  rm  ro  rt  rw  rx  ry  rz  r   r{  r@  r}  r~  r   propertyr   r   r  r   r   registerr{   r  r   ri  rh  r  r  r  r  r  configr  __getitem__r  rg   rE   rh   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 rp   )r   r  r  )rc   r   r  r  r
   r
   r   r   Y  s    zCallWrapper.__init__c                 G   sL   z| j r| j | }| j| W S  tk
r2    Y n   | j  Y nX d S rp   )r  r   rt   r  r  rc   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f| }|s$| |S d S )Nxviewr1   r   r   r}  rc   r   r   r
   r
   r   r  o  s    zXView.xviewc                 C   s   | j | jdd| d S )Nr  movetor   rc   fractionr
   r
   r   xview_movetou  s    zXView.xview_movetoc                 C   s   | j | jdd|| d S )Nr  scrollr   rc   r/  rm   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f| }|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aspectr?  )rc   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-   )rc   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   )rc   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  r1  r   )rc   ZnewGeometryr
   r
   r   wm_geometry  s    zWm.wm_geometryc                 C   s    |  | jdd| j||||S )Nr  r  r?  )rc   Z	baseWidthZ
baseHeightZwidthIncZ	heightIncr
   r
   r   wm_grid   s    
     z
Wm.wm_gridc                 C   s   | j dd| j|S )Nr  groupr   rc   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   )rc   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   )rc   r  r
   r
   r   wm_iconmask*  s    zWm.wm_iconmaskc                 C   s   | j dd| j|S )Nr  iconnamer   )rc   ZnewNamer
   r
   r   wm_iconname1  s    zWm.wm_iconnameFc                 G   s<   |r | j jdd| jdf|  n| j jdd| jf|  d S )Nr  	iconphotor  r   )rc   r  r   r
   r
   r   wm_iconphoto8  s    zWm.wm_iconphotoc              	   C   s   |  | jdd| j||S )Nr  iconpositionr?  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   )rc   r  r
   r
   r   	wm_manageb  s    zWm.wm_managec              	   C   s   |  | jdd| j||S )Nr  maxsizer?  rc   rV   rW   r
   r
   r   
wm_maxsizej  s    
    zWm.wm_maxsizec              	   C   s   |  | jdd| j||S )Nr  minsizer?  r&  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   rc   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   )rc   rX   r   r  r
   r
   r   wm_protocol  s        zWm.wm_protocolc                 C   s   | j dd| j||S )Nr  	resizabler   r&  r
   r
   r   wm_resizable  s    zWm.wm_resizablec                 C   s   | j dd| j|S )Nr  sizefromr   r-  r
   r
   r   wm_sizefrom  s    zWm.wm_sizefromc                 C   s   | j dd| j|S )Nr  rM   r   )rc   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   )rc   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  r1  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/  r2  r1  r4  r3  r5  rM   r7  r6  r9  r8  r;  r:  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 )rl   r  Nr   r   c           
   
   C   s   d | _ i | _d| _d | _|d krZdd l}|jtjd }|j	|\}}|dk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)
rc   
screenNamebaseNamer  useTksyncZuser=  Zextinteractiver
   r
   r   r     s     zTk.__init__c                 C   s   | j s| j  |   d S rp   )r<  r1   loadtkrD  r   r
   r
   r   rM    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 k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)r<  r1   r   r  
TK_VERSIONr.   r   TCL_VERSIONr   r   rr   rv   ra   ri   rj   r/  r   )rc   rN  rO  r
   r
   r   rD    s(    


z
Tk._loadtkc                 C   sJ   t | j D ]}|  q| jd| j t|  trFt	| krFd a	d S Nr   )
r   r!  valuesr   r1   r   r   r   ri   rj   rc   r&   r
   r
   r   r   	  s     

z
Tk.destroyc           
      C   s   dd l }d|jk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.pyrc   zfrom tkinter import *source)r=  environcurdirr>  r   execisfiler1   r   openread)
rc   rI  r  r=  homeZ	class_tclZclass_pyZbase_tclZbase_pydirr
   r
   r   rG  	  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)rc   r   r  r  rb  r
   r
   r   r  $	  s    zTk.report_callback_exceptionc                 C   s   t | j|S rp   )r^   r1   )rc   attrr
   r
   r   __getattr__0	  s    zTk.__getattr__)NNrl   r   r   N)r@   rA   rB   r   r   rM  rD  r   rG  r  ri  r
   r
   r
   r   rl     s         

rl   c                 C   s   t | |||S rp   )rl   )rH  rI  r  rJ  r
   r
   r   TclC	  s    rj  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|kr4| |d |d< |S )Nr  ry   inr6   r1   r   r   r  rc   dr
   r
   r   	pack_infoh	  s    zPack.pack_infoN)r@   rA   rB   rm  r  r  r  rn  r	  rs  ry   r   r  r  r  r  r
   r
   r
   r   rk  G	  s   
rk  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  rl  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|kr4| |d |d< |S )Nr  ry   ro  rp  rq  r
   r
   r   
place_info	  s    zPlace.place_infoN)r@   rA   rB   ru  r  r  r  rv  r	  rw  ry   r   r  r  r
   r
   r
   r   rt  u	  s   rt  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  rl  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|kr4| |d |d< |S )Nr  ry   ro  rp  rq  r
   r
   r   	grid_info	  s    zGrid.grid_infoN)r@   rA   rB   ry  r  r  r  r   r  r  r  r  rz  r	  r{  r|  ry   r  r  r  r  r  r  r  r  r  r  r
   r
   r
   r   rx  	  s   





rx  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|kr2|d }|d= |s| jj }|jd krRi |_|j|dd }||j|< |dkrd|f }nd||f }|| _|j	dkrd| | _	n|j	d | | _	i | _
| j| jj
kr| jj
| j   | | jj
| j< d S )NrX   r   r   z!%sz!%s%dr  )ro   r   r1   r   r@   r  r  r   r}   r   r!  r   )rc   r   r%   rX   countr
   r
   r   _setup	  s2    


zBaseWidget._setupr
   c           	      C   s   |rt ||f}|| _t| || | jd k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   	
  s     
 z'BaseWidget.__init__.<locals>.<listcomp>)r*   
widgetNamer}  r  r   r$   r1   r   r   r   r  )	rc   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krF| jj| j= t	|  d S rT  )
r   r!  rU  r   r1   r   r   r}   r   r   rV  r
   r
   r   r   
  s     
zBaseWidget.destroyc                 C   s   | j | j|f| S rp   r   )rc   rX   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}||kr|| }|d dkrJd|d d  }nd| }|||f }||= qt| |d|i | |  }| |  | |  | d| j d S )Nr
   )rH  class_r&  rU  Zcolormapr  r  r,   rR  rQ  )r*   r}  r   r{   r  r6  r/  r   )	rc   r   r%   r   r  Zwmkeyr  optrn   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   rc   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  rc   newtagtagOrIdr
   r
   r   addtag_above
  s    zCanvas.addtag_abovec                 C   s   |  |d d S Nru  r  )rc   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  )rc   r  rT   rU   halostartr
   r
   r   addtag_closest
  s    zCanvas.addtag_closestc                 C   s   |  |d|||| d S NZenclosedr  rc   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  r?  r  r
   r
   r   r  
  s
    zCanvas.bboxc                 C   s(   | j | jd||d |r$| | d S rr  rs  )rc   r  rj  rl  r
   r
   r   
tag_unbind
  s    zCanvas.tag_unbindc                 C   s   |  | jd|f|||S rn  rp  )rc   r  rj  r   r   r
   r
   r   tag_bind
  s
      zCanvas.tag_bindc                 C   s   | j | j | jd||S )Ncanvasxr-  )rc   Zscreenxgridspacingr
   r
   r   r  
  s       zCanvas.canvasxc                 C   s   | j | j | jd||S )Ncanvasyr-  )rc   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   
  s     z!Canvas.coords.<locals>.<listcomp>coordsrf  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|f|| ||  S )Nr  rB  )	r   r   r   r   r1   r   r   r   r   )rc   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
   r?  r  r
   r
   r   r    s
    zCanvas.findc                 C   s   |  d|S r  r  rc   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  )rc   rT   rU   r  r  r
   r
   r   find_closest  s    zCanvas.find_closestc                 C   s   |  d||||S r  r  rc   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   rS   4  s    zCanvas.focusc                 G   s   | j | j | jdf| S )Ngettagsrf  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   )rc   r  r  r
   r
   r   r  K  s    zCanvas.itemcgetc                 K   s   |  d|f||S Nitemconfigurer  rc   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.moverY   c                 C   s   | j | jd||| d S )Nr  r   )rc   r  rT   rU   r
   r
   r   r  j  s    zCanvas.movetoc                 K   s   | j | jdf| || S )N
postscriptrl  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   )rc   rT   rU   Zgainr
   r
   r   scan_dragto  s    zCanvas.scan_dragtoc                 C   s   | j | jdd|| d S )Nselectadjustr   rc   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)rY   rY   )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  rS   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   rc   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   rc   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   )rc   r  r   r
   r
   r   r    s    zEntry.insertc                 C   s   | j | jdd| d S r  r   r\  r
   r
   r   r    s    zEntry.scan_markc                 C   s   | j | jdd| d S r  r   r\  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presentr(  r   r
   r
   r   selection_present  s    zEntry.selection_presentc                 C   s   | j | jdd|| d S )Nr	  ranger   rc   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|kr,d|d f}|d= nd|krFd|d f}|d= t| |d|i | d S )Nr
   r  z-classr&  r  )r*   r  r   )rc   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  r?  r  r
   r
   r   r  `  s    zListbox.bboxc                 C   s   |  | j| jdpdS )Ncurselectionr
   r?  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 k	r$| j | j | jd||S | j | jd|S d S r  rf  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   rc   r  re   r
   r
   r   r  u  s     zListbox.indexc                 G   s   | j | jd|f|  d S r  r   )rc   r  elementsr
   r
   r   r  {  s    zListbox.insertc                 C   s   | j | j | jd|S )Nnearestr  )rc   rU   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includesr(  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   rc   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__rY   c                 C   s   | j d| j||| d S )Ntk_popupr   )rc   rT   rU   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   rl  )rc   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 NZ	separatorr"  r  r
   r
   r   add_separator  s    zMenu.add_separatorc                 K   s&   | j | jd||f| ||  d S r  rl  )rc   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  r+  r  r
   r
   r   insert_checkbutton  s    zMenu.insert_checkbuttonc                 K   s   |  |d|p| d S r%  r+  r  r
   r
   r   insert_command  s    zMenu.insert_commandc                 K   s   |  |d|p| d S r'  r+  r  r
   r
   r   insert_radiobutton  s    zMenu.insert_radiobuttonc                 K   s   |  |d|p| d S r)  r+  r  r
   r
   r   insert_separator  s    zMenu.insert_separatorc                 C   s   |d kr|}|  ||  | }}|d ks2|d kr:d\}}t||d D ]0}d| |krHt| |d}|rH| | qH| j| jd|| d S )N)r   r  r   r  r  )	r  r  entryconfigr   	entrycgetr   r1   r   r   )rc   index1index2Z
num_index1Z
num_index2re   r&   r
   r
   r   r  	  s    zMenu.deletec                 C   s   | j | jd|d| S )Nr2  r,   r   r  r
   r
   r   r2    s    zMenu.entrycgetc                 K   s   |  d|f||S )Nentryconfigurer  r  r
   r
   r   r5    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   r6  .  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   r7  6  s    zMenu.unpostc                 C   s   | j | j | jd|S )N	xpositionr  r  r
   r
   r   r8  :  s    zMenu.xpositionc                 C   s   | j | j | jd|S )N	ypositionr  r  r
   r
   r   r9  ?  s
      zMenu.yposition)rY   )N)N)r@   rA   rB   r   r  r  r   r#  r$  r&  r(  r*  r  r,  r-  r.  r/  r0  r  r2  r5  r1  r  r  r6  r   r7  r8  r9  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   r:  E  s   r:  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   r<  L  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 ZdS )RadiobuttonNc                 K   s   t | |d|| d S r'  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   r>  S  s
   r>  c                   @   s<   e Zd Zdi fddZdd Zdd Zddd	Zd
d ZdS )ScaleNc                 K   s   t | |d|| d S r  r  r  r
   r
   r   r   w  s    	zScale.__init__c              
   C   sJ   | j | jd}z| j |W S  tttfk
rD   | j | Y S X d S r  )r1   r   r   r   rs   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  r?  r   r
   r
   r   r    s    zScale.coordsc                 C   s   | j | jd||S Nidentifyr   r  r
   r
   r   rB    s    zScale.identify)N)r@   rA   rB   r   r   r   r  rB  r
   r
   r
   r   r?  t  s
   
r?  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 )NrO   r-  )rc   ZdeltaxZdeltayr
   r
   r   rO     s    zScrollbar.deltac                 C   s   | j | j | jd||S )Nr  r-  r  r
   r
   r   r    s    zScrollbar.fractionc                 C   s   | j | jd||S rA  r   r  r
   r
   r   rB    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 r@  r   r  r
   r
   r   r     s    zScrollbar.set)N)
r@   rA   rB   r   r  rO   r  rB  r   r   r
   r
   r
   r   rC    s   
	rC  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  r?  r  r
   r
   r   r    s
    z	Text.bboxc              	   C   s   | j | j | jd|||S )Ncomparer(  )rc   r3  opr4  r
   r
   r   rE    s        zText.comparec                 G   sV   dd |D }|||g7 }| j j| jdf| p2d }|d k	rNt|dkrN|fS |S d S )Nc                 S   s   g | ]}| d sd| qS )r,   r  )
startswith)rI   argr
   r
   r   r     s     
 zText.count.<locals>.<listcomp>r~     )r1   r   r   r   )rc   r3  r4  r   r   r
   r
   r   r~    s    z
Text.countc                 C   s6   |d kr | j | j | jdS | j | jd| d S )Ndebugr(  r   r
   r
   r   rJ  	  s    z
Text.debugc                 C   s   | j | jd|| d S r  r   rc   r3  r4  r
   r
   r   r    s    zText.deletec                 C   s   |  | j| jd|S )N	dlineinfor?  r  r
   r
   r   rL    s    zText.dlineinfoc           
   	   K   s   g }d }d }|s$g }|fdd}|}zzt|ts>| | }}|d|g7 }|D ]}	||	 rN|d|	  qN|| |r|| | jj| jdf|  |W S |r|  | X d S )Nc                 S   s   | | ||f d S rp   )ra   )r5   r	   r  r#  r
   r
   r   append_triple/  s    z Text.dump.<locals>.append_triplez-commandr,   dump)r   r   r   r   ra   r1   r   r   )
rc   r3  r4  r  r   r   Z	func_namer#  rM  r5   r
   r
   r   rN    s*    
 

z	Text.dumpc                 G   s   | j j| jdf| S )Neditr   r  r
   r
   r   rO  B  s    z	Text.editc                 C   s   |  d|S )NZmodifiedrO  )rc   rH  r
   r
   r   edit_modifiedQ  s    	zText.edit_modifiedc                 C   s
   |  dS )NZredorP  r   r
   r
   r   	edit_redo\  s    zText.edit_redoc                 C   s
   |  dS )NresetrP  r   r
   r
   r   
edit_resetf  s    zText.edit_resetc                 C   s
   |  dS r)  rP  r   r
   r
   r   edit_separatork  s    zText.edit_separatorc                 C   s
   |  dS )NZundorP  r   r
   r
   r   	edit_undor  s    	zText.edit_undoc                 C   s   | j | jd||S r  r   rK  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|f| || S )Nr  rB  rl  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   )rc   r  charsr   r
   r
   r   r    s    zText.insertc                 C   s   | j | jdd||fS )Nr  Zgravityr   )rc   markName	directionr
   r
   r   mark_gravity  s    zText.mark_gravityc                 C   s   | j | j | jddS )Nr  r  rf  r   r
   r
   r   
mark_names  s
      zText.mark_namesc                 C   s   | j | jdd|| d S )Nr  r   r   )rc   r[  r  r
   r
   r   mark_set  s    zText.mark_setc                 G   s   | j | jddf|  d S )Nr  Zunsetr   )rc   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|f| ||  d S )NpeerrB  rl  )rc   ZnewPathNamer%   r   r
   r
   r   peer_create  s    
zText.peer_createc                 C   s   | j | j | jddS )Nrd  r  rf  r   r
   r
   r   
peer_names  s    zText.peer_namesc                 G   s    | j j| jd|||f|  d S )Nr   r   )rc   r3  r4  rZ  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   ra   r   r1   r   r   )rc   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   )rc   tagNamer3  r   r
   r
   r   tag_add  s    zText.tag_addc                 C   s*   | j | jdd||d |r&| | d S )Nrh  ro  rY   rs  )rc   ri  rj  rl  r
   r
   r   r    s    zText.tag_unbindc                 C   s   |  | jdd|f|||S )Nrh  ro  rp  )rc   ri  rj  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  rh  r  r   )rc   ri  r  r
   r
   r   tag_cget	  s
    zText.tag_cgetc                 K   s   |  dd|f||S )Nrh  r  r  )rc   ri  r%   r   r
   r
   r   tag_configure  s    zText.tag_configurec                 G   s   | j | jddf|  d S )Nrh  r  r   )rc   ZtagNamesr
   r
   r   
tag_delete  s    zText.tag_deletec                 C   s   | j | jdd|| d S )Nrh  r  r   )rc   ri  r  r
   r
   r   r    s    zText.tag_lowerc                 C   s   | j | j | jdd|S )Nrh  r  rf  r  r
   r
   r   	tag_names   s    zText.tag_namesc              
   C   s    | j | j | jdd|||S )Nrh  Z	nextrangerf  rc   ri  r3  r4  r
   r
   r   tag_nextrange%  s         zText.tag_nextrangec              
   C   s    | j | j | jdd|||S )Nrh  Z	prevrangerf  ro  r
   r
   r   tag_prevrange,  s         zText.tag_prevrangec                 C   s   | j | jdd|| d S )Nrh  r  r   )rc   ri  r  r
   r
   r   r  3  s        zText.tag_raisec                 C   s   | j | j | jdd|S )Nrh  Zrangesrf  )rc   ri  r
   r
   r   
tag_ranges9  s       zText.tag_rangesc                 C   s   | j | jdd||| d S )Nrh  r   r   ro  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   rB  rl  r  r
   r
   r   window_createQ  s
    
zText.window_createc                 C   s   | j | j | jddS )Nr   r  rf  r   r
   r
   r   window_namesW  s    zText.window_namesc                 G   s   | j | jddf|  d S )Nr  z
-pickplacer   )rc   rm   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  rE  r~  rJ  r  rL  rN  rO  rQ  rR  rT  rU  rV  r   rW  rX  rY  r  r  r  r]  r^  r_  r`  rb  rc  re  rf  r   r  r  r   r  rj  r  r  rk  rl  Z
tag_configrm  r  rn  rp  rq  r  rr  rs  rt  ru  Zwindow_configrv  rw  rx  r
   r
   r
   r   rD    s|   


(




             


	







rD  c                   @   s   e Zd ZdddZdd ZdS )_setitNc                 C   s   || _ || _|| _d S rp   )_setit__value_setit__var_setit__callback)rc   varr	   r   r
   r
   r   r   d  s    z_setit.__init__c                 G   s*   | j | j | jr&| j| jf|  d S rp   )r{  r   rz  r|  r  r
   r
   r   r   i  s    z_setit.__call__)Nr  r
   r
   r
   r   ry  a  s   
ry  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
|k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highlightthicknessr;  Ztk_optionMenur  r   )rX   Ztearoffr  zunknown option -)r  r  )ZRAISEDr  r   r  r  _OptionMenu__menur   Zmenunamer   r   ra  r/   r&  ry  )
rc   r   r   r	   rU  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 rp   )r:  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  rB  )rX   ro   r^   r1   r  _last_idr*   r$   r  r   r   )	rc   ZimgtyperX   r%   r   r   r  r(   r)   r
   r
   r   r     s$      
zImage.__init__c                 C   s   | j S rp   )rX   r   r
   r
   r   rE         zImage.__str__c                 C   s6   | j r2z| jdd| j  W n tk
r0   Y nX d S )Nr  r  )rX   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   rX   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 k	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   rX   )rc   r   r   r(   r)   r
   r
   r   r    s     
zImage.configurec                 C   s   | j | j dd| jS )Nr  rW   r1   r   r   rX   r   r
   r
   r   rW     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  rV   r  r   r
   r
   r   rV     s    zImage.width)r@   rA   rB   r  r   rE   r   r  r  r  r  rW   r   rV   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| d S )NZphotor  r   rc   rX   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  )rc   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   rX   )rc   	destImager
   r
   r   r    s    zPhotoImage.copyrY   c                 C   s4   t | jd}|dkr|}| j|d| jd|| |S )Nr  rY   r  z-zoomr  rc   rT   rU   r  r
   r
   r   zoom  s
     zPhotoImage.zoomc                 C   s4   t | jd}|dkr|}| j|d| jd|| |S )Nr  rY   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  rX   r   r1   r   )rc   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  )rc   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   rX   r  r
   r
   r   transparency_get"  s        zPhotoImage.transparency_getc                 C   s   | j | jdd||| d S )Nr  r   r  )rc   rT   rU   r   r
   r
   r   transparency_set'  s    zPhotoImage.transparency_set)rY   )rY   )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| 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  ro   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  r?  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 rA  r   r  r
   r
   r   rB    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   )rc   r  rd   r
   r
   r   r    s    zSpinbox.insertc                 C   s   | j | jd|S r  r   rc   elementr
   r
   r   r    s    zSpinbox.invokec                 G   s    |  | j| jdf| pdS )Nr  r
   r?  r  r
   r
   r   r    s
    zSpinbox.scanc                 C   s   |  d|S Nr  r  r\  r
   r
   r   r    s    zSpinbox.scan_markc                 C   s   |  d|S )Nr  r  r\  r
   r
   r   r    s    
zSpinbox.scan_dragtoc                 G   s    |  | j| jdf| pdS )Nr	  r
   r?  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  r(  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  rB  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   rl  )rc   r$  r   r
   r
   r   r     s    zPanedWindow.addc                 C   s   | j | jd| d S Nr	  r   )rc   r$  r
   r
   r   r   '  s    zPanedWindow.removec                 C   s   | j | jd||S rA  r   r  r
   r
   r   rB  0  s    
zPanedWindow.identifyc                 G   s    |  | j| jdf| pdS )Nproxyr
   r?  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
   r?  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  )rc   r  rT   rU   r
   r
   r   
sash_placej  s    zPanedWindow.sash_placec                 C   s   | j | jdf|d| f S )Npanecgetr,   r   )rc   r$  r  r
   r
   r   r  o  s    zPanedWindow.panecgetc                 K   sd   |d k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panesrf  r   r
   r
   r   r    s    zPanedWindow.panes)N)r@   rA   rB   r   r   r   r	  rB  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  )rn   r
   r
   r   <lambda>  s   z_test.<locals>.<lambda>)r  r  ZQUIT)rl   
TclVersionr  r  rC   r  r   r  r    r  r   )rn   r  r  r  r{  r
   r
   r   _test  s     
r  __main__)TN)N)r   )r   )NNrl   r   )Uenumr  r  r   Ztkinter.constantsrerC  floatrR  Z	TkVersionrS  r  ZREADABLEZWRITABLEZ	EXCEPTIONcompiler   ASCIIr   r   r   r   r!   r*   r6   r   Enumr7   rF   ri   rj   rk   ro   rr   rv   r~   rw   r   r   r   r   r   r_   r   r   r   r   r   r  r  r  rl   rj  rk  rt  rx  r}  r  r  rC   r  r  r  r
  r  r  r  r:  r<  r>  r?  rC  rD  ry  r~  r  r  r  r  r  r  r  r  r  r@   r
   r
   r
   r   <module>!   s   


 
  
 
,R

	 6

         q  2~
.37?/  8$Vt !'2   'BT
 3 C
