
[XMc           @   s  d  Z  d d l Td d l m Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z d d l Z d	 e f d
     YZ d   Z d   Z d e f d     YZ d d# d     YZ d e f d     YZ d   Z d e f d     YZ d e f d     YZ e d k re   Z e e d d d d g  Z e j   xB e d d d  D]. Z e j e  e e d  e d! e d" g  qUWe!   n  d S($   sI   Utilities for building L{PB<twisted.spread.pb>} clients with L{Tkinter}.
i(   t   *(   t   _QueryString(   t   _Dialog(   t   pb(   t   reactor(   t	   copyrightNt   _QueryPasswordc           B   s   e  Z d    Z RS(   c         C   s   t  | d |  j d t } | j d d d d d t  t | d d	 d
 d |  _ |  j j d d d d d t t  |  j r |  j j	 d |  j  |  j j
 d t  n  |  j S(   Nt   textt   justifyt   rowi    t   padxi   t   stickyt   namet   entryt   showR    i   (   t   Labelt   promptt   LEFTt   gridt   Wt   EntryR   t   Et   initialvaluet   insertt   select_ranget   END(   t   selft   mastert   w(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   body   s    #	(   t   __name__t
   __module__R   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR      s   c         K   s   t  t |  | f |  } | j S(   s   get a password from the user

    @param title: the dialog title
    @param prompt: the label text
    @param **kw: see L{SimpleDialog} class

    @returns: a string
    (   t   applyR   t   result(   t   titleR   t   kwt   d(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   askpassword#   s    	c         C   sj   |  j    \ } } x' t |  D] } |  j | d d q Wx' t |  D] } |  j | d d qI Wd  S(   Nt   weighti   (   t	   grid_sizet   ranget   columnconfiguret   rowconfigure(   t   widgett   colst   rowst   i(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   grid_setexpand/   s
    t   CListc           B   s   e  Z d  d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e Z d   Z e Z d   Z e Z d   Z e Z d   Z d   Z RS(   i    c         K   s  t  j |  |  | |  _ g  |  _ | |  _ d | d <x t t |   D] } t |  d | | d t d d d d } | j	 d |  | d	   | j
 d
 | d d d t t t  t t |  f |  } | j
 d
 | d d d t t t t  |  j j |  qH Wt |   |  j d d d |  j d d |  j  |  j d d |  j  |  j d |  j  |  j d |  j  d  |  _ d  S(   Ni    t   exportselectionR   t   anchort   heighti   t   padyt   commandc         S   s   |  j  |  S(   N(   t   setSort(   t   sR.   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   <lambda>?   s    t   columnR	   R   R&   t   binds
   <Button-1>s   <B1-Motion>s   <Up>s   <Down>(   t   Framet   __init__t   labelst   listst   disablesortingR(   t   lent   ButtonR   t   configR   t   NR   R    t   Listboxt   St   appendR/   R*   t   _callallt   Button1R:   t   UpKeyt   DownKeyt   Nonet   sort(   R   t   parentR=   R?   R#   R.   t   bt   box(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR<   7   s&    			
($(
c         O   se   g  } xN |  j  D]C } t | |  } t | | |  } | d  k r | j |  q q W| ra | Sd  S(   N(   R>   t   getattrR    RK   RF   (   R   t   funcnamet   argsR#   t   retst   lt   funct   ret(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRG   L   s      c         C   s@   |  j  | j  } |  j d t  |  j |  |  j |  d S(   Ni    t   break(   t   nearestt   yt   select_clearR   t
   select_sett   activate(   R   t   et   index(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRH   T   s
    c         C   s=   |  j  t  } | r9 |  j d t  |  j | d  n  d S(   Ni    i   RW   (   R^   t   ACTIVERZ   R   R[   (   R   R]   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRI   [   s
    c         C   sM   |  j  t  } | |  j   d k rI |  j d t  |  j | d  n  d S(   Ni   i    RW   (   R^   R_   t   sizeRZ   R   R[   (   R   R]   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRJ   b   s
    c         C   si   |  j  d  k r! | d g |  _  n: |  j  d | k rL |  j  d |  j  d <n | d g |  _  |  j   d  S(   Ni   i    (   RL   RK   t   _sort(   R   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR6   i   s    c         C   s   |  j  r d  S|  j d  k r  d  S|  j \ } } t |  j d t   } | j | | d   |  j d t  x | D] } |  j t |  qt Wd  S(   Ni    c         S   s   | t  |  | | |  S(   N(   t   cmp(   t   xRY   R.   R$   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR8   y   s    (   R?   RL   RK   t   listt   getR   t   deletet   _insert(   R   t   indt   direct   liRT   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRa   r   s    	c         C   s   |  j  d |  d  S(   NR\   (   RG   (   R   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR\   }   s    c         C   s   |  j  d j   S(   Ni    (   R>   t   curselection(   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRk      s    c         G   s   t  |  j d |  d  S(   NRf   (   s   delete(   R    RG   (   R   RR   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRf      s    c         G   s   t  |  j d |  } t |  d k r, | Sg  } xc t t | d   D]K } g  } x/ t t |   D] } | j | | |  qh W| j |  qI W| S(   NRe   i   i    (   s   get(   R    RG   R@   R(   RF   (   R   RR   t   badRV   R.   t   rt   j(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRe      s    c         C   s   |  j  d j |  S(   Ni    (   R>   R^   (   R   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR^      s    c         C   s   |  j  | |  |  j   d  S(   N(   Rg   Ra   (   R   R^   t   items(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR      s    c         C   s<   x5 t  t |   D]! } |  j | j | | |  q Wd  S(   N(   R(   R@   R>   R   (   R   R^   Ro   R.   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRg      s    c         C   s   |  j  d j |  S(   Ni    (   R>   RX   (   R   RY   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRX      s    c         C   s   |  j  d |  d  S(   Nt   see(   RG   (   R   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRp      s    c         C   s   |  j  d j   S(   Ni    (   R>   R`   (   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR`      s    c         C   s   |  j  d |  d  S(   Nt   selection_anchor(   RG   (   R   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRq      s    c         G   s   t  |  j d |  d  S(   Nt   selection_clear(   s   selection_clear(   R    RG   (   R   RR   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRr      s    c         C   s   |  j  d j |  S(   Ni    (   R>   t   select_includes(   R   R^   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   selection_includes   s    c         G   s   t  |  j d |  d  S(   Nt   selection_set(   s   selection_set(   R    RG   (   R   RR   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRu      s    c         G   s/   | s |  j  d j   St |  j d |  d  S(   Ni    t   xview(   s   xview(   R>   Rv   R    RG   (   R   RR   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRv      s     c         G   s/   | s |  j  d j   St |  j d |  d  S(   Ni    t   yview(   s   yview(   R>   Rw   R    RG   (   R   RR   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRw      s     (   R   R   R<   RG   RH   RI   RJ   R6   Ra   R\   Rk   Rf   Re   R^   R   Rg   RX   Rp   R`   Rq   t   select_anchorRr   RZ   Rt   Rs   Ru   R[   Rv   Rw   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR0   6   s6   																						t   ProgressBarc           B   sV   e  Z d d  d d d d d d d d d d	 d
 d d d d  Z d d  Z d   Z RS(   t
   horizontali    id   i   i   t   sunkent   bluet   grayt   yellowt   Verdanat    s   %d%%i   c         C   s^  | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ |	 |  _ | |  _ | |  _	 |
 |  _
 | |  _ | |  _ | |  _ t | d | d | |  _ t |  j d | d | d d d d d |
 |  _ |  j j d d | | d |	 |  _ |  j j |  j j   d	 | d	 d
 | d d d | d |  j |  _ |  j   |  j j d d d d d d  d  S(   Nt   relieft   bdR3   t   widthi    t   highlightthicknesst
   backgroundt   filli   R   R2   t   ct   fontt   sidet   topRc   t   expandt   no(   R   t   orientationt   mint   maxR   R3   t   doLabelt	   fillColort	   labelFontt
   labelColorR   t	   labelTextt   labelFormatt   valueR;   t   framet   Canvast   canvast   create_rectanglet   scalet   create_textt   winfo_reqwidtht   labelt   updatet   pack(   R   R   R   R   R   R   R3   R   t
   appearanceR   R   R   R   R   R   R   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR<      s2    														
c         C   s)   | r | |  _  n  | |  _ |  j   d  S(   N(   R   R   R   (   R   t   newValuet   newMax(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   updateProgress   s    	c         C   s  |  j  } | |  j k r$ |  j } n  | |  j k  r? |  j } n  |  j d k r |  j j |  j d d t |  |  j |  j |  j	  n@ |  j j |  j d |  j	 t |  |  j |  j	 |  j |  j	  |  j j
 |  j d |  j |  j j
 |  j d |  j |  j r| ri| d k r@t t |  t |  j  d  } n d } |  j j
 |  j d |  j | q|  j j
 |  j d d n# |  j j
 |  j d |  j |  j |  j j   d  S(   NRz   i    R   g      Y@R   R   (   R   R   R   R   R   t   coordsR   t   floatR   R3   t
   itemconfigR   R   R   R   t   intR   R   t   update_idletasks(   R   R   t   pvalue(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR      s4    	$	N(   R   R   RK   R<   R   R   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyRy      s   t   DirectoryBrowserc           B   s   e  Z d  Z RS(   t   tk_chooseDirectory(   R   R   R5   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR     s   c          K   s   t  t d |   j   S(   s   Ask for a directory to save to.(    (   R    R   R   (   t   options(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   askdirectory  s    t   GenericLoginc           B   s#   e  Z d    Z d   Z d   Z RS(   c   	      C   s  t  j |   | |  _ t |  d d t j j d d d d d d  i  |  _ d } x | D] } | d  \ } } t |  d	 k r | d } n i  } t |  d | d
 j d d d |  t	 t
 |  f |  } | j d d d |  | j d |  | |  j | <| d } q[ Wt |  d d d |  j j d d d |  t |  d d d |  j j d d d |  |  j d |  j  d  S(   NR   s   Twisted v%sR9   i    R	   t
   columnspani   i   i   s   : t   LoginR5   t   Cancelt   WM_DELETE_WINDOW(   t   ToplevelR<   t   callbackR   R   t   versionR   t   entriesR@   R    R   R   RA   t   doLogint   closet   protocol(	   R   R   t   buttonsR	   t   stuffR   R   t   dictR]   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR<     s&    	/	&++c         C   s   |  j  j   |  j   d  S(   N(   t   tkt   quitt   destroy(   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR   0  s    c         C   s[   i  } x7 |  j  j   D]& } |  j  | j   | t j |  <q W|  j |  |  j   d  S(   N(   R   t   keysRe   t   stringt   lowerR   R   (   R   t   valuest   k(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR   4  s
    $(   R   R   R<   R   R   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR     s   		R   c           B   sJ   e  Z d d  d  d d e j d  Z d   Z d   Z d   Z d   Z	 RS(	   t   guestt	   localhostR   c         C   s  t  j |   t |  d d t j } | |  _ | |  _ t |   |  _ t |  d d |  _	 t |   |  _
 t |   |  _ t |   |  _ |  j j d |  |  j	 j d |  |  j j d |  |  j
 j d |  |  j j d t |   t |  d d }	 t |  d d }
 t |  d d } t |  d d	 } t |  d d
 } t   |  _ |  j j d t j j  t |  d |  j |  _ t |  d d d |  j |  _ | j d d d d d d  d } x |	 |  j g |
 |  j	 g | |  j
 g | |  j g | |  j g g D]L } | d j d d d | d  | d j d d d | d  | d } q	W|  j j d d d d d d  |  j j d d d d d d  |  j d |  j j  d  S(   NR   s   Twisted v%sR   R    i    s	   Username:s	   Password:s   Service:s	   Hostname:s   Port #:s   Protocol PB-%st   textvariables   Log InR5   R9   R	   R   i   i   i   i   R   (   R   R<   R   R   R   t   pbReferenceablet
   pbCallbackR   t   usernamet   passwordt   hostnamet   servicet   portR   t   strt	   StringVart   logvart   setR   t   Brokert   logstatRA   t   logint   okbuttonR   R   R   R   (   R   R   t
   referencedt   initialUsert   initialPasswordt   initialHostnamet   initialServicet   initialPortnot   version_labelt   userlblt   passlblt
   servicelblt   hostlblt   portlblt   zR.   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR<   <  sH    		c         C   s   |  j  j d  d  S(   Ns   Idle.(   R   R   (   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt
   loginReseto  s    c         C   s'   |  j  j |  |  j d |  j  d  S(   Ni0u  (   R   R   t   afterR   (   R   t   txt(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   loginReportr  s    c         C   s   |  j  j   } |  j j   } |  j j   } y t |  } Wn n X|  j j   } |  j j   } t j | | | | | d |  j	 j
 |  j  j |  j  d  S(   Nt   client(   R   Re   R   R   R   R   R   R   t   connectR   t   addCallbackR   t
   addErrbackt   couldNotConnect(   R   t   hostR   R   t   usert   pswd(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR   v  s    c         C   s   |  j  d | j    d  S(   Ns   could not connect:(   R   t   getErrorMessage(   R   t   f(    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR     s    N(
   R   R   RK   R   t   portnoR<   R   R   R   R   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyR   ;  s   ,			t   __main__t   Usernamet   Onlines
   Auto-Logont   Gatewayi    i   i   i   i   i   (    ("   t   __doc__t   Tkintert   tkSimpleDialogR   t   tkFileDialogR   t   twisted.spreadR   t   twisted.internetR   t   twistedR   R   R   R%   R/   R;   R0   Ry   R   R   R   R   R   R   t   Tkt   roott   oR   R(   R.   R   R   t   mainloop(    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/spread/ui/tkutil.pyt   <module>   s.   
		M	!L	
,