
6b)Lc           @   s  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z h	 d e i	 6d e i
 6d e i 6d e i 6d e i 6d e i 6d e i 6d	 e i 6d
 e i 6Z d   Z d   Z d   Z d   Z d d  Z d   Z d e i f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ  d e f d     YZ! d e f d      YZ" d! e  f d"     YZ# d# e# f d$     YZ$ d% e f d&     YZ% d S('   iNi   i   i   i   i   i   i   i   i	   c         C   sO   |  \ } } t  i i   \ } } | | } | | } t  i i | | f  d  S(   N(   t   pygamet   mouset   get_post   set_pos(   t   .0t   dxt   dyt   old_xt   old_yt   xt   y(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt
   move_mouse"   s
    	

c         C   s]   |  o t  i } n
 t  i } t  i i | h d d 6t  i i   d 6 } t  i i |  d  S(   Ni   t   buttont   pos(   R    t   MOUSEBUTTONDOWNt   MOUSEBUTTONUPt   eventt   EventR   R   t   post(   t   downt   typet   click_event(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt
   fake_click(   s
    	,c         C   sp   t  i i t  i h |  d 6d  d 6 } t  i i t  i h |  d 6d  d 6 } t  i i |  t  i i |  d  S(   Nt   keyt   unicode(   R    R   R   t   KEYDOWNt   Nonet   KEYUPR   (   R   t
   down_eventt   up_event(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   fake_key0   s
    &c         C   sV  t  |  i } d  } |  i t i j op | d j o t d  q | d j o t d  q | d j o t d  q | d j o t d  q n | d j o t |  i t i j  nO | d	 j o t i	 } n5 | d
 j o t i
 } n | d j o t i } n | d  j	 o: t i i |  i h | d 6d  d 6 } t i i |  n d  S(   Ni   i    i
   i   ii   i   i   i   i	   i   R   R   (   i    i
   (   ii    (   i
   i    (   i    i(   t   KEYPADR   R   R   R    R   R   R   t	   constantst   XO1_Xt   XO1_Ot
   XO1_SQUARER   R   R   (   R   R   t   new_keyt	   new_event(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   handle_ebook7   s,    &c         C   s   d  } | } x0 | o( t | t  o | } Pn | i } q W| o | i   n |  i   } | o | i   n t t i _	 | S(   N(
   R   t
   isinstancet   Dialogt   parentt
   lost_focust   showt   regained_focust   Truet   topt   needs_redraw(   t   dialogR)   t   parent_dialogt   targett   retval(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   call_dialogR   s     c         C   s%   x | D] } t  i |  |  q Wd  S(   N(   t   bisectt   insort(   t   sorted_listt   itemst   item(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt
   insort_allg   s     R(   c           B   s   e  Z d  Z d Z e i d  Z d d d f Z d d d e	 i
 d  Z d	   Z d
   Z d   Z d   Z d   Z e d  Z d   Z d   Z d   Z d d  Z d   Z d d  Z d   Z d   Z d   Z d   Z RS(   sF   A Dialog is a Widget that has its own event loop and can be faded out.t   _fadedi    ig      ?g?i   g?c         K   s   | i  d d  | i  d d  t t |   i | | | | |  t |  _ t |  _ t |  _ t |  _	 t |  _
 d  |  _ h  |  _ h  |  _ |  i t i |  i d  d  S(   Nt   background_colori    t   bordersi   (   i    i    i    i    (    (   t
   setdefaultt   superR(   t   __init__t   Falset   visiblet   fadedR-   t   is_above_maskt	   self_maskt   needs_remaskR   t   needs_timert   handlerst   key_handlerst   add_handlerR    t   CLICKt   fake_escape(   t   selfR)   R   t   sizet   anchort   kwargs(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@   v   s    "								c         C   s    d  |  _ t |  _ |  i   d  S(   N(   R   t   key_downR-   RC   t
   stop_timer(   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR*      s    		c         C   s.   | i  d j o t t i  t i  n d  S(   Ni   (   R   R   R    t   K_ESCAPER    t   Handled(   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyRL      s    c         C   s!   t  |  _ |  i   |  i   d  S(   N(   RA   RC   t   start_timert
   fake_mouse(   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR,      s    	
c         C   s*   |  i  d j o t d  n
 |  t _ d S(   s*   Makes this dialog be the top-level dialog.s4   Dialogs with parents cannot be the top-level dialog.N(   R)   R   t
   ValueErrorR(   R.   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   make_top   s    
c         C   s   t  t |   i   d S(   s5   Recreates the surfaces that this widget will draw on.N(   R?   R(   t   remake_surfaces(   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyRY      s    c         C   sk   |  i  d  j o% t |  i i t i t   |  _  n |  i  p | o! t i	 i
 t i d t i  n d  S(   Ni  (   RG   R   t   boolRH   t   getR    t   TICKRA   R    t   timet	   set_timert	   USEREVENTt   gt   FPS(   RM   t   force(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyRU      s    %c         C   s   t  i i t  i d  d  S(   Ni    (   R    R]   R^   R_   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyRR      s    c         C   s   |  i    |  i   d  S(   N(   RR   RU   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   reset_timer   s    
c         C   s   d d k  l } t |  _ d |  _ |  i   t i i	   |  i
   |  i o: |  i t i i t i   t i i	   t i i   n x\ t oT t i i	   |   t i i   } |  i |  } | t i j o t |  _ | Sq W|  i   d S(   s3   Shows the dialog and enters an event-handling loop.i(   t
   play_musicN(   t   code.gRd   R-   RB   R   RQ   RU   R(   R.   t   maybe_updateRV   RG   t   handleR    R   R   R_   t   displayt   flipt   waitR    t	   NO_RESULTRA   RR   (   RM   Rd   R   t   result(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR+      s(    		


 	
id   c         C   s)   t  i |  i i | g   | | f  d S(   s:   Adds a handler of the given type, with the given priority.N(   R5   R6   RH   R>   (   RM   R   t   handlert   priority(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyRJ      s    c         C   sP   g  } |  i  i | g   D]" } | d | j o | | q q ~ |  i  | <d S(   s?   Removes all instances of the given handler from the given type.i   N(   RH   R[   (   RM   R   Rm   t   _[1]t   h(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   remove_handler   s     c         C   s)   t  i |  i i | g   | | f  d S(   s=   Adds a key handler to the given key, with the given priority.N(   R5   R6   RI   R>   (   RM   R   Rm   Rn   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   add_key_handler   s    c         C   sP   g  } |  i  i | g   D]" } | d | j o | | q q ~ |  i  | <d S(   s>   Removes all instances of the given handler from the given key.i   N(   RI   R[   (   RM   R   Rm   Ro   Rp   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   remove_key_handler   s     c         C   s  g  } | i  t i j ou t i d t i  t i i t i  |  i	 i
 t i g   } | i d o# t | |  i	 i
 t i g    qnV| i  t i j oy t i i t i  |  i	 i
 t i g   } |  i o@ |  i d 7_ |  i d j o d |  _ |  i |  i  qqn| i  t i t i f j oS|  i	 i
 t i g   } | i  t i j o t | |  i	 i
 t i g    | i o# t | |  i i
 | i g    n t | |  i i
 | i g    |  i | j	 o& | |  _ d |  _ |  i d t  qXnR d
 |  _ |  i   t | |  i	 i
 t i g    t | |  i i
 | i g    t i o# | i t j o d t  f g } qn[| i  t i! j o*| i" d j o8 | i" d j o t i# } n
 t i$ } t% |  t i& Sg  |  i	 i
 t i' g   } t i   } | i( } | i" } |  i) \ } } }	 | | | f |  _) | |	 j os | | d j  ob t* | d | d  t* | d | d  }
 |
 d	 j  o# t | |  i	 i
 t i+ g    qqn | i  t i, j o
 t-  n |  i. | |  S(   s   Sends an event through all the applicable handlers, returning
           constants.NO_RESULT if the event goes unhandled or is handled without
           requesting the dialog to exit.  Otherwise, returns the value provided
           by the handler.g      ?i    i   i   iRb   i   g      ?i
   N(   i   i   (/   R   R    t   MOUSEMOTIONR]   t   sleepR`   Ra   R   t   clearRH   R[   R    t   buttonsR:   t   DRAGR_   R\   RQ   t   repeat_counterRg   R   R   t   KEYR   RI   R   RU   R-   R   Rc   t
   ebook_modeR   R&   R   R   t   K_PAGEUPt
   K_PAGEDOWNR   Rk   RK   R   t
   last_clickt   abst   DOUBLECLICKt   QUITt
   SystemExitt   call_handlers(   RM   R   RH   R   t   whent   whereR   t   old_whent	   old_wheret
   old_buttont   dist(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyRg      sl    	'
	
#			
	
		%
c         C   s0   |  i  i t i g   } |  i | d d d S(   s   Fakes a MOUSEMOTION event.  MOUSEMOTION handlers must be able to
           handle a None event, in order to support this method.R   N(   RH   R[   R    Rt   R   R   (   RM   RH   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyRV   I  s    c         C   sw   xm | D]e \ } } y | |  Wq t  i j
 o Pq t  i j
 o# } | i o | i d Sd  Sq Xq Wt  i S(   Ni    (   R    RT   t
   ExitDialogt   argsRk   (   RM   RH   R   Rn   Rm   t   e(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   O  s     
N(   i    i    (   g      ?g?(   i   g?(   t   __name__t
   __module__t   __doc__R   R.   t   widgett   causes_redrawRC   R~   R    t
   TOP_CENTERR@   R*   RL   R,   RX   RY   RA   RU   RR   Rc   R+   RJ   Rq   Rr   Rs   Rg   RV   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR(   k   s,   												g	t   FocusDialogc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         O   sH   g  |  _  d  |  _ t t |   i | |   |  i t i |  i	 d  d  S(   Ni    (
   t
   focus_listR   t   current_focusR?   R   R@   Rr   R    t   K_TABt   change_focus(   RM   R   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@   e  s    		c         C   s   |  i  i |  d  S(   N(   R   t   append(   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   add_focus_widgetm  s    c         C   s.   y |  i  i |  Wn t j
 o n Xd  S(   N(   R   t   removeRW   (   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   remove_focus_widgetp  s    c         C   s=   |  i  d  j	 o  |  i  | j	 o t |  i  _ n | |  _  d  S(   N(   R   R   RA   t	   has_focus(   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt
   took_focusv  s     c         C   sr  | d  j	 o | i t i j o d  St |  i  d j o t i  nD t |  i  d j o- t |  i d _	 |  i d |  _
 t i  n t t i i   t i @ } |  i
 d  j	 o t |  i
 _	 n |  i
 |  i j o | o
 d } qId } nU |  i i |  i
  } | o | d } n+ | d } | t |  i  j o
 d } n |  i | |  _
 t |  i
 _	 t i  d  S(   Ni    i   i(   R   R   R    R   t   lenR   R    RT   R-   R   R   RZ   R   t   get_modst
   KMOD_SHIFTRA   t   index(   RM   R   t	   backwardsR   t	   old_index(    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   {  s0     



(   R   R   R@   R   R   R   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   d  s
   				t
   NullDialogc           B   s   e  Z d  Z d   Z RS(   sQ   NullDialog, for when you absolutely, positively need to do nothing at
       all.c         C   s   d  S(   N(    (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR+     s    (   R   R   R   R+   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s   t	   TopDialogc           B   s   e  Z d    Z RS(   c         O   sE   t  t |   i | |   d |  _ d |  _ t i |  _ |  i   d  S(   Ni   i    (   i   i   (   i    i    (	   R?   R   R@   RN   R   R    t   TOP_LEFTRO   RX   (   RM   R   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@     s
    		(   R   R   R@   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s   t
   TextDialogc           B   s   e  Z d d e i d  Z RS(   g      ?g?g?c         K   s   | i  d t i  | i  d t i  | i  d d  | i  d t i d  | i  d t i  t t |   i	 | | | | |  d  S(   Nt   valignt   alignt   shrink_factorg)\(?R<   t	   dark_blueR=   (
   R>   R    t   TOPt   LEFTR`   t   colorst   ALLR?   R   R@   (   RM   R)   R   RN   RO   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@     s    (   g      ?g?(   g?g      ?(   R   R   R    R   R@   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s   t   YesNoDialogc           B   sJ   e  Z e i d   Z e i d  Z d   Z d   Z d   Z d   Z	 RS(   t	   _yes_typet   _no_typec      
   O   s  | |  _  | i d d  |  _ | i d d  |  _ | i d t  |  _ | i d t  |  _ t t |   i	 | | |  t
 i |  d d d
 t i d t d t |  _ t
 i |  d d d
 t i d t d t |  _ |  i t i |  i  |  i t i |  i  |  i t i |  i  d  S(   Nt   yes_typet   yest   no_typet   not   invert_entert   invert_escapeggGzg333333ӿRO   t	   exit_codet   defaultg(   ggGz(   g333333ӿg(   ggGz(   g333333ӿg(   R)   t   popR   R   RA   R   R   R?   R   R@   R   t   ExitDialogButtonR    t   BOTTOM_LEFTR-   t
   yes_buttont   BOTTOM_RIGHTt	   no_buttonRr   R    t   K_RETURNt	   on_returnt
   K_KP_ENTERRS   t	   on_escape(   RM   R)   R   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@     s    			c         C   sw   t  t |   i   t i |  i |  i _ t i |  i d |  i _ t i |  i	 |  i
 _ t i |  i	 d |  i
 _ d  S(   Nt   _hotkey(   R?   R   t   rebuildR`   Rw   R   R   t   textt   hotkeyR   R   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s
    c         C   sQ   | o | i  t i j o d  S|  i o |  i i |  n |  i i |  d  S(   N(   R   R    R   R   R   t   activate_with_soundR   (   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s
    
c         C   sQ   | o | i  t i j o d  S|  i o |  i i |  n |  i i |  d  S(   N(   R   R    R   R   R   R   R   (   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s
    
(
   R   R   R   t   causes_rebuildR   R   R@   R   R   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s   			t   MessageDialogc           B   s2   e  Z e i d   Z d   Z d   Z d   Z RS(   t   _ok_typec         K   s   | |  _  | i d d  |  _ t t |   i | |  t i |  d d	 d t i	 |  _
 |  i t i |  i  |  i t i |  i  d  S(
   Nt   ok_typet   okg      gGzg333333ӿgRO   (   g      gGz(   g333333ӿg(   R)   R   R   R?   R   R@   R   R   R    t   BOTTOM_CENTERt	   ok_buttonRr   R    R   R   R   (   RM   R)   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@     s    	c         C   s,   | i  t i j o d  S|  i i |  d  S(   N(   R   R    R   R   R   (   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s     c         C   sG   t  t |   i   t i |  i |  i _ t i |  i d |  i _ d  S(   NR   (	   R?   R   R   R`   Rw   R   R   R   R   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR      s    (   R   R   R   R   R   R@   R   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s   		t   TextEntryDialogc           B   s2   e  Z d d  Z d   Z d   Z d d  Z RS(   g      ?g?c      	   K   s   | i  d d  |  _ t t |   i | d | | d |  _ t i |  d d d t i	 d	 t
 i d |  _ t i |  d d d t
 i d d |  i |  _ |  i t i |  i  |  i t i |  i  |  i t i |  i  d  S(   Nt   default_textt    RN   g      ?i    g      gR=   t	   base_fontg=
ףp=g
ףp=
ǿR   R   t   function(   i    g      (   gg      (   g=
ףp=g      (   g
ףp=
ǿg      (   R   R   R?   R   R@   R   R   t   EditableTextR    R   R`   t   fontt
   text_fieldR   t   FunctionButtonRw   t   return_textR   Rr   R    R   R   RS   t   return_nothing(   RM   R)   RN   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@     s    		c         C   s7   |  i  |  i _ t |  i   |  i _ t t |   i   S(   N(   R   R   R   R   t
   cursor_posR?   R   R+   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR+     s    c         C   s/   | o | i  t i j o d  St i d  d  S(   NR   (   R   R    R   R    R   (   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s    c         C   s5   | o | i  t i j o d  St i |  i i  d  S(   N(   R   R    R   R    R   R   R   (   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   $  s    (   g      ?g?N(   R   R   R@   R+   R   R   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s   		t   ChoiceDialogc           B   sM   e  Z e i d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(   t   _listc         O   s   | |  _  | i d g   |  _ | i d d   |  _ | i d d  | i d d  | i d t i d  t t	 |   i
 | | |  |  i   |  _ |  i t i |  i d	  |  i |  i _ d  |  i _ d  S(
   Nt   listR   R   R   R   t   backR<   Rv   i   (   R)   R   R   R   R   R>   R`   R   R?   R   R@   t   make_listboxt   listboxRJ   R    R   t   handle_double_clickt   return_list_posR   t   exit_code_funcR   R   (   RM   R)   R   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@   +  s    	c         C   s.   |  i  i | i  o |  i i d   n d  S(   N(   R   t   is_overR   R   t	   activatedR   (   RM   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   ;  s    c         C   s   t  i |  d d d t i S(   Ni    ig333333RO   (   i    i    (   ig333333(   R   t   ListboxR    R   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   ?  s    c         C   s
   |  i  i S(   N(   R   t   list_pos(   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   C  s    c         C   s   t  |  i  t j o |  i |  i _ nU t  |  i  t j o2 |  i |  i j o |  i i |  i  |  i _ n d |  i _ t |  i _	 t
 t |   i   S(   Ni    (   R   R   t   intR   R   t   strR   R   R-   t   auto_scrollR?   R   R+   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR+   F  s    )c         C   s&   |  i  |  i _  t t |   i   d  S(   N(   R   R   R?   R   R   (   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   Q  s    (   R   R   R   R   R   R@   R   R   R   R+   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   )  s   					t   ChoiceDescriptionDialogc           B   s;   e  Z e i d   Z d   Z d   Z d   Z d   Z RS(   t	   _key_listc         O   sw   | |  _  | i d d   |  _ | i d d    |  _ t t |   i | | |  t i	 |  d	 d
 d t
 i |  _ d  S(   Nt   key_listt	   desc_funcc         S   s   t  S(    (   R   (   t   paneR   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   <lambda>\  s    ii    gܿg333333RO   (   ii    (   gܿg333333(   R)   R   R   R   R   R?   R   R@   R   t   BorderedWidgetR    t	   TOP_RIGHTt   description_pane(   RM   R)   R   RP   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@   Y  s    	c         C   s%   t  i |  d d d t i d |  i S(   Ni    g(\g333333RO   t   update_func(   i    i    (   g(\g333333(   R   t   UpdateListboxR    R   t   handle_update(   RM   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   e  s    	c         C   s   t  |  i _ |  i i } d | j o t |  i  j  n oa |  i o@ t |  i  t |  i  j p
 t d  |  i |  i i } q |  i |  i i } n d  } |  i	 i
   g  |  i	 _ |  i	 i   |  i |  i	 |  t t |   i   d  S(   Ni    s2   Key list must be at least as long as display list.(   R-   R   t   needs_rebuildR   R   R   R   t   AssertionErrorR   R   t   remove_hookst   childrent	   add_hooksR   R?   R   R   (   RM   R   R   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   j  s    '
"c         C   s   t  |  _ d  S(   N(   R-   R   (   RM   R9   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s    (	   R   R   R   R   R   R@   R   R   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR   V  s
   			t   SimpleMenuDialogc           B   s    e  Z e i d   Z d   Z RS(   t   _widthc   	      O   sO  | i  d  } | i  d d  } t t |   i | |   d |  _ d |  _ t i |  _ t	 |  } d | d } | |  _
 t i |  d |  i
 d	 | f d
 t i d t i d d t i d d t i |  _ d } xv | D]n } | i d  j	 o | i   n |  i | _ | i   d | f | _ |  i
 d f | _ d | _ | d 7} q Wd  S(   NRw   t   widthg?ii    gQ?g{Gz?g      g{Gz?RO   R<   R   t   border_colort   whiteR=   g?i   (   ii(   i    i    (   g      g      (   R   R?   R   R@   RN   R   R    R   RO   R   R   R   R   t
   MID_CENTERR`   R   R   t   button_panelR)   R   R   R   t	   text_size(	   RM   R   RP   Rw   R   t   num_buttonst   heightt   y_posR   (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR@     s2    				 
	(   R   R   R   R   R   R@   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyR     s   (&   R5   R]   R    R    R`   R   R   R   R   t   K_KP1t   K_KP2t   K_KP3t   K_KP4t   K_KP5t   K_KP6t   K_KP7t   K_KP8t   K_KP9R   R   R   R   R&   R   R4   R:   t   TextR(   R   R   R   R   R   R   R   R   R   R   (    (    (    sM   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/graphics/dialog.pyt   <module>   s4   `					;	2"-0