U .‘c8 ã@srddlmZmZddlZGdd„dƒZeƒZejZejZejZGdd„deƒZ e dkrnddl m Z e d d d dS) é)ÚToplevelÚTclErrorNc@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)Ú WindowListcCsi|_g|_dS©N)ÚdictÚ callbacks©Úself©r ú3/opt/alt/python38/lib64/python3.8/idlelib/window.pyÚ__init__szWindowList.__init__cCs| |j¡||jt|ƒ<dSr)Z after_idleÚcall_callbacksrÚstr©r Úwindowr r r Úadd s zWindowList.addcCs2z|jt|ƒ=Wntk r$YnX| ¡dSr)rrÚKeyErrorr rr r r Údeletes zWindowList.deletec Cs|g}|jD]D}|j|}z | ¡}Wntk r<Yq YnX| |||f¡q | ¡|D]\}}}|j||jdq\dS)N)ZlabelZcommand)rÚ get_titlerÚappendÚsortZ add_commandÚwakeup)r ZmenuÚlistÚkeyrÚtitler r r Úadd_windows_to_menus    zWindowList.add_windows_to_menucCs|j |¡dSr)rr©r Úcallbackr r r Úregister_callback$szWindowList.register_callbackcCs*z|j |¡Wntk r$YnXdSr)rÚremoveÚ ValueErrorrr r r Úunregister_callback'szWindowList.unregister_callbackc CsD|jD]8}z |ƒWqt ¡\}}}td|d|ƒYqXqdS)Nz&warning: callback failed in WindowListú:)rÚsysÚexc_infoÚprint)r rÚtÚvÚtbr r r r -s   zWindowList.call_callbacksN) Ú__name__Ú __module__Ú __qualname__r rrrrr!r r r r r rs rc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚListedToplevelcKs"t |||¡t |¡||_dSr)rr ÚregistryrÚfocused_widget)r ZmasterÚkwr r r r ?s zListedToplevel.__init__cCs&t |¡t |¡tjs"| ¡dSr)r-rrÚdestroyrÚquitrr r r r0Ds  zListedToplevel.destroycCs t ¡dSr)r-r rr r r Úupdate_windowlist_registryLsz)ListedToplevel.update_windowlist_registrycCs| ¡Sr)Zwm_titlerr r r rOszListedToplevel.get_titlecCsLz2| ¡dkr| ¡| ¡| ¡|j ¡Wntk rFYnXdS)NZiconic)Zwm_stateZ wm_withdrawZ wm_deiconifyZtkraiser.Z focus_setrrr r r rSs zListedToplevel.wakeupN)r)r*r+r r0r2rrr r r r r,=s r,Ú__main__)Úmainzidlelib.idle_test.test_windowé)Ú verbosity) Ztkinterrrr#rr-rrr!r,r)Zunittestr4r r r r Ús1#