B YI~d8 �@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/python37/lib64/python3.7/idlelib/window.py�__init__szWindowList.__init__cCs|�|j�||jt|�<dS)N)Z after_idle�call_callbacksr�str)r�windowrrr �add s zWindowList.addcCs2y|jt|�=Wntk r$YnX|��dS)N)rr �KeyErrorr )rr rrr �deletes zWindowList.deletec Cs�g}xL|jD]B}|j|}y |��}Wntk r<w YnX|�|||f�q W|��x"|D]\}}}|j||jd�q`WdS)N)ZlabelZcommand)r� get_titler�append�sortZ add_command�wakeup)rZmenu�list�keyr �titlerrr �add_windows_to_menus   zWindowList.add_windows_to_menucCs|j�|�dS)N)rr)r�callbackrrr �register_callback$szWindowList.register_callbackcCs*y|j�|�Wntk r$YnXdS)N)r�remove� ValueError)rrrrr �unregister_callback'szWindowList.unregister_callbackc CsHxB|jD]8}y |�Wqt��\}}}td|d|�YqXqWdS)Nz&warning: callback failed in WindowList�:)r�sys�exc_info�print)rr�t�v�tbrrr r -s   zWindowList.call_callbacksN) �__name__� __module__� __qualname__r rrrrrr rrrr rs rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd S) �ListedToplevelcKs"t�|||�t�|�||_dS)N)rr �registryr�focused_widget)rZmaster�kwrrr r ?s zListedToplevel.__init__cCs&t�|�t�|�tjs"|��dS)N)r)rr�destroyr�quit)rrrr r,Ds  zListedToplevel.destroycCs t��dS)N)r)r )rr rrr �update_windowlist_registryLsz)ListedToplevel.update_windowlist_registrycCs|��S)N)Zwm_title)rrrr rOszListedToplevel.get_titlecCsLy2|��dkr|��|��|��|j��Wntk rFYnXdS)NZiconic)Zwm_stateZ wm_withdrawZ wm_deiconifyZtkraiser*Z focus_setr)rrrr rSs zListedToplevel.wakeupN)r%r&r'r r,r.rrrrrr r(=s r(�__main__)�mainzidlelib.idle_test.test_window�)� verbosity) Ztkinterrrrrr)rrrr(r%Zunittestr0rrrr �s1#