ó
|Nc           @   s[   d  d l  Td d d „  ƒ  YZ e ƒ  Z e j Z e j Z e j Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   *t
   WindowListc           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   i  |  _  g  |  _ d  S(   N(   t   dictt	   callbacks(   t   self(    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   __init__   s    	c         C   s'   | j  |  j ƒ | |  j t | ƒ <d  S(   N(   t
   after_idlet   call_callbacksR   t   str(   R   t   window(    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   add	   s    c         C   s6   y |  j  t | ƒ =Wn t k
 r' n X|  j ƒ  d  S(   N(   R   R   t   KeyErrorR   (   R   R	   (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   delete   s
    c         C   s¥   g  } x^ |  j  j ƒ  D]M } |  j  | } y | j ƒ  } Wn t k
 rO q n X| j | | f ƒ q W| j ƒ  x- | D]% \ } } | j d | d | j ƒ qx Wd  S(   Nt   labelt   command(   R   t   keyst	   get_titlet   TclErrort   appendt   sortt   add_commandt   wakeup(   R   t   menut   listt   keyR	   t   title(    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   add_windows_to_menu   s    
c         C   s   |  j  j | ƒ d  S(   N(   R   R   (   R   t   callback(    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   register_callback"   s    c         C   s,   y |  j  j | ƒ Wn t k
 r' n Xd  S(   N(   R   t   removet
   ValueError(   R   R   (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   unregister_callback%   s    c         C   sD   x= |  j  D]2 } y | ƒ  Wq
 d Gt j Gd Gt j GHq
 Xq
 Wd  S(   Ns&   warning: callback failed in WindowListt   :(   R   t   syst   exc_typet	   exc_value(   R   R   (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyR   +   s    (	   t   __name__t
   __module__R   R
   R   R   R   R   R   (    (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyR      s   						t   ListedToplevelc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         K   s-   t  j |  | | ƒ t j |  ƒ |  |  _ d  S(   N(   t   ToplevelR   t   registryR
   t   focused_widget(   R   t   mastert   kw(    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyR   <   s    c         C   s4   t  j |  ƒ t j |  ƒ t  j s0 |  j ƒ  n  d  S(   N(   R(   R   R'   t   destroyR   t   quit(   R   (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyR,   A   s    	c         C   s   t  j ƒ  d  S(   N(   R(   R   (   R   R	   (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   update_windowlist_registryI   s    c         C   s
   |  j  ƒ  S(   N(   t   wm_title(   R   (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyR   L   s    c         C   s\   yD |  j  ƒ  d k r, |  j ƒ  |  j ƒ  n  |  j ƒ  |  j j ƒ  Wn t k
 rW n Xd  S(   Nt   iconic(   t   wm_statet   wm_withdrawt   wm_deiconifyt   tkraiseR)   t	   focus_setR   (   R   (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyR   P   s    

(   R$   R%   R   R,   R.   R   R   (    (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyR&   :   s
   				N(    (   t   TkinterR   R(   R   R   R   R'   R&   (    (    (    s'   C:\RCS\Python\lib\idlelib\WindowList.pyt   <module>   s   
0				