
    "e8
                         d dl mZmZ d dlZ G d d      Z e       Zej                  Zej                  Zej                  Z G d de      Z	e
dk(  rd dlmZ  ed	d
       yy)    )ToplevelTclErrorNc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
WindowListc                      i | _         g | _        y N)dict	callbacksselfs     lib/python3.12/idlelib/window.py__init__zWindowList.__init__   s    	    c                 j    |j                  | j                         || j                  t        |      <   y r   )
after_idlecall_callbacksr	   strr   windows     r   addzWindowList.add   s(    $--.!'		#f+r   c                 p    	 | j                   t        |      = | j                          y # t        $ r Y w xY wr   )r	   r   KeyErrorr   r   s     r   deletezWindowList.delete   s9    			#f+& 	  		s   ) 	55c                     g }| j                   D ]6  }| j                   |   }	 |j                         }|j                  |||f       8 |j	                          |D ]#  \  }}}|j                  ||j                         % y # t        $ r Y }w xY w)N)labelcommand)r	   	get_titler   appendsortadd_commandwakeup)r   menulistkeyr   titles         r   add_windows_to_menuzWindowList.add_windows_to_menu   s    99 	.CYYs^F((* KKV,-	. 			"& 	AE35&--@	A	  s   B	BBc                 :    | j                   j                  |       y r   )r
   r   r   callbacks     r   register_callbackzWindowList.register_callback$   s    h'r   c                 Z    	 | j                   j                  |       y # t        $ r Y y w xY wr   )r
   remove
ValueErrorr(   s     r   unregister_callbackzWindowList.unregister_callback'   s+    	NN!!(+ 		s    	**c                     | j                   D ]
  }	  |         y #  t        j                         \  }}}t        d|d|       Y 8xY w)Nz&warning: callback failed in WindowList:)r
   sysexc_infoprint)r   r)   tvtbs        r   r   zWindowList.call_callbacks-   sJ     	KHK
	KK<<>1b>3Js	   (AN)
__name__
__module____qualname__r   r   r   r&   r*   r.   r    r   r   r   r      s'    (A(Kr   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)ListedToplevelc                 j    t        j                  | ||       t        j                  |        | | _        y r   )r   r   registryr   focused_widget)r   masterkws      r   r   zListedToplevel.__init__?   s(    $+T"r   c                     t         j                  |        t        j                  |        t         j                  s| j                          y y r   )r>   r   r   destroyr	   quitr   s    r   rC   zListedToplevel.destroyD   s3     }}IIK r   c                 ,    t         j                          y r   )r>   r   r   s     r   update_windowlist_registryz)ListedToplevel.update_windowlist_registryL   s    !r   c                 "    | j                         S r   )wm_titler   s    r   r   zListedToplevel.get_titleO   s    }}r   c                     	 | j                         dk(  r | j                          | j                          | j                          | j                  j                          y # t        $ r Y y w xY w)Niconic)wm_statewm_withdrawwm_deiconifytkraiser?   	focus_setr   r   s    r   r!   zListedToplevel.wakeupS   s\    		}}(*  "!!#LLN))+ 	 	s   AA   	A,+A,N)r7   r8   r9   r   rC   rF   r   r!   r:   r   r   r<   r<   =   s    #
"
r   r<   __main__)mainzidlelib.idle_test.test_window   )	verbosity)tkinterr   r   r1   r   r>   r&   r*   r.   r<   r7   unittestrQ   r:   r   r   <module>rV      so    & 
.K .Kb <22 .. 22  X  F z	(A6 r   