U :e͕@sddlZddlZddlZejZddlTddlZdZeejZ eej Z ej Z ej Z ejZedZedejZddZdd Zd d Zz ejZWnek rYnXd d Zz ejZWnek rYnXdxddZGdddeejZGdddZdadaddZdyddZ ddZ!dzddZ"da#GdddZ$Gdd d e$Z%Gd!d"d"e$Z&Gd#d$d$e$Z'Gd%d&d&e$Z(d{d'd(Z)e*Z+eZ,d)d*Z-Gd+d,d,Z.Gd-d.d.Z/Gd/d0d0Z0Gd1d2d2Z1Gd3d4d4Z2Gd5d6d6e.e2Z3d|d7d8Z4Gd9d:d:Z5Gd;d<d<Z6Gd=d>d>Z7Gd?d@d@e.Z8GdAdBdBe8e5e6e7Z9GdCdDdDe8e2Z:GdEdFdFe9Z;GdGdHdHe9e0e1ZGdMdNdNe9Z?GdOdPdPe9Z@GdQdRdRe9e0e1ZAGdSdTdTe9ZBGdUdVdVe9ZCGdWdXdXe9ZDGdYdZdZe9ZEGd[d\d\e9ZFGd]d^d^e9ZGGd_d`d`e9e0e1ZHGdadbdbZIGdcddddeCZJGdedfdfZKGdgdhdheKZLGdidjdjeKZMdkdlZNdmdnZOGdodpdpe9e0ZPGdqdrdre9ZQGdsdtdte9ZRdudvZSeTdwkreSdS)}N)*z([\\{}])z([\s])cCsdtt|S)N )joinmap _stringifyvaluer 5/usr/local/python38/lib/python3.8/tkinter/__init__.py_join8sr cCst|ttfrHt|dkr:t|d}t|rFd|}qdt|}ntt|}|sZd}nbt|rt d|}| dd}t d|}|ddkrd |}n|ddkst |rd|}|S) Nrrz{%s}z{}z\\\1 z\n"\) isinstancelisttuplelenr _magic_researchr strsubreplace _space_rerr r r r=s$          rcCs@d}|D]2}t|ttfr(|t|}q|dk r||f}q|S)Nr )rrr_flatten)seqresitemr r r rVs rc Cst|tr|St|tdtfr$|Si}t|D]^}z||Wq0ttfk r}z(td|| D]\}}|||<qjW5d}~XYq0Xq0|SdS)Nz_cnfmerge: fallback due to:) rdicttyperrupdateAttributeError TypeErrorprintitems)Zcnfscnfcmsgkvr r r _cnfmergees   r*Tc Csz||}t|drtdt|}i}t||D]@\}}t|}|r`|ddkr`|dd}|rl||}|||<q4|S)NzNTcl list representing a dict is expected to contain an even number of elementsr-r) splitlistr RuntimeErroriterzipr) tkr)Z cut_minusconvtitrkeyr r r r _splitdict{s    r6c@seZdZdZeZdZdZeZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)e*j+Z+d&S)' EventType23456789Z10Z11Z12Z13Z14Z15Z16Z17Z18Z19Z20Z21Z22Z23Z24Z25Z26Z27Z28Z29Z30Z31Z32Z33Z34Z35Z36Z37Z38N),__name__ __module__ __qualname__ZKeyPressZKeyZ KeyReleaseZ ButtonPressButtonZ ButtonReleaseZMotionZEnterZLeaveZFocusInZFocusOutZKeymapZExposeZGraphicsExposeZNoExposeZ VisibilityZCreateZDestroyZUnmapZMapZ MapRequestZReparentZ ConfigureZConfigureRequestZGravityZ ResizeRequestZ CirculateZCirculateRequestZPropertyZSelectionClearZSelectionRequestZ SelectionZColormapZ ClientMessageMappingZ VirtualEventZActivateZ DeactivateZ MouseWheelr__str__r r r r r7sPr7c@seZdZddZdS)Eventcsdd|jD|js"d=n|jdkr:t|jd<t|ddsLd=|jdkr^d=n|t|jtr|j}d }g}t|D]\}}|d |>@r| |q|d t |>d @}|s|s| t |d |d<|j dkrd =d }dt|jd|jd fdd|DfS)NcSsi|]\}}|dkr||qS)??r .0r(r)r r r sz"Event.__repr__..charrG send_eventTrstate) ZShiftLockZControlZMod1ZMod2ZMod3ZMod4ZMod5ZButton1ZButton2ZButton3ZButton4ZButton5r|delta) rLrMkeysymkeycoderKnumrPfocusxywidthheightz <%s event%s>namec3s&|]}|krd||fVqdS)z %s=%sNr )rIr(Zattrsr r sz!Event.__repr__..)__dict__r$rKreprgetattrrMrint enumerateappendrhexrrPr)selfrMZmodssinkeysr r[r __repr__s6       zEvent.__repr__N)r@rArBrir r r r rFs+rFcCsdadabdS)NF)_support_default_root _default_rootr r r r NoDefaultRootsrlcCs.ts tdts*|r$td|dt}tS)NzINo master specified and tkinter is configured to not support default rootz Too early to z: no default root window)rjr.rkTk)whatrootr r r _get_default_root#srpcCsdSNr )errr r r _tkerror/srscCs.z t|}Wntk r YnXt|dSrq)r` ValueError SystemExit)coder r r _exit4s  rwc@seZdZdZdZdZdddZddZddZd d Z e Z d d Z d dZ ddZ ddZddZddZeZddZddZddZdS)VariablerZNcCs|dk rt|tstd|s&td}||_|j|_|rD||_ndtt |_t d7a |dk rn| |n&|j |j dd|js| |j dS)Nzname must be a stringzcreate variablePY_VARrinfoexists)rrr"rp_rootr1_tk_namer^_varnum initialize getbooleancall_defaultrdmasterr rYr r r __init__Is   zVariable.__init__cCsb|jdkrdS|j|jdd|jr6|j|j|jdk r^|jD]}|j|qFd|_dS)Nrzr{)r}rrr~Zglobalunsetvar _tclCommands deletecommandrdrYr r r __del__gs   zVariable.__del__cCs|jSrq)r~rdr r r rEsszVariable.__str__cCs|j|j|Srq)r} globalsetvarr~rdr r r r setwsz Variable.setcCs|j|jSrq)r} globalgetvarr~rr r r get}sz Variable.getcCst|d|jj}tt|}z |j}Wntk r:YnXz||j}Wntk r^YnX|j |||j dkr~g|_ |j ||Srq) CallWrapperr|__call__r^id__func__r!r@r} createcommandrrb)rdcallbackfcbnamer r r _registers    zVariable._registercCs(||}|jddd|j||f|S)Ntraceaddvariablerr}rr~rdmoderrr r r trace_adds  zVariable.trace_addcCsx|jddd|j|||D] \}}|j|d|kr qtq |j|z|j|Wntk rrYnXdS)Nrremoverr) r}rr~ trace_infor-rrrrtrdrrmcar r r trace_removes  zVariable.trace_removec s4|jjfddt|jddd|jDS)Ncsg|]\}}||fqSr r rHr-r r sz'Variable.trace_info..rrzr)r}r-rrr~rr rr rszVariable.trace_infocCs$||}|jdd|j|||S)Nrrrrr r r trace_variables zVariable.trace_variablecCs|jdd|j|||j|d}|D] \}}|j|d|kr.qq.|j|z|j|Wntk rYnXdS)NrZvdeleter) r}rr~r-rrrrrtrr r r trace_vdeletes  zVariable.trace_vdeletecs(fddjjddjDS)Ncsg|]}j|qSr )r}r-rIrUrr r rsz(Variable.trace_vinfo..rZvinfo)r}r-rr~rr rr trace_vinfoszVariable.trace_vinfocCs6t|tstS|j|jko4|jj|jjko4|j|jkSrq)rrxNotImplementedr~ __class__r@r})rdotherr r r __eq__s   zVariable.__eq__)NNN)r@rArBrr}rrrrErrrrrrrrrrrrr r r r rx@s$   rxc@s"eZdZdZdddZddZdS) StringVarrZNcCst||||dSrqrxrrr r r rs zStringVar.__init__cCs$|j|j}t|tr|St|Srq)r}rr~rrrr r r rs z StringVar.get)NNNr@rArBrrrr r r r rs rc@s"eZdZdZdddZddZdS)IntVarrNcCst||||dSrqrrr r r rs zIntVar.__init__c CsJ|j|j}z|j|WSttfk rDt|j|YSXdSrq)r}rr~getintr"TclErrorr` getdoublerr r r rs z IntVar.get)NNNrr r r r r s rc@s"eZdZdZdddZddZdS) DoubleVargNcCst||||dSrqrrr r r r*s zDoubleVar.__init__cCs|j|j|jSrq)r}rrr~rr r r r6sz DoubleVar.get)NNNrr r r r r&s rc@s.eZdZdZd ddZddZeZddZdS) BooleanVarFNcCst||||dSrqrrr r r r?s zBooleanVar.__init__cCs|j|j|j|Srq)r}rr~rrr r r rKszBooleanVar.setcCs:z|j|j|jWStk r4tdYnXdSN invalid literal for getboolean())r}rrr~rrtrr r r rQszBooleanVar.get)NNN)r@rArBrrrrrr r r r r;s  rcCstdj|dS)Nzrun the main loop)rpr1mainloop)rgr r r rYsrcCs4ztdj|WStk r.tdYnXdS)Nzuse getboolean()r)rpr1rrrtrer r r rcsrc@seZdZdZdZddZddZd0ddZdd Zd d Z d1d dZ e Z d2ddZ d3ddZ d4ddZd5ddZddZddZddZddZeZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd6d.d/Zd0d1Zd2d3Zd7d5d6Zd7d8Z d9d:Z!d;d<Z"d=d>Z#d?d@Z$dAdBZ%dCdDZ&dEdFZ'd8dGdHZ(dIdJZ)dKdLZ*d9dMdNZ+dOdPZ,dQdRZ-dSdTZ.dUdVZ/dWdXZ0dYdZZ1d:d[d\Z2d;d]d^Z3e3Z4ddkdlZ;dmdnZdsdtZ?dudvZ@dwdxZAd?dydzZBd{d|ZCd}d~ZDddZEddZFd@ddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]dAddZ^ddZ_ddZ`ddZaddZbddZcddZdddZeddÄZfddńZgddDŽZhddɄZidBdd˄ZjdCdd΄ZkdDddЄZldEdd҄ZmdFddԄZnddքZodGdd؄ZpddڄZqdHdd܄ZrddބZsddZtddZuddZvddZwexddZydIddZzddZ{e{Z|dJddZ}e}Z~ddZdZdeZddZddZddZddZddZdKddZeZddZeZddZddZddZddZd gZefd d ZeZd d ZeZddZdLddZeZdMddZeZddZddZifddZeZddZefddZifddZeZd d!ZeZdNd"d#Zd$d%Zd&d'Zd(d)ZdOd*d+Zd,d-Zd.d/ZdS(PMiscNcCs,|jdk r(|jD]}|j|qd|_dSrq)rr1rrr r r destroyxs  z Misc.destroycCs6|j|z|j|Wntk r0YnXdSrq)r1rrrrtrr r r rs  zMisc.deletecommandcCs|j|jdd|S)Nrtk_strictMotif)r1rrrdbooleanr r r rs  zMisc.tk_strictMotifcCs|jddS)N tk_bisquer1rrr r r rszMisc.tk_bisquecOs(|jdt|tt|dS)N) tk_setPalette)r1rrrr$rdargskwr r r rs zMisc.tk_setPaletterycCs|jdd|dS)Ntkwaitrrrr r r wait_variableszMisc.wait_variablecCs"|dkr |}|jdd|jdS)Nrwindowr1r_wrdrr r r wait_windowszMisc.wait_windowcCs"|dkr |}|jdd|jdS)NrZ visibilityrrr r r wait_visibilityszMisc.wait_visibility1cCs|j||dSrq)r1setvar)rdrYr r r r rsz Misc.setvarcCs |j|Srq)r1getvarrr r r rsz Misc.getvarc CsBz|j|WStk r<}ztt|W5d}~XYnXdSrq)r1rrrtrrdreexcr r r rsz Misc.getintc CsBz|j|WStk r<}ztt|W5d}~XYnXdSrq)r1rrrtrrr r r rszMisc.getdoublecCs0z|j|WStk r*tdYnXdSr)r1rrrt)rdrer r r rszMisc.getbooleancCs|jd|jdSNrTrrr r r focus_setszMisc.focus_setcCs|jdd|jdS)NrTz-forcerrr r r focus_forceszMisc.focus_forcecCs&|jd}|dks|sdS||S)NrTnone)r1r _nametowidgetrr r r focus_gets  zMisc.focus_getcCs,|jdd|j}|dks|s"dS||S)NrT -displayofrr1rrrrr r r focus_displayofs zMisc.focus_displayofcCs,|jdd|j}|dks|s"dS||S)NrTz-lastforrrrr r r focus_lastfors zMisc.focus_lastforcCs|jddS)Ntk_focusFollowsMouserrr r r rszMisc.tk_focusFollowsMousecCs"|jd|j}|sdS||S)N tk_focusNextrrr r r r s zMisc.tk_focusNextcCs"|jd|j}|sdS||S)N tk_focusPrevrrr r r rszMisc.tk_focusPrevcsNsjd|dSfdd}j|_|jd|SdS)Naftercs8z W5zWntk r0YnXXdSrq)rrr rfuncrYrdr r callit,s  zMisc.after..callit)r1rr@r)rdmsrrrr rr r s z Misc.aftercGs|jd|f|S)NZidle)r)rdrrr r r after_idle8szMisc.after_idlecCsd|s tdz.|jdd|}|j|d}||Wntk rNYnX|jdd|dS)Nz?id must be a valid identifier returned from after or after_idlerrzrcancel)rtr1rr-rr)rdrdataZscriptr r r after_cancel@szMisc.after_cancelrcCs|jd||dS)N)bell)r1r _displayofrd displayofr r r rQsz Misc.bellcKsdd|krN|jdkrNz d|d<|jd||WStk rL|d=YnX|jd||S)Nrx11 UTF8_STRING) clipboardr)_windowingsystemr1r_optionsrrdrr r r clipboard_getVs zMisc.clipboard_getcKs,d|kr|j|d<|jd||dS)Nr)rclearrr1rrrr r r clipboard_clearms zMisc.clipboard_clearcKs4d|kr|j|d<|jd||d|fdS)Nr)rrb--r)rdstringrr r r clipboard_appendus  zMisc.clipboard_appendcCs$|jdd|j}|sdS||S)Ngrabcurrentrrr r r grab_currentszMisc.grab_currentcCs|jdd|jdS)Nrreleaserrr r r grab_releaseszMisc.grab_releasecCs|jdd|jdS)Nrrrrr r r grab_setsz Misc.grab_setcCs|jddd|jdS)Nrrz-globalrrr r r grab_set_globalszMisc.grab_set_globalcCs"|jdd|j}|dkrd}|S)Nrstatusrr)rdrr r r grab_statusszMisc.grab_statuscCs|jdd|||dS)Noptionrr)rdpatternr priorityr r r option_addszMisc.option_addcCs|jdddS)Nrrrrr r r option_clearszMisc.option_clearcCs|jdd|j||S)Nrrr)rdrY classNamer r r option_getszMisc.option_getcCs|jdd||dS)NrZreadfiler)rdZfileNamerr r r option_readfileszMisc.option_readfilecKs,d|kr|j|d<|jd||dS)Nr) selectionrrrr r r selection_clears zMisc.selection_clearcKsvd|kr|j|d<d|kr`|jdkr`z d|d<|jd||WStk r^|d=YnX|jd||S)Nrrrr)rr)rrr1rrrrr r r selection_gets   zMisc.selection_getcKs.||}|jd|||j|fdS)N)rhandle)rr1rrr)rdcommandrrYr r r selection_handles zMisc.selection_handlecKs"|jd|||jfdS)NrZown)r1rrrrr r r selection_owns zMisc.selection_owncKs:d|kr|j|d<|jd||}|s0dS||S)Nrr)rr1rrr)rdrrYr r r selection_own_gets  zMisc.selection_own_getcGs|jd||f|S)Nsendr)rdZinterpcmdrr r r rsz Misc.sendcCs|jd|j|dSNlowerr)rd belowThisr r r rsz Misc.lowercCs|jd|j|dSNraiser)rd aboveThisr r r tkraisesz Misc.tkraisecCs(d|||f}|j|j|S)N)winfoZatom)rr1rr)rdrYrrr r r winfo_atomszMisc.winfo_atomcCs d|||f}|j|S)N)r Zatomnamerr1rrdrrrr r r winfo_atomname s zMisc.winfo_atomnamecCs|j|jdd|jS)Nr Zcellsr1rrrrr r r winfo_cellsszMisc.winfo_cellsc CsRg}|j|jdd|jD].}z|||Wqtk rJYqXq|S)Nr children)r1r-rrrbrKeyError)rdresultchildr r r winfo_childrenszMisc.winfo_childrencCs|jdd|jS)Nr classrrr r r winfo_class#szMisc.winfo_classcCs|j|jdd|jS)Nr Z colormapfullr1rrrrr r r winfo_colormapfull'szMisc.winfo_colormapfullcCs4d||||f}|j|}|s*dS||S)N)r Z containing)rr1rr)rdZrootXZrootYrrrYr r r winfo_containing,s zMisc.winfo_containingcCs|j|jdd|jS)Nr depthr%rr r r winfo_depth4szMisc.winfo_depthcCs|j|jdd|jS)Nr r{r%rr r r winfo_exists8szMisc.winfo_existscCs|j|jdd|j|S)Nr Zfpixelsr1rrrrdnumberr r r winfo_fpixels=s  zMisc.winfo_fpixelscCs|jdd|jS)Nr geometryrrr r r winfo_geometryCszMisc.winfo_geometrycCs|j|jdd|jS)Nr rXr%rr r r winfo_heightGszMisc.winfo_heightcCst|jdd|jdS)Nr rr)r`r1rrrr r r winfo_idLsz Misc.winfo_idcCs"d||}|j|j|S)N)r Zinterps)rr1r-r)rdrrr r r winfo_interpsPszMisc.winfo_interpscCs|j|jdd|jS)Nr Zismappedr%rr r r winfo_ismappedUszMisc.winfo_ismappedcCs|jdd|jS)Nr managerrrr r r winfo_managerZszMisc.winfo_managercCs|jdd|jS)Nr rYrrr r r winfo_name^szMisc.winfo_namecCs|jdd|jS)Nr parentrrr r r winfo_parentbszMisc.winfo_parentcCs d|||f}|j|S)N)r pathnamer"r#r r r winfo_pathnamefs zMisc.winfo_pathnamecCs|j|jdd|j|S)Nr Zpixelsr%r5r r r winfo_pixelslszMisc.winfo_pixelscCs|j|jdd|jS)Nr Zpointerxr%rr r r winfo_pointerxqszMisc.winfo_pointerxcCs||jdd|jS)Nr Z pointerxy_getintsr1rrrr r r winfo_pointerxyvszMisc.winfo_pointerxycCs|j|jdd|jS)Nr Zpointeryr%rr r r winfo_pointery{szMisc.winfo_pointerycCs|j|jdd|jS)Nr Z reqheightr%rr r r winfo_reqheightszMisc.winfo_reqheightcCs|j|jdd|jS)Nr Zreqwidthr%rr r r winfo_reqwidthszMisc.winfo_reqwidthcCs||jdd|j|S)Nr ZrgbrG)rdZcolorr r r winfo_rgbszMisc.winfo_rgbcCs|j|jdd|jS)Nr Zrootxr%rr r r winfo_rootxszMisc.winfo_rootxcCs|j|jdd|jS)Nr Zrootyr%rr r r winfo_rootyszMisc.winfo_rootycCs|jdd|jS)Nr screenrrr r r winfo_screenszMisc.winfo_screencCs|j|jdd|jS)Nr Z screencellsr%rr r r winfo_screencellsszMisc.winfo_screencellscCs|j|jdd|jS)Nr Z screendepthr%rr r r winfo_screendepthszMisc.winfo_screendepthcCs|j|jdd|jS)Nr Z screenheightr%rr r r winfo_screenheightszMisc.winfo_screenheightcCs|j|jdd|jS)Nr Zscreenmmheightr%rr r r winfo_screenmmheightszMisc.winfo_screenmmheightcCs|j|jdd|jS)Nr Z screenmmwidthr%rr r r winfo_screenmmwidthszMisc.winfo_screenmmwidthcCs|jdd|jS)Nr Z screenvisualrrr r r winfo_screenvisualszMisc.winfo_screenvisualcCs|j|jdd|jS)Nr Z screenwidthr%rr r r winfo_screenwidthszMisc.winfo_screenwidthcCs|jdd|jS)Nr Zserverrrr r r winfo_serverszMisc.winfo_servercCs||jdd|jS)Nr toplevel)rr1rrrr r r winfo_toplevels  zMisc.winfo_toplevelcCs|j|jdd|jS)Nr Zviewabler%rr r r winfo_viewableszMisc.winfo_viewablecCs|jdd|jS)Nr visualrrr r r winfo_visualszMisc.winfo_visualcCs|jdd|jS)Nr Zvisualidrrr r r winfo_visualidszMisc.winfo_visualidFcsHjddj|rdnd}fddj|D}fdd|DS)Nr Zvisualsavailable includeidscsg|]}j|qSr )r1r-rrr r rsz/Misc.winfo_visualsavailable..csg|]}|qSr )_Misc__winfo_parseitemrrr r rs)r1rrr-)rdr`rr rr winfo_visualsavailables  zMisc.winfo_visualsavailablecCs$|ddtt|j|ddS)Nr)rr_Misc__winfo_getint)rdr3r r r Z__winfo_parseitemszMisc.__winfo_parseitemcCs t|dS)Nr)r`rdrUr r r Z__winfo_getintszMisc.__winfo_getintcCs|j|jdd|jS)Nr Z vrootheightr%rr r r winfo_vrootheightszMisc.winfo_vrootheightcCs|j|jdd|jS)Nr Z vrootwidthr%rr r r winfo_vrootwidthszMisc.winfo_vrootwidthcCs|j|jdd|jS)Nr Zvrootxr%rr r r winfo_vrootxszMisc.winfo_vrootxcCs|j|jdd|jS)Nr Zvrootyr%rr r r winfo_vrooty szMisc.winfo_vrootycCs|j|jdd|jS)Nr rWr%rr r r winfo_widthszMisc.winfo_widthcCs|j|jdd|jS)Nr rUr%rr r r winfo_xsz Misc.winfo_xcCs|j|jdd|jS)Nr rVr%rr r r winfo_ysz Misc.winfo_ycCs|jddS)Nr rrr r r r sz Misc.updatecCs|jdddS)Nr Z idletasksrrr r r update_idletasks$szMisc.update_idletaskscCs6|dkr |j|jd|jS|jd|j|dS)Nbindtagsr1r-rr)rdZtagListr r r rm*s z Misc.bindtagsrcCst|tr |j|||fnn|rd|||j|}d|r>dp@d||jf}|j|||f|S|rz|j||fS|j|j|SdS)Nz"%sif {"[%s %s]" == "break"} break +rZ)rrr1rr _substitute_subst_format_strr-)rdrnsequencerr needcleanupfuncidrr r r _bind7s"   z Misc._bindcCs|d|jf|||SNbindrurrdrrrrr r r rwIs'z Misc.bindcCs&|jd|j|d|r"||dSNrwrZr1rrr)rdrrrtr r r unbindrsz Misc.unbindcCs|d|||dS)N)rwallrruryr r r bind_allysz Misc.bind_allcCs|jdd|ddS)Nrwr}rZr)rdrrr r r unbind_allszMisc.unbind_allcCs|d|f|||dS)Nrwrr~)rdr rrrrr r r bind_classszMisc.bind_classcCs|jd||ddSrzr)rdr rrr r r unbind_classszMisc.unbind_classcCs|j|dSrq)r1r)rdrgr r r rsz Misc.mainloopcCs|jdSrq)r1quitrr r r rsz Misc.quitcCs"|rtt|jj|j|SdSrq)rrr1rr-rdrr r r rHsz Misc._getintscCs"|rtt|jj|j|SdSrq)rrr1rr-rr r r _getdoublesszMisc._getdoublescCs|r|j|SdSrq)r1rrr r r _getbooleanszMisc._getbooleancCs"|r d|fS|dkrd|jfSdS)Nrr rrr r r rs  zMisc._displayofcCsBz |jWStk r<|jdd}|_|YSXdS)Nr1Zwindowingsystem)r|Z_windowingsystem_cachedr!r1r)rdZwsr r r rs   zMisc._windowingsystemcCs|rt||f}nt|}d}|D]\}}|dk r&|ddkrN|dd}t|rb||}n^t|ttfrg}|D]<}t|tr|t |qxt|t r|t |qxqqxd |}|d||f}q&|S)Nr _rr,) r*r$callablerrrrr`rbrrr)rdr%rrr(r)Znvrr r r rs*     z Misc._optionscCsNt|d}|}|ds.|}|dd}|D]}|s>qJ|j|}q2|S)N.rr)rsplitr|r')rdrYwrgr r r nametowidgets  zMisc.nametowidgetcCst|||j}tt|}z |j}Wntk r8YnXz||j}Wntk r\YnX|j|||r|j dkrg|_ |j ||Srq) rrr^rrr!r@r1rrrb)rdrsubstrsrrYr r r rs     zMisc._registercCs|}|jr|j}q|Srqr)rdrr r r r|sz Misc._root)z%#z%bz%fz%hz%kz%sz%tz%wz%xz%yz%Az%Ez%Kz%Nz%Wz%Tz%Xz%Yz%Drcst|t|jkr|S|jj}|jjfdd}|\}}}}}} } } } } }}}}}}}}}t}||_|||_z|||_Wnt k rYnX|||_ |||_ || |_ || |_ || |_|| |_|| |_||_z|||_Wnt k r YnX||_|||_zt||_Wntk rF||_YnXz|||_Wntk rt||_YnX|||_|||_z||_Wn tt fk rd|_YnX|fS)Nc s,z |WSttfk r&|YSXdSrq)rtrrrr r getint_events z&Misc._substitute..getint_eventr)r _subst_formatr1rrrFserialrSrTrrXrRrMtimerWrUrVrKrLrQZ keysym_numr7rrtrwidgetr(Zx_rootZy_rootrP)rdrrrZnsignbrhr(rer3rrUrVAEKNWTXYDer rr rp sT *               zMisc._substitutecCs(t\}}}|}||||dSrq)sysexc_infor|report_callback_exception)rdrvaltbror r r _report_exceptionHszMisc._report_exceptioncGs\i}|j|jj|D]>}|j|}|dddf|dd||ddd<q|SNrrr1r-r)rdrr%rUr r r _getconfigureNs  0zMisc._getconfigurecGs2|j|jj|}|dddf|ddSrr)rdrrUr r r _getconfigure1VszMisc._getconfigure1cCs|rt||f}n |rt|}|dkr:|t|j|fSt|tr^|t|j|d|fS|jt|j|f| |dS)Nr,) r*rrrrrrr1rr)rdrr%rr r r _configureZs zMisc._configurecKs|d||S)N configurerrdr%rr r r rgszMisc.configurecCs|j|jdd|SNcgetr,rrdr5r r r rrsz Misc.cgetcCs|||idSrq)rrdr5r r r r __setitem__xszMisc.__setitem__cs*|jjfdd|j|jdDS)Ncs g|]}|dddqS)rrNr rrr r r~szMisc.keys..rrnrr rr rh{s z Misc.keyscCs|jSrqrrr r r rEsz Misc.__str__cCsd|jj|jj|jfS)Nz<%s.%s object %s>)rrArBrrr r r ris z Misc.__repr___noarg_cCs:|tjkr"||jdd|jS|jdd|j|dS)Npack propagaterrrr1rrrdflagr r r pack_propagates  zMisc.pack_propagatecs(fddjjddjDS)Ncsg|]}|qSr rrrr r rsz$Misc.pack_slaves..rslavesrnrr rr pack_slavess  zMisc.pack_slavescs(fddjjddjDS)Ncsg|]}|qSr rrrr r rsz%Misc.place_slaves..placerrnrr rr place_slavess zMisc.place_slavescCs|jdd|j|dS)Ngridanchorr)rdrr r r grid_anchorszMisc.grid_anchorcCsZdd|jf}|dk r(|dk r(|||f}|dk rD|dk rD|||f}||jj|pXdS)Nrbbox)rrHr1r)rdcolumnrowZcol2Zrow2rr r r grid_bboxs   zMisc.grid_bboxc Csht|ttjfrdz:t|}|s$WdSd|kr:|j|WS|j|WSWnttfk rbYnX|S)Nr) rr_tkinterZTcl_Objr1rrrtr)rdr Zsvaluer r r _gridconvvalueszMisc._gridconvvaluecCst|trJ|sJ|dddkr*|dd}|dddkrBd|}|f}n |||}|s|t|j|jd||j||jdS|jd||j|f|}t|dkr||SdS)Nrrrr,r)r2) rrrr6r1rrrr)rdrindexr%roptionsrr r r _grid_configures(    zMisc._grid_configurecKs|d|||S)Ncolumnconfigurerrdrr%rr r r grid_columnconfigureszMisc.grid_columnconfigurec Cs ||jdd|j||pdS)NrlocationrGrdrUrVr r r grid_locationszMisc.grid_locationcCs:|tjkr"||jdd|jS|jdd|j|dS)Nrrrrr r r grid_propagates  zMisc.grid_propagatecKs|d|||S)N rowconfigurerrr r r grid_rowconfigureszMisc.grid_rowconfigurecCs||jdd|jpdS)NrsizerGrr r r grid_sizes zMisc.grid_sizecsZd}|dk r|d|f}|dk r,|d|f}fddjjddjf|DS)Nr z-rowz-columncsg|]}|qSr rrrr r r(sz$Misc.grid_slaves..rrrn)rdrrrr rr grid_slaves s    zMisc.grid_slavescGsdd|f|}|j|dS)Neventrrrdvirtual sequencesrr r r event_add/szMisc.event_addcGsdd|f|}|j|dS)Nrdeleterrr r r event_delete6szMisc.event_deletecKsDdd|j|f}|D]\}}|d|t|f}q|j|dS)NrZgenerate-%s)rr$rr1r)rdrrrrr(r)r r r event_generate;szMisc.event_generatecCs|j|jdd|S)Nrrzr)rdrr r r event_infoDszMisc.event_infocCs|j|jddSNimagenamesrrr r r image_namesLszMisc.image_namescCs|j|jddS)Nrtypesrrr r r image_typesPszMisc.image_types)N)ry)N)N)ryr)ry)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@rArB_last_child_idsrrrrrrrZwaitvarrrrrrrrrrTrrrrrrrrrrrrrrrrrrrr r r r rrrrrrrrliftr!r$r&r+r-r/r0r2r3r7r9r:r;r<r=r?r@rBrDrErFrIrJrKrLrMrNrOrQrRrSrTrUrVrWrXrYr[r\r^r_rbrarcrerfrgrhrirjrkr rlrmrurwr|rrrrrrrHrrrpropertyrrrrrregisterr|rrrqrprrrrrconfigr __getitem__rrhrErirrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r rmsN                          )       =                  rc@seZdZddZddZdS)rcCs||_||_||_dSrq)rrr)rdrrrr r r rYszCallWrapper.__init__cGsLz|jr|j|}|j|WStk r2Yn|jYnXdSrq)rrrurrrdrr r r r_s  zCallWrapper.__call__Nr@rArBrrr r r r rUsrc@s$eZdZddZddZddZdS)XViewcGs(|jj|jdf|}|s$||SdS)Nxviewr1rrrrdrrr r r rosz XView.xviewcCs|j|jdd|dS)Nrmovetorrdfractionr r r xview_movetouszXView.xview_movetocCs|j|jdd||dS)Nrscrollrrdr6rnr r r xview_scrollzszXView.xview_scrollN)r@rArBrrrr r r r rksrc@s$eZdZddZddZddZdS)YViewcGs(|jj|jdf|}|s$||SdS)Nyviewrrr r r rsz YView.yviewcCs|j|jdd|dS)Nrrrrr r r yview_movetoszYView.yview_movetocCs|j|jdd||dS)Nrrrrr r r yview_scrollszYView.yview_scrollN)r@rArBrrrr r r r rsrc@seZdZdAddZeZddZeZdBddZeZdd Z e Z dCd d Z e Z d d Z e ZdDddZeZddZeZddZeZdEddZeZdFddZeZdGddZeZdHddZeZddZeZdIddZeZ 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/d0Z/e/Z0dQd1d2Z1e1Z2dRd3d4Z3e3Z4dSd5d6Z5e5Z6dTd7d8Z7e7Z8dUd9d:Z9e9Z:dVd;d<Z;e;ZZ=e=Z>d?d@Z?e?Z@dS)XWmNc Cs ||jdd|j||||S)NwmaspectrG)rdZminNumerZminDenomZmaxNumerZmaxDenomr r r wm_aspectsz Wm.wm_aspectcGsdd|jf|}|j|S)Nr attributes)rr1rrr r r wm_attributesszWm.wm_attributescCs|jdd|j|S)Nrclientrrr r r wm_clientsz Wm.wm_clientcsZt|dkr|f}ddjf|}|r4j|n"fddjj|DSdS)Nrrcolormapwindowscsg|]}|qSr rrrr r rsz)Wm.wm_colormapwindows..)rrr1rr-)rdZwlistrr rr wm_colormapwindowss  zWm.wm_colormapwindowscCs|jdd|j|S)Nrrrrr r r wm_commandsz Wm.wm_commandcCs|jdd|jS)Nr deiconifyrrr r r wm_deiconifyszWm.wm_deiconifycCs|jdd|j|S)Nr focusmodelr)rdZmodelr r r wm_focusmodelszWm.wm_focusmodelcCs|jdd|dS)Nrforgetrrr r r wm_forgetsz Wm.wm_forgetcCs|jdd|jS)Nrframerrr r r wm_framesz Wm.wm_framecCs|jdd|j|S)Nrr8r)rdZ newGeometryr r r wm_geometryszWm.wm_geometryc Cs ||jdd|j||||S)NrrrG)rdZ baseWidthZ baseHeightZwidthIncZ heightIncr r r wm_grids z Wm.wm_gridcCs|jdd|j|S)NrgrouprrdZpathNamer r r wm_group sz Wm.wm_groupcCs2|r|jdd|jd|S|jdd|j|SdS)Nr iconbitmap-defaultr)rdbitmapdefaultr r r wm_iconbitmaps zWm.wm_iconbitmapcCs|jdd|jS)Nriconifyrrr r r wm_iconify$sz Wm.wm_iconifycCs|jdd|j|S)Nriconmaskr)rdrr r r wm_iconmask*szWm.wm_iconmaskcCs|jdd|j|S)Nriconnamer)rdZnewNamer r r wm_iconname1szWm.wm_iconnameFcGs<|r |jjdd|jdf|n|jjdd|jf|dS)Nr iconphotorr)rdrrr r r wm_iconphoto8szWm.wm_iconphotoc Cs||jdd|j||S)Nr iconpositionrGrr r r wm_iconpositionSs zWm.wm_iconpositioncCs|jdd|j|S)Nr iconwindowrrr r r wm_iconwindow[szWm.wm_iconwindowcCs|jdd|dS)Nrmanager)rdrr r r wm_managebsz Wm.wm_managec Cs||jdd|j||S)NrmaxsizerGrdrWrXr r r wm_maxsizejs z Wm.wm_maxsizec Cs||jdd|j||S)NrminsizerGr.r r r wm_minsizess z Wm.wm_minsizecCs||jdd|j|S)Nroverrideredirect)rr1rrrr r r wm_overrideredirect|s  zWm.wm_overrideredirectcCs|jdd|j|S)Nr positionfromrrdZwhor r r wm_positionfromszWm.wm_positionfromcCs.t|r||}n|}|jdd|j||S)Nrprotocol)rrr1rr)rdrYrrr r r wm_protocols zWm.wm_protocolcCs|jdd|j||S)Nr resizablerr.r r r wm_resizableszWm.wm_resizablecCs|jdd|j|S)Nrsizefromrr5r r r wm_sizefromszWm.wm_sizefromcCs|jdd|j|S)NrrMr)rdZnewstater r r wm_statesz Wm.wm_statecCs|jdd|j|S)Nrtitlerrr r r wm_titlesz Wm.wm_titlecCs|jdd|j|S)Nr transientr)rdrr r r wm_transientszWm.wm_transientcCs|jdd|jS)Nrwithdrawrrr r r wm_withdrawszWm.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@rArBrrrrr rr r r rrr rrrrrrrr8rrrrrrr rr"r!r$r#r&r%r(r'r*r)r,r+r/r-r1r0r3r2r6r4r8r7r:r9r<r;r=rMr?r>rAr@rCrBr r r r rs                        rc@sJeZdZdZdddZddZd d Zd d Zd dZddZ ddZ dS)rmrNrrc Csd|_i|_d|_d|_|dkrZddl}|jtjd}|j |\}}|dkrZ||}d} t |||| t ||||_|r| tjjs|||dS)NFr)z.pyz.pyc)rr' _tkloadedr1ospathbasenamerargvsplitextrcreate wantobjects_loadtkflagsignore_environment readprofile) rd screenNamebaseNamer useTksyncZuserEext interactiver r r rs z Tk.__init__cCs|js|j|dSrq)rDr1loadtkrLrr r r rVs z Tk.loadtkcCsd|_|jd}|tjkr.tdtj|ft|jd}|tjkrZtdtj|f|jdkrjg|_|j dt |j dt |j d|j dt rts|a|d|jdS) 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)ZtkerrorexitWM_DELETE_WINDOW)rDr1rr TK_VERSIONr.r TCL_VERSIONrrrsrwrbrjrkr7r)rdrWrXr r r rLs(      z Tk._loadtkcCsJt|jD] }|q|jd|jt|trFt |krFda dSNr) rr'valuesrr1rrrrjrkrdr&r r r r s    z Tk.destroyc Csddl}d|jkr|jd}n|j}|j|d|}|j|d|}|j|d|}|j|d|}d|i} td| |j|r|jd||j|rtt | | |j|r|jd||j|rtt | | dS)NrHOMEz.%s.tclz.%s.pyrdzfrom tkinter import *source) rEenvironcurdirrFrexecisfiler1ropenread) rdrQr rEhomeZ class_tclZclass_pyZbase_tclZbase_pydirr r r rO s$      zTk.readprofilecCs:ddl}tdtjd|t_|t_|t_||||dS)NrzException in Tkinter callback)file) tracebackr#rstderr last_type last_valuelast_tracebackprint_exception)rdrrrrkr r r r$ s zTk.report_callback_exceptioncCs t|j|Srq)r_r1)rdattrr r r __getattr__0 szTk.__getattr__)NNrmrrN) r@rArBrrrVrLrrOrrrr r r r rms   rmcCst||||Srq)rm)rPrQr rRr r r TclC srsc@sPeZdZifddZeZZZddZeZddZ e Z e j Z Z e jZZdS)PackcKs$|jdd|jf|||dS)Nrrr1rrrrr r r pack_configureL s   zPack.pack_configurecCs|jdd|jdS)Nrrrrr r r pack_forgetb szPack.pack_forgetcCs8t|j|jdd|j}d|kr4||d|d<|S)Nrrzinr6r1rrrrddr r r pack_infoh szPack.pack_infoN)r@rArBrvrrrrwrr|rzrrrrrr r r r rtG s   rtc@sFeZdZifddZeZZZddZeZddZ e Z e j Z Z dS)PlacecKs$|jdd|jf|||dS)Nrrrurr r r place_configurez s   zPlace.place_configurecCs|jdd|jdS)Nrrrrr r r place_forget szPlace.place_forgetcCs8t|j|jdd|j}d|kr4||d|d<|S)Nrrzrxryrzr r r place_info szPlace.place_infoN)r@rArBr~rrrrrrrzrrrr r r r r}u s  r}c@seZdZifddZeZZZejZ Zej Z Z ddZ e Z ddZddZeZejZZejZZejZZejZZejZZd S) GridcKs$|jdd|jf|||dS)Nrrrurr r r grid_configure s   zGrid.grid_configurecCs|jdd|jdS)Nrrrrr r r grid_forget szGrid.grid_forgetcCs|jdd|jdS)Nrrrrr r r grid_remove szGrid.grid_removecCs8t|j|jdd|j}d|kr4||d|d<|S)Nrrzrxryrzr r r grid_info szGrid.grid_infoN)r@rArBrrrrrrrrrrrrrrzrrrrrrrrrrr r r r r s        rc@s6eZdZddZiidfddZddZd dd Zd S) BaseWidgetcCs|s t}||_|j|_d}d|kr2|d}|d=|s|jj}|jdkrRi|_|j|dd}||j|<|dkrd|f}n d||f}||_|j dkrd||_ n|j d||_ i|_ |j|jj kr|jj |j ||jj |j<dS)NrYrrz!%sz!%s%dr) rprr1rr@rrrr~rr'r)rdrr%rYcountr r r _setup s2       zBaseWidget._setupr c Cs|rt||f}||_t||||jdkr4g|_dd|D}|D]\}}||=qJ|j||jf|| ||D]\}}| ||q~dS)NcSs"g|]\}}t|tr||fqSr )rrrHr r r r s z'BaseWidget.__init__..) r* widgetNamerrrr$r1rrrr) rdrrr%rextraclassesr(r)r r r r s    zBaseWidget.__init__cCsTt|jD] }|q|jd|j|j|jjkrF|jj|j=t |dSr]) rr'r^rr1rrr~rrr_r r r r s   zBaseWidget.destroycCs|j|j|f|Srqr)rdrYrr r r _do szBaseWidget._doN)r )r@rArBrrrrr r r r r src@s eZdZdS)WidgetN)r@rArBr r r r r src@seZdZdifddZdS)ToplevelNc Ks|rt||f}d}dD]L}||kr||}|ddkrJd|dd}nd|}|||f}||=qt||d|i||}|||||d|jdS)Nr )rPclass_r,r]Zcolormaprrr,rZrZ)r*rrr|r#r>r7r) rdrr%rrZwmkeyroptror r r r) s    zToplevel.__init__r@rArBrr r r r r& src@s*eZdZdifddZddZddZdS)rCNcKst||d||dS)NZbuttonrrrdrr%rr r r rG szButton.__init__cCs|j|jddSNflashrrr r r r\ s z Button.flashcCs|j|jdSNinvokerrr r r rh sz Button.invoke)r@rArBrrrr r r r rCD s rCc@seZdZdifddZddZddZdd Zd d Zdvd d ZddZ ddZ ddZ ddZ dwddZ dxddZdyddZdzddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"d{dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,d|dVdWZ-e-Z.dXdYZ/e/Z0dZd[Z1d}d]d^Z2ifd_d`Z3dadbZ4e4Z5Z6dcddZ7dedfZ8d~dhdiZ9djdkZ:dldmZ;dndoZdtduZ?dS)CanvasNcKst||d||dS)NZcanvasrrr r r rv s zCanvas.__init__cGs|j|jdf|dS)Naddtagrrr r r r sz Canvas.addtagcCs||d|dSNZaboverrdnewtagtagOrIdr r r addtag_above szCanvas.addtag_abovecCs||ddSNr}r)rdrr r r addtag_all szCanvas.addtag_allcCs||d|dSNZbelowrrr r r addtag_below szCanvas.addtag_belowcCs||d||||dSNZclosestr)rdrrUrVhalostartr r r addtag_closest szCanvas.addtag_closestcCs||d||||dSNZenclosedrrdrx1y1x2y2r r r addtag_enclosed szCanvas.addtag_enclosedcCs||d||||dSNZ overlappingrrr r r addtag_overlapping szCanvas.addtag_overlappingcCs||d|dSNZwithtagrrr r r addtag_withtag szCanvas.addtag_withtagcGs ||j|jdf|pdSNrrGrr r r r s z Canvas.bboxcCs(|j|jd||d|r$||dSrzr{)rdrrrrtr r r tag_unbind szCanvas.tag_unbindcCs||jd|f|||Srvrx)rdrrrrrr r r tag_bind s zCanvas.tag_bindcCs|j|j|jd||S)Ncanvasxr4)rdZscreenx gridspacingr r r r s  zCanvas.canvasxcCs|j|j|jd||S)Ncanvasyr4)rdZscreenyrr r r r s  zCanvas.canvasycs,fddjjjdf|DS)Ncsg|]}j|qSr )r1rrrr r r sz!Canvas.coords..coordsrnrr rr r s  z Canvas.coordsc Cs\t|}|d}t|ttfr,|dd}ni}|j|jj|jd|f||||S)NrrJ) rrrrr1rrrr)rditemTyperrr%r r r _create s zCanvas._createcOs|d||S)NZarcrrr r r create_arc szCanvas.create_arccOs|d||SNrrrr r r create_bitmap szCanvas.create_bitmapcOs|d||S)Nrrrr r r create_image szCanvas.create_imagecOs|d||S)Nlinerrr r r create_line szCanvas.create_linecOs|d||S)NZovalrrr r r create_oval szCanvas.create_ovalcOs|d||S)NZpolygonrrr r r create_polygon szCanvas.create_polygoncOs|d||S)NZ rectanglerrr r r create_rectangle szCanvas.create_rectanglecOs|d||SNtextrrr r r create_text szCanvas.create_textcOs|d||S)Nrrrr r r create_window szCanvas.create_windowcGs|j|jdf|dS)Ndcharsrrr r r r sz Canvas.dcharscGs|j|jdf|dSNrrrr r r r sz Canvas.deletecGs|j|jdf|dS)Ndtagrrr r r r sz Canvas.dtagcGs ||j|jdf|pdS)Nfindr rGrr r r r s z Canvas.findcCs |d|Srrrdrr r r find_above szCanvas.find_abovecCs |dSrrrr r r find_all szCanvas.find_allcCs |d|Srrrr r r find_below szCanvas.find_belowcCs|d||||Srr)rdrUrVrrr r r find_closest szCanvas.find_closestcCs|d||||Srrrdrrrrr r r find_enclosed& szCanvas.find_enclosedcCs|d||||Srrrr r r find_overlapping+ szCanvas.find_overlappingcCs |d|Srrrr r r find_withtag0 szCanvas.find_withtagcGs|j|jdf|Srrrr r r rT4 sz Canvas.focuscGs|j|j|jdf|S)Ngettagsrnrr r r r8 szCanvas.gettagscGs|j|jdf|dSNicursorrrr r r r= szCanvas.icursorcGs|j|j|jdf|SNrr%rr r r rB sz Canvas.indexcGs|j|jdf|dSNinsertrrr r r rF sz Canvas.insertcCs|j|jdf|d|fSNitemcgetr,r)rdrrr r r rK szCanvas.itemcgetcKs|d|f||SN itemconfigurerrdrr%rr r r rP szCanvas.itemconfigurecGs|j|jdf|dSrrrr r r tag_lower_ szCanvas.tag_lowercGs|j|jdf|dS)Nmoverrr r r rf sz Canvas.moverZcCs|j|jd|||dS)Nrr)rdrrUrVr r r rj sz Canvas.movetocKs|j|jdf|||S)N postscriptrurr r r rs s zCanvas.postscriptcGs|j|jdf|dSrrrr r r tag_raise{ szCanvas.tag_raisecGs|j|jdf|dSNscalerrr r r r sz Canvas.scalecCs|j|jdd||dSNscanmarkrrr r r scan_mark szCanvas.scan_mark cCs|j|jdd|||dSNrdragtor)rdrUrVZgainr r r scan_dragto szCanvas.scan_dragtocCs|j|jdd||dS)Nselectadjustrrdrrr r r select_adjust szCanvas.select_adjustcCs|j|jdddS)Nrrrrr r r select_clear szCanvas.select_clearcCs|j|jdd||dS)Nrfromrrr r r select_from szCanvas.select_fromcCs|j|jddpdS)Nrrrrr r r select_item szCanvas.select_itemcCs|j|jdd||dS)Nrtorrr r r select_to szCanvas.select_tocCs|j|jd|pdSNrrrr r r r sz Canvas.type)NN)N)NNN)N)N)NN)N)rZrZ)r)@r@rArBrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrTrrrrrr itemconfigrrrrrrrrrrrrrrrrrr r r r rs sx          rc@sBeZdZdifddZddZddZdd Zd d Zd d ZdS) CheckbuttonNcKst||d||dSNZ checkbuttonrrr r r r s zCheckbutton.__init__cCs|j|jddSNdeselectrrr r r r szCheckbutton.deselectcCs|j|jddSrrrr r r r szCheckbutton.flashcCs|j|jdSrrrr r r r szCheckbutton.invokecCs|j|jddSNrrrr r r r szCheckbutton.selectcCs|j|jddS)Ntogglerrr r r r szCheckbutton.toggle) r@rArBrrrrrrr r r r r s  rc@seZdZdifddZdddZddZdd Zd d Zd d ZddZ ddZ ddZ e Z ddZ e ZddZeZddZeZddZeZddZeZdS)EntryNcKst||d||dS)Nentryrrr r r r s zEntry.__init__cCs|j|jd||dSrrrdfirstZlastr r r r sz Entry.deletecCs|j|jdSNrrrr r r r sz Entry.getcCs|j|jd|dSrrrdrr r r r sz Entry.icursorcCs|j|j|jd|Srr%rr r r r s  z Entry.indexcCs|j|jd||dSrr)rdrrr r r r sz Entry.insertcCs|j|jdd|dSrrrdr r r r szEntry.scan_markcCs|j|jdd|dSrrrdr r r r szEntry.scan_dragtocCs|j|jdd|dS)Nrrrrr r r selection_adjust szEntry.selection_adjustcCs|j|jdddSNrrrrr r r r szEntry.selection_clearcCs|j|jdd|dS)Nrrrrr r r selection_from szEntry.selection_fromcCs|j|j|jddSNrZpresentr.rr r r selection_present szEntry.selection_presentcCs|j|jdd||dS)Nrrangerrdrendr r r selection_range szEntry.selection_rangecCs|j|jdd|dS)Nrrrrr r r selection_to szEntry.selection_to)N)r@rArBrrrrrrrrr rrrr rr Zselect_presentrZ select_rangerrr r r r r s( rc@seZdZdifddZdS)FrameNcKs^t||f}d}d|kr,d|df}|d=nd|krFd|df}|d=t||d|i|dS)Nr rz-classr,r)r*rr)rdrr%rrr r r r& s   zFrame.__init__rr r r r r# src@seZdZdifddZdS)LabelNcKst||d||dS)Nlabelrrr r r r: szLabel.__init__rr r r r r7 src@seZdZdifddZddZddZdd Zd(d d Zd)d d ZddZ ddZ ddZ ddZ ddZ ddZddZeZd*ddZeZddZeZd+d d!ZeZd"d#Zd$d%Zd,d&d'ZeZdS)-ListboxNcKst||d||dS)NZlistboxrrr r r rR szListbox.__init__cCs|j|jd|dSNactivaterrr r r r\ szListbox.activatecCs||j|jd|pdSrrGrr r r r` sz Listbox.bboxcCs||j|jdpdS)N curselectionr rGrr r r re szListbox.curselectioncCs|j|jd||dSrrrr r r ri szListbox.deletecCs:|dk r$|j|j|jd||S|j|jd|SdSrrnrr r r rm s z Listbox.getcCs*|j|jd|}|dkrdS|j|SNrrr1rrrrdrrfr r r ru sz Listbox.indexcGs|j|jd|f|dSrr)rdrelementsr r r r{ szListbox.insertcCs|j|j|jd|S)Nnearestr%)rdrVr r r r s  zListbox.nearestcCs|j|jdd||dSrrrr r r r szListbox.scan_markcCs|j|jdd||dSrrrr r r r szListbox.scan_dragtocCs|j|jd|dSNseerrr r r r  sz Listbox.seecCs|j|jdd|dS)Nrrrrr r r selection_anchor szListbox.selection_anchorcCs|j|jdd||dSr rrr r r r s  zListbox.selection_clearcCs|j|j|jdd|S)NrZincludesr.rr r r selection_includes s  zListbox.selection_includescCs|j|jdd||dS)Nrrrrr r r selection_set szListbox.selection_setcCs|j|j|jdS)Nrr%rr r r r sz Listbox.sizecCs|j|jdf|d|fSrrrdrrr r r r szListbox.itemcgetcKs|d|f||Srrrr r r r szListbox.itemconfigure)N)N)N)N)N)r@rArBrrrrrrrrrrrr r!Z select_anchorrrr"Zselect_includesr#Z select_setrrrrr r r r rO s0      rc@seZdZdifddZd5ddZddZifd d Zifd d Zifd dZifddZ ifddZ ifddZ ifddZ ifddZ ifddZifddZifddZifdd Zd6d!d"Zd#d$Zd7d%d&ZeZd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4ZdS)8MenuNcKst||d||dSNmenurrr r r r sz Menu.__init__rZcCs|jd|j|||dS)Ntk_popupr)rdrUrVrr r r r( sz Menu.tk_popupcCs|j|jd|dSrrrr r r r sz Menu.activatecKs$|j|jd|f|||dSNrru)rdrr%rr r r r s zMenu.addcKs|d|p |dSNZcascaderrr r r add_cascade szMenu.add_cascadecKs|d|p |dSrr+rr r r add_checkbutton szMenu.add_checkbuttoncKs|d|p |dSNrr+rr r r add_command szMenu.add_commandcKs|d|p |dSNZ radiobuttonr+rr r r add_radiobutton szMenu.add_radiobuttoncKs|d|p |dSNZ separatorr+rr r r add_separator szMenu.add_separatorcKs&|j|jd||f|||dSrru)rdrrr%rr r r r s z Menu.insertcKs||d|p|dSr*rrr r r insert_cascade szMenu.insert_cascadecKs||d|p|dSrr4rr r r insert_checkbutton szMenu.insert_checkbuttoncKs||d|p|dSr.r4rr r r insert_command szMenu.insert_commandcKs||d|p|dSr0r4rr r r insert_radiobutton szMenu.insert_radiobuttoncKs||d|p|dSr2r4rr r r insert_separator szMenu.insert_separatorcCs|dkr |}||||}}|dks2|dkr:d\}}t||dD]0}d||krHt||d}|rH||qH|j|jd||dS)N)rrrrr) rr entryconfigr entrycgetrr1rr)rdindex1index2Z num_index1Z num_index2rfr&r r r r s z Menu.deletecCs|j|jd|d|S)Nr;r,rr$r r r r; szMenu.entrycgetcKs|d|f||S)Nentryconfigurerrr r r r> szMenu.entryconfigurecCs*|j|jd|}|dkrdS|j|Srrrr r r r# sz Menu.indexcCs|j|jd|Srrrr r r r) sz Menu.invokecCs|j|jd||dS)Npostrrr r r r?. sz Menu.postcCs|j|jd|Srrrr r r r2 sz Menu.typecCs|j|jddS)Nunpostrrr r r r@6 sz Menu.unpostcCs|j|j|jd|S)N xpositionr%rr r r rA: szMenu.xpositioncCs|j|j|jd|S)N ypositionr%rr r r rB? s  zMenu.yposition)rZ)N)N)r@rArBrr(rrr,r-r/r1r3rr5r6r7r8r9rr;r>r:rrr?rr@rArBr r r r r% s4               r%c@seZdZdifddZdS) MenubuttonNcKst||d||dS)N menubuttonrrr r r rH szMenubutton.__init__rr r r r rCE srCc@seZdZdifddZdS)MessageNcKst||d||dS)Nmessagerrr r r rO szMessage.__init__rr r r r rEL srEc@s:eZdZdifddZddZddZdd Zd d ZdS) RadiobuttonNcKst||d||dSr0rrr r r rV s zRadiobutton.__init__cCs|j|jddSrrrr r r rb szRadiobutton.deselectcCs|j|jddSrrrr r r rg szRadiobutton.flashcCs|j|jdSrrrr r r rk szRadiobutton.invokecCs|j|jddSrrrr r r ro szRadiobutton.select)r@rArBrrrrrr r r r rGS s  rGc@s<eZdZdifddZddZddZd dd Zd d ZdS) ScaleNcKst||d||dSrrrr r r rw s zScale.__init__c CsJ|j|jd}z|j|WStttfk rD|j|YSXdSr)r1rrrrtr"rrrr r r r s z Scale.getcCs|j|jd|dSNrrrr r r r sz Scale.setcCs||j|jd|S)NrrGrr r r r sz Scale.coordscCs|j|jd||SNidentifyrrr r r rK szScale.identify)N)r@rArBrrrrrKr r r r rHt s   rHc@sLeZdZdifddZdddZddZdd Zd d Zd d ZddZ dS) ScrollbarNcKst||d||dS)NZ scrollbarrrr r r r s zScrollbar.__init__cCs|j|jd|pdSrrrr r r r szScrollbar.activatecCs|j|j|jd||S)NrPr4)rdZdeltaxZdeltayr r r rP szScrollbar.deltacCs|j|j|jd||S)Nrr4rr r r r szScrollbar.fractioncCs|j|jd||SrJrrr r r rK szScrollbar.identifycCs||j|jdSr)rr1rrrr r r r sz Scrollbar.getcCs|j|jd||dSrIrrr r r r sz Scrollbar.set)N) r@rArBrrrPrrKrrr r r r rL s rLc@seZdZdifddZddZddZdd Zdjd d Zdkd d ZddZ dlddZ ddZ dmddZ ddZ ddZddZddZdnddZd d!Zdod"d#Zifd$d%Zd&d'Zd(d)Zd*d+Zdpd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zifd8d9Zd:d;Zdd?Z!d@dAZ"dqdBdCZ#dDdEZ$dFdGZ%drdHdIZ&dsdJdKZ'dLdMZ(dtdNdOZ)e)Z*dPdQZ+dudRdSZ,dvdTdUZ-dwdVdWZ.dxdXdYZ/dydZd[Z0d\d]Z1dzd^d_Z2d`daZ3d{dbdcZ4e4Z5ifdddeZ6dfdgZ7dhdiZ8dS)|TextNcKst||d||dSrrrr r r r sz Text.__init__cCs||j|jd|pdSrrGrr r r r s z Text.bboxc Cs|j|j|jd|||S)Ncomparer.)rdr<opr=r r r rN s z Text.comparecGsVdd|D}|||g7}|jj|jdf|p2d}|dk rNt|dkrN|fS|SdS)NcSsg|]}|dsd|qS)r,r) startswith)rIargr r r rs zText.count..r)r1rrr)rdr<r=rrr r r r s  z Text.countcCs6|dkr |j|j|jdS|j|jd|dS)Ndebugr.rr r r rS sz Text.debugcCs|j|jd||dSrrrdr<r=r r r rsz Text.deletecCs||j|jd|S)N dlineinforGrr r r rUszText.dlineinfoc Ksg}d}d}|s$g}|fdd}|}zzt|ts>||}}|d|g7}|D]} || rN|d| qN|||r|||jj|jdf||WS|r||XdS)NcSs||||fdSrq)rb)r5r rr)r r r append_triple/sz Text.dump..append_triplez-commandr,dump)rrrrrbr1rr) rdr<r=rrr func_namer)rVr5r r r rWs*      z Text.dumpcGs|jj|jdf|S)Neditrrr r r rYBs z Text.editcCs |d|S)NZmodifiedrY)rdrQr r r edit_modifiedQs zText.edit_modifiedcCs |dS)NZredorZrr r r edit_redo\szText.edit_redocCs |dS)NresetrZrr r r edit_resetfszText.edit_resetcCs |dSr2rZrr r r edit_separatorkszText.edit_separatorcCs |dS)NZundorZrr r r edit_undors zText.edit_undocCs|j|jd||SrrrTr r r r}szText.getcCsJ|dddkrd|}|dddkr4|dd}|j|jdd||S)Nrr,rrrrrr$r r r image_cgets  zText.image_cgetcKs|dd|f||S)Nrrrrr r r image_configureszText.image_configurecKs"|jj|jdd|f|||S)NrrJrurr r r image_creates zText.image_createcCs|j|jddSrrrr r r rszText.image_namescCst|j|jd|Sr)rr1rrrr r r rsz Text.indexcGs|j|jd||f|dSrr)rdrcharsrr r r rsz Text.insertcCs|j|jdd||fS)NrZgravityr)rdmarkName directionr r r mark_gravityszText.mark_gravitycCs|j|j|jddS)Nrrrnrr r r mark_namess  zText.mark_namescCs|j|jdd||dS)Nrrr)rdrerr r r mark_setsz Text.mark_setcGs|j|jddf|dS)NrZunsetr)rdZ markNamesr r r mark_unsetszText.mark_unsetcCs|j|jdd|pdS)Nrnextrrr r r mark_nextszText.mark_nextcCs|j|jdd|pdS)NrZpreviousrrr r r mark_previousszText.mark_previouscKs&|jj|jdd|f|||dS)NpeerrJru)rdZ newPathNamer%rr r r peer_creates zText.peer_createcCs|j|j|jddS)Nrnrrnrr r r peer_namesszText.peer_namescGs |jj|jd|||f|dS)Nrr)rdr<r=rdrr r r rsz Text.replacecCs|j|jdd||dSrrrr r r rszText.scan_markcCs|j|jdd||dSrrrr r r rszText.scan_dragtoc Cs|jdg} |r| d|r&| d|r4| d|rB| d|rP| d| r^| d| rv| d| | |r|d d kr| d | || ||r| |t|jt| S) Nrz -forwardsz -backwardsz-exactz-regexpz-nocasez-elidez-countrr,r)rrbrr1rr) rdrrZ stopindexZforwardsZ backwardsexactZregexpZnocaserZeliderr r r rs.            z Text.searchcCs|j|jd|dSrrrr r r r szText.seecGs |j|jdd||f|dS)Ntagrr)rdtagNamer<rr r r tag_addsz Text.tag_addcCs*|j|jdd||d|r&||dS)NrrrwrZr{)rdrsrrrtr r r rszText.tag_unbindcCs||jdd|f|||S)Nrrrwrx)rdrsrrrrr r r rs z Text.tag_bindcCsJ|dddkrd|}|dddkr4|dd}|j|jdd||S)Nrr,rrrrrr)rdrsrr r r tag_cget s  z Text.tag_cgetcKs|dd|f||S)Nrrrr)rdrsr%rr r r tag_configureszText.tag_configurecGs|j|jddf|dS)Nrrrr)rdZtagNamesr r r tag_deleteszText.tag_deletecCs|j|jdd||dS)Nrrrr)rdrsrr r r rszText.tag_lowercCs|j|j|jdd|S)Nrrrrnrr r r tag_names szText.tag_namesc Cs |j|j|jdd|||S)NrrZ nextrangernrdrsr<r=r r r tag_nextrange%s zText.tag_nextrangec Cs |j|j|jdd|||S)NrrZ prevrangernryr r r tag_prevrange,s zText.tag_prevrangecCs|j|jdd||dS)Nrrrr)rdrsrr r r r3szText.tag_raisecCs|j|j|jdd|S)NrrZrangesrn)rdrsr r r tag_ranges9s  zText.tag_rangescCs|j|jdd|||dS)Nrrrrryr r r tag_remove>szText.tag_removecCsJ|dddkrd|}|dddkr4|dd}|j|jdd||S)Nrr,rrrrrr$r r r window_cgetCs  zText.window_cgetcKs|dd|f||S)Nrrrrr r r window_configureKszText.window_configurecKs&|j|jdd|f|||dS)NrrJrurr r r window_createQs   zText.window_createcCs|j|j|jddS)Nrrrnrr r r window_namesWszText.window_namescGs|j|jddf|dS)Nrz -pickplacer)rdrnr r r yview_pickplace\szText.yview_pickplace)N)N)NN)N)N)N)N)NNNNNNNN)N)N)N)N)N)N)N)N)N)N)9r@rArBrrrNrrSrrUrWrYr[r\r^r_r`rrarbrcrrrrgrhrirjrlrmrorprrrrr rtrrrurvZ tag_configrwrrxrzr{rr|r}r~rZ window_configrrrr r r r rM s|   (                   rMc@seZdZdddZddZdS)_setitNcCs||_||_||_dSrq) _setit__value _setit__var_setit__callback)rdvarr rr r r rdsz_setit.__init__cGs*|j|j|jr&|j|jf|dSrq)rrrrrr r r risz_setit.__call__)Nrr r r r ras rc@s$eZdZddZddZddZdS) OptionMenuc Osd|dtddd}t||d|d|_t|ddd }|_|j|_|d }d |kr\|d =|rtt d t t ||j |t |||d |D]} |j | t || |d q||d<dS) Nr+rr&)Z borderwidthZ textvariableZ indicatoronZreliefrZhighlightthicknessrDZ tk_optionMenur'r)rYZtearoffrzunknown option -)rr)ZRAISEDrrrr%_OptionMenu__menurZmenunamerrrkr/r/r) rdrrr r^kwargsrr'rr)r r r rrs.   zOptionMenu.__init__cCs|dkr|jSt||Sr&)rrrrr r r rszOptionMenu.__getitem__cCst|d|_dSrq)rCrrrr r r rs zOptionMenu.destroyN)r@rArBrrrr r r r rosrc@sdeZdZdZdidfddZddZddZd d Zd d Zd dZ e Z ddZ ddZ ddZ dS)ImagerNc Ksd|_|std}t|d||_|s>tjd7_dtjf}|rT|rTt||f}n|r\|}d}|D]*\}}t|r| |}|d||f}qh|j dd||f|||_dS) Nz create imager1rz pyimage%rr r,rrJ) rYrpr_r1r_last_idr*r$rrr) rdZimgtyperYr%rrrr(r)r r r rs$  zImage.__init__cCs|jSrq)rYrr r r rEz Image.__str__cCs6|jr2z|jdd|jWntk r0YnXdS)Nrr)rYr1rrrr r r rs z Image.__del__cCs|j|jdd||dSNrr,r1rrYrr r r rszImage.__setitem__cCs|j|jdd|Srrrr r r rszImage.__getitem__cKsvd}t|D]J\}}|dk r|ddkr8|dd}t|rJ||}|d||f}q|j|jdf|dS)Nr rrr,r)r*r$rrr1rrY)rdrrr(r)r r r rs  zImage.configurecCs|j|jdd|jS)NrrXr1rrrYrr r r rXsz Image.heightcCs|jdd|jS)Nrrrrr r r rsz Image.typecCs|j|jdd|jS)NrrWrrr r r rWsz Image.width)r@rArBrrrErrrrrrXrrWr r r r rs rc@s|eZdZdidfddZddZddZdd Zd d Zdd dZdddZ ddZ dddZ dddZ ddZ ddZdS) PhotoImageNcKstj|d|||f|dS)NZphotorrrdrYr%rrr r r rszPhotoImage.__init__cCs|j|jddS)Nblankrrr r r rszPhotoImage.blankcCs|j|jdd|Srr)rdrr r r rszPhotoImage.cgetcCs|j|jdd|Srrrr r r rszPhotoImage.__getitem__cCs"t|jd}|j|d|j|S)Nrcopyrr1rrY)rd destImager r r rs zPhotoImage.copyrZcCs4t|jd}|dkr|}|j|d|jd|||S)NrrZrz-zoomrrdrUrVrr r r zooms  zPhotoImage.zoomcCs4t|jd}|dkr|}|j|d|jd|||S)NrrZrz -subsamplerrr r r subsamples  zPhotoImage.subsamplecCs|j|jd||Srrrr r r r szPhotoImage.getcCsH|jd|f}|r8|ddkr(|dd}|dt|}|j|dS)Nputr-tor)rrYrr1r)rdrrrr r r r s    zPhotoImage.putcCs@|jd|f}|r|d|f}|r0|dt|}|j|dS)Nwritez-format)z-fromr)rdfilenameformatZ from_coordsrr r r rs   zPhotoImage.writec Cs|j|j|jdd||S)N transparencyr)r1rrrYrr r r transparency_get"s zPhotoImage.transparency_getcCs|j|jdd|||dS)Nrrr)rdrUrVrr r r transparency_set'szPhotoImage.transparency_set)rZ)rZ)N)NN)r@rArBrrrrrrrrrrrrr r r r rs  rc@seZdZdidfddZdS) BitmapImageNcKstj|d|||f|dSrrrr r r r/szBitmapImage.__init__rr r r r r,srcCstdj}||ddS)Nzuse image_names()rrrpr1r-rr1r r r r6s rcCstdj}||ddS)Nzuse image_types()rrrrr r r r;s rc@seZdZdifddZddZd*ddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd+d d!Zd"d#Zd$d%Zd&d'Zd(d)ZdS),SpinboxNcKst||d||dS)NZspinboxrrr r r rCszSpinbox.__init__cCs||j|jd|pdSrrGrr r r r`s z Spinbox.bboxcCs|j|jd||Srrrr r r rns zSpinbox.deletecCs|j|jdSrrrr r r rysz Spinbox.getcCs|j|jd|Srrrr r r r}szSpinbox.icursorcCs|j|jd||SrJrrr r r rKszSpinbox.identifycCs|j|jd|Srrrr r r rsz Spinbox.indexcCs|j|jd||Srr)rdrrer r r rszSpinbox.insertcCs|j|jd|Srrrdelementr r r rszSpinbox.invokecGs ||j|jdf|pdS)Nrr rGrr r r rs z Spinbox.scancCs |d|SNrrrdr r r rszSpinbox.scan_markcCs |d|S)Nrrrdr r r rs zSpinbox.scan_dragtocGs ||j|jdf|pdS)Nrr rGrr r r rs zSpinbox.selectioncCs |d|S)Nrrrr r r r s zSpinbox.selection_adjustcCs |dS)Nrrrr r r rszSpinbox.selection_clearcCs|j|jdd|S)Nrrrrr r r selection_elementszSpinbox.selection_elementcCs|d|dS)Nrrrr r r r szSpinbox.selection_fromcCs|j|j|jddSr r.rr r r r szSpinbox.selection_presentcCs|d||dS)Nrrrr r r rszSpinbox.selection_rangecCs|d|dS)Nrrrr r r rszSpinbox.selection_to)N)N)r@rArBrrrrrrKrrrrrrrr rrr r rrr r r r r@s(    rc@seZdZdifddZdS) LabelFrameNcKst||d||dS)NZ labelframerrr r r rszLabelFrame.__init__rr r r r rsrc@seZdZdifddZddZddZeZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZd ddZeZddZdS)! PanedWindowNcKst||d||dS)NZ panedwindowrrr r r r szPanedWindow.__init__cKs"|j|jd|f||dSr)ru)rdr*rr r r rszPanedWindow.addcCs|j|jd|dSNrr)rdr*r r r r'szPanedWindow.removecCs|j|jd||SrJrrr r r rK0s zPanedWindow.identifycGs ||j|jdf|pdS)Nproxyr rGrr r r r<s zPanedWindow.proxycCs |dSNZcoordrrr r r proxy_coordAszPanedWindow.proxy_coordcCs |dSrrrr r r proxy_forgetFszPanedWindow.proxy_forgetcCs|d||SNrrrr r r proxy_placeKszPanedWindow.proxy_placecGs ||j|jdf|pdS)Nsashr rGrr r r rPs zPanedWindow.sashcCs |d|Srrrr r r sash_coordUs zPanedWindow.sash_coordcCs |d|Srrrr r r sash_markcszPanedWindow.sash_markcCs|d|||Srr)rdrrUrVr r r sash_placejszPanedWindow.sash_placecCs|j|jdf|d|fS)Npanecgetr,r)rdr*rr r r roszPanedWindow.panecgetcKsd|dkr|s||jd|St|tr@|s@||jd|d|S|j|jd|f|||dS)N paneconfigurer,)rrrrrr1rrrr r r rwsD  zPanedWindow.paneconfigurecCs|j|j|jdS)Npanesrnrr r r rszPanedWindow.panes)N)r@rArBrrrrrKrrrrrrrrrrZ paneconfigrr r r r r s"   LrcCst}dt}|d7}t||d}|t|d|fddd}|||_t|d|jd}|||| | dS) NzThis is Tcl/Tk version %su This should be a cedilla: çrz Click me!cSs|jjd|jddS)Nz[%s]rr)testr)ror r r s z_test..)rrZQUIT) rm TclVersionrrrCrrrr r r)rorrrrr r r _tests   r__main__)TN)N)r)r)NNrmr)UenumrrrZtkinter.constantsrerKfloatr[Z TkVersionr\rZREADABLEZWRITABLEZ EXCEPTIONcompilerASCIIrr rrr!r*r6rEnumr7rFrjrkrlrprsrwrrxrrrrrr`rrrrrrrrrmrsrtr}rrrrrCrrrrrrr%rCrErGrHrLrMrrrrrrrrrrrr@r r r r !s       ,R  6  q2~ .37?/8$Vt!'2'BT 3C