³ņ
) 6Dc        	   @   sp  d  Z  d d k Z d d k Z d d k Z d d k Td d k l Z h  d d <d d <d d	 <e e <e d
 <Z h  d d <d d <d d	 <d d <e e <e d
 <Z	 d f  d     YZ
 d f  d     YZ d e i f d     YZ d e i f d     YZ d e i f d     YZ d d d d f d  Z d d d d f d  Z d d d d f d  Z d S(   s   a html renderer
i’’’’N(   t   *(   t   guit   lefti   t   righti    t   centert    t   topt   bottomt   middlet   _dummyc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s   ../pgu/html.pyR	      s   t   _flushc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s1   t    |  _ d  |  i _ d  |  i _ d  |  _ d  S(   N(   R	   t   stylet   Nonet   fontt   colort   cls(   t   self(    (    s   ../pgu/html.pyt   __init__   s    c         C   s   d  S(   N(    (   R   t   w(    (    s   ../pgu/html.pyt   add   s    c         C   s   d  S(   N(    (   R   t   v(    (    s   ../pgu/html.pyt   space   s    (   R
   R   R   R   R   (    (    (    s   ../pgu/html.pyR      s   		t   _hrc           B   s    e  Z d    Z d d d  Z RS(   c         K   s   t  i i |  d |  d  S(   Ni    (   i    i    i    (   R   t   ColorR   (   R   t   params(    (    s   ../pgu/html.pyR      s    c         C   s   |  i  i |  i  i } } | d  j o t | |  } n | d  j o t | |  } n t | d  } t | d  } | | f S(   Ni   (   R   t   widtht   heightR   t   max(   R   R   R   R   t   h(    (    s   ../pgu/html.pyt   resize   s      N(   R
   R   R   R   R   (    (    (    s   ../pgu/html.pyR      s   	t   _htmlc           B   sf  e  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 d   Z d   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& d&   Z' d'   Z( d(   Z) d)   Z* d*   Z+ d+   Z, d,   Z- d-   Z. d.   Z/ d/   Z0 d0   Z1 d1   Z2 d2   Z3 d3   Z4 d4   Z5 d5   Z6 d6   Z7 d7   Z8 d8   Z9 d9   Z: d:   Z; d;   Z< d<   Z= d=   Z> d>   Z? d?   Z@ d@   ZA dA   ZB dB   ZC dC   ZD RS(D   c         C   sd   g  |  _  | |  _ |  i d |  i  | |  _ |  _ | |  _ |  _ d  |  _ | |  _	 | |  _
 d  S(   Nt   document(   t   mystackR!   t   myopent   myfontR   t   mycolorR   R   t   formt   _globalst   _locals(   R   t   docR   R   R'   R(   (    (    s   ../pgu/html.pyt   init0   s    				c         C   s   |  i  i | | f  | | |  _ |  _ |  i i i |  _ |  i i i |  _ |  i p |  i |  _ n |  i p |  i |  _ n d  S(   N(	   R"   t   appendt   typet   itemR   R   R   R$   R%   (   R   t   type_R   (    (    s   ../pgu/html.pyR#   =   s    c         C   sc   d  } |  i   x' | | j o |  i i   \ } } q W|  i i   \ } } |  i | |  d  S(   N(   R   t   mydoneR"   t   popR#   (   R   R.   t   tR   (    (    s   ../pgu/html.pyt   mycloseH   s    
c         C   sn   t  |  t j o | g } n |  i   d  } x' | | j o |  i i   \ } } q3 W|  i | |  d  S(   N(   R,   t   strR/   R   R"   R0   R#   (   R   R.   R1   R   (    (    s   ../pgu/html.pyt   mybackQ   s     
c         C   s}   t  |  i d  p d  Sn t |  i i i  d j o d  Sn |  i i i d } t |  t j o |  i i i d =n d  S(   Nt   layouti    i’’’’(   t   hasattrR-   t   lenR5   t   _widgetsR,   t   tuple(   R   R   (    (    s   ../pgu/html.pyR/   [   s
    $c         C   s   |  i  i d  d  S(   Ni   (   R   t   set_bold(   R   t   attrs(    (    s   ../pgu/html.pyt   start_bd   s    c         C   s   |  i  i d  d  S(   Ni    (   R   R:   (   R   (    (    s   ../pgu/html.pyt   end_be   s    c         C   s   |  i  i d  d  S(   Ni   (   R   t
   set_italic(   R   R;   (    (    s   ../pgu/html.pyt   start_if   s    c         C   s   |  i  i d  d  S(   Ni    (   R   R>   (   R   (    (    s   ../pgu/html.pyt   end_ig   s    c         C   s   |  i  i d  d  S(   Ni   (   R   t   set_underline(   R   R;   (    (    s   ../pgu/html.pyt   start_uh   s    c         C   s   |  i  i d  d  S(   Ni    (   R   RA   (   R   (    (    s   ../pgu/html.pyt   end_ui   s    c         C   s   |  i  |  d  S(   N(   t   do_br(   R   R;   (    (    s   ../pgu/html.pyt   start_brj   s    c         C   s$   |  i  i |  i i d  d  d  S(   Nt    i   (   R-   t   brR   t   size(   R   R;   (    (    s   ../pgu/html.pyRD   k   s    c         C   s1   d  } h  } x | D] \ } } | | | <q W| S(   N(   R   (   R   R;   t   kt   rR   (    (    s   ../pgu/html.pyt   attrs_to_mapl   s
     c      	   C   s}  t  i d  } h  h  d <} | d } d | j o t i | d  | d <n d | j o t i i | d  | d <n d | j o t | d  | d <n xT d d d d	 d
 d d g D]7 } | | j o$ t | i d | |   | | <q¼ q¼ Wx3 d d g D]% } | | j o | | | | <qqWd | j o | d | d <n d | j o t | d | d <n d | j o t	 | d | d <n d | j oŚ x× | d i
 d  D]¾ } d | j o« | i
 d  \ } } | i d d  } | i d d  } | i d d  } | d j p | d j p | d j o t i |  } n t | i d |   } | | | <q³q³Wn | S(   Ns   \DR   t   bgcolort
   backgroundt   borderR   R   t   colspant   rowspanRH   t   minR   R   t   namet   valuet   classR   t   alignt   valignt   ;t   :t   -t   _RF   R   t   border_color(   t   ret   compilet   pygameR   t   imaget   loadt   intt   subt   _amapt   _vamapt   splitt   replace(   R   RJ   t   anumR   R   RI   t   stR   (    (    s   ../pgu/html.pyt   map_to_paramsr   s<    
(+% 5 # 'c         C   sd   x] d t  i f d t  i f g D]= \ } } | | j o$ | i | |  i | | | f  q q Wd  S(   Nt   onclickt   onchange(   R   t   CLICKt   CHANGEt   connectt   myexec(   R   t   eRJ   RI   t   evt(    (    s   ../pgu/html.pyt   map_to_connects   s     c         C   sC   |  i  |  } | i d d  } |  i   |  i i t |  d  S(   NRU   R   (   RK   t   gett   check_pR-   t   blockRc   (   R   R;   RJ   RU   (    (    s   ../pgu/html.pyt   start_p    s    
c         C   s   t  |  i i i  d j o d  Sn t |  i i i d  t j o2 |  i i i d \ } } | d j o d  Sqv n |  i d   d  S(   Ni    i’’’’(   R7   R-   R5   R8   R,   R9   RD   R   (   R   R   R   (    (    s   ../pgu/html.pyRt   §   s
    $ c         C   s   |  i    d  S(   N(   Rt   (   R   (    (    s   ../pgu/html.pyt   end_p®   s    i’’’’c         C   s­   |  i  |  } |  i |  } d | j o | d | d | d <n | | d <t i |   } d | j o | d } n |  i i |  |  i i |  |  i | |  d  S(   NR   t   .RU   (   RK   Ri   R   t   DocumentR-   Ru   R   R#   (   R   R1   R;   RU   RJ   R   t   b(    (    s   ../pgu/html.pyt   start_block³   s    '
c         C   s!   |  i  |  |  i i d  d  S(   Ni’’’’(   R2   R-   Ru   (   R   R1   (    (    s   ../pgu/html.pyt	   end_blockĮ   s    c         C   s   |  i  d |  d  S(   Nt   div(   R{   (   R   R;   (    (    s   ../pgu/html.pyt	   start_divÅ   s    c         C   s   |  i  d  d  S(   NR}   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_divĘ   s    c         C   s   |  i  d | d  d  S(   NR}   i    (   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_centerĒ   s    c         C   s   |  i  d  d  S(   NR}   (   R|   (   R   (    (    s   ../pgu/html.pyt
   end_centerČ   s    c         C   s   |  i  d |  d  S(   Nt   h1(   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_h1Ź   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_h1Ė   s    c         C   s   |  i  d |  d  S(   Nt   h2(   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_h2Ģ   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_h2Ķ   s    c         C   s   |  i  d |  d  S(   Nt   h3(   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_h3Ī   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_h3Ļ   s    c         C   s   |  i  d |  d  S(   Nt   h4(   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_h4Š   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_h4Ń   s    c         C   s   |  i  d |  d  S(   Nt   h5(   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_h5Ņ   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_h5Ó   s    c         C   s   |  i  d |  d  S(   Nt   h6(   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_h6Ō   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_h6Õ   s    c         C   s   |  i  d |  d  S(   Nt   ul(   R{   (   R   R;   (    (    s   ../pgu/html.pyt   start_ul×   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_ulŲ   s    c         C   s    |  i  d |  d |  i _ d  S(   Nt   oli    (   R{   R-   t   counter(   R   R;   (    (    s   ../pgu/html.pyt   start_olŁ   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_olÜ   s    c         C   st   |  i  d d g  |  i } |  i d |  t | d  o' | i d 7_ |  i d | i  n |  i d  d  S(   NR   R   t   liR   i   s   %d. s   - (   R4   R-   R{   R6   R   t   handle_data(   R   R;   t   cur(    (    s   ../pgu/html.pyt   start_liŻ   s    	c         C   s   |  i  d |  d  S(   Nt   pre(   R{   (   R   R;   (    (    s   ../pgu/html.pyt	   start_preč   s    c         C   s   |  i  d  d  S(   NR   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_preé   s    c         C   s   |  i  d |  d  S(   Nt   code(   R{   (   R   R;   (    (    s   ../pgu/html.pyt
   start_codeź   s    c         C   s   |  i  d  d  S(   NR¢   (   R|   (   R   (    (    s   ../pgu/html.pyt   end_codeė   s    c         C   sw   |  i  |  } |  i |  } | i d d  } |  i i t |  t i |   } |  i i |  |  i	 d |  d  S(   NRU   R   t   table(
   RK   Ri   Rs   R-   Ru   Rc   R   t   TableR   R#   (   R   R;   RJ   R   RU   R1   (    (    s   ../pgu/html.pyt   start_tableķ   s    c         C   s   |  i  d  |  i i   d  S(   NR„   (   R4   R-   t   tr(   R   R;   (    (    s   ../pgu/html.pyt   start_trł   s    c         C   s¹   |  i  |  } |  i |  } d | j o | d | d | d <n | | d <t i d |  } |  i d  |  i i | |  |  i | |  |  i i i	 |  _	 |  i i i
 |  _
 d  S(   NR   Rx   R„   (   RK   Ri   R   Ry   R4   R-   t   tdR#   R   R   R   (   R   R1   R;   RJ   R   Rz   (    (    s   ../pgu/html.pyt	   _start_tdż   s    '
c         C   s   |  i  d |  d  S(   NRŖ   (   R«   (   R   R;   (    (    s   ../pgu/html.pyt   start_td  s    c         C   s   |  i  d |  d  S(   Nt   th(   R«   (   R   R;   (    (    s   ../pgu/html.pyt   start_th  s    c         C   s!   |  i  d  |  i i d  d  S(   NR„   i’’’’(   R2   R-   Ru   (   R   (    (    s   ../pgu/html.pyt	   end_table  s    c         C   sH   |  i  |  } t i   } |  _ h  | _ | |  i | i d d   <d  S(   Nt   id(   RK   R   t   FormR&   t   groupsR(   Rs   R   (   R   R;   RJ   Rp   (    (    s   ../pgu/html.pyt
   start_form  s    	c            s  |  i  |  } |  i |  } | i d d  | i d d   | i d d   } } } |  i } | d j o3 t i |     |  i   |  |  i i	    nJ| d j o | | i
 j o t i d |  | i
 | <n | i
 | } | d =t i d | |    |  i   |  |  i i	    d | j o | | _ qčn©| d j o | | i
 j o t i d |  | i
 | <n | i
 | } | d =t i d | |    |  i   |  |  i i	    d | j o | | _ qčn| d	 j o3 t i |     |  i   |  |  i i	    nČ | d
 j o3 t i |     |  i   |  |  i i	    n | d j oz t i |     |  i   |  |  i i	    t i d d  }	 |  i i	 |	    f d   }
 |	 i t i |
 d   n   |  i | i d d   <d  S(   NR,   t   textRR   RS   t   radiot   groupt   checkedt   checkboxt   buttont   submitt   files	   Browse...c            s9   t  i   } | i t  i t  i |   f  | i   d  S(   N(   R   t
   FileDialogRn   Rm   t   action_setvaluet   open(   RS   t   d(   Rp   (    s   ../pgu/html.pyt   _browseH  s    R°   (   RK   Ri   Rs   R   R&   R   t   InputRr   R-   R   R²   t   Groupt   RadioRS   t   Checkboxt   ButtonRn   Rl   R(   (   R   R;   RJ   R   R.   RR   RS   t   ft   gRz   RĄ   (    (   Rp   s   ../pgu/html.pyt   start_input  sV    8	c         B   sq   |  i  |  } |  i |  } d | d } | d  U|  i e |  |  i i e  e |  i | i d d   <d  S(   Ns   e = %s(**params)R,   R°   (	   RK   Ri   Rr   Rp   R-   R   R(   Rs   R   (   R   R;   RJ   R   R¢   (    (    s   ../pgu/html.pyt   start_objectP  s    c         C   s   |  i  |  } h  } | i d d   | i d d   } } t i d | d | |  } |  i | |  |  i i |  |  i d |  d  S(   NRR   RS   t   select(	   RK   Rs   R   R   t   SelectRr   R-   R   R#   (   R   R;   RJ   R   RR   RS   Rp   (    (    s   ../pgu/html.pyt   start_select^  s    %c         C   sg   |  i  |  } h  } |  i d  t i |   } |  i i | d | i d d   |  i d |  d  S(   NRŹ   RS   t   option(	   RK   R4   R   Ry   R-   R   Rs   R   R#   (   R   R;   RJ   R   Rp   (    (    s   ../pgu/html.pyt   start_optionh  s    "c         C   s   |  i  d  d  S(   NRŹ   (   R2   (   R   (    (    s   ../pgu/html.pyt
   end_selectr  s    c         C   s   |  i  |  d  S(   N(   t   do_hr(   R   R;   (    (    s   ../pgu/html.pyt   start_hru  s    c         C   s   |  i  i d  d d } |  i |  } |  i |  } | | d d <| GH|  i i d  |  i i t |    |  i i d  d  S(   NRF   i   i   R   t   paddingi    i’’’’(   R   RH   RK   Ri   R-   Ru   R   R   (   R   R;   R   RJ   R   (    (    s   ../pgu/html.pyRŠ   w  s    c         C   s   d  S(   N(    (   R   t   hrefRR   R.   (    (    s   ../pgu/html.pyt   anchor_begin  s    c         C   s   d  S(   N(    (   R   (    (    s   ../pgu/html.pyt
   anchor_end  s    c         C   s   |  i  d t    d  S(   Nt   title(   R#   R   (   R   R;   (    (    s   ../pgu/html.pyt   start_title  s    c         C   s   |  i  d  d  S(   NRÖ   (   R2   (   R   (    (    s   ../pgu/html.pyt	   end_title  s    c         B   s=   | \ } } |  i  } |  i } | | d <| | | f d  Ud  S(   NR   (   R'   R(   (   R   RS   R   R¢   RĒ   t   l(    (    s   ../pgu/html.pyRo     s
    		
c         C   sn   yW t  i t i i |   } | d j o |  i i | t |  n |  i i |  Wn d | GHn Xd  S(   NR   s   handle_image: missing %s(   R   t   ImageR^   R_   R`   R-   R   Rc   (   R   t   srct   altt   ismapRU   R   R   R   (    (    s   ../pgu/html.pyt   handle_image  s    c         C   s  |  i  d j o d  Sn± |  i  d j o  | i d d  } | i d  } | d d j o | d =n xX | D]P } |  i i | d	 |  i  } t i |  } |  i i	 |  |  i i
 d  ql Wd  Sn t i d
  i d |  } t i d  i d |  } t i d  i d |  } | d j o d  Sn t i d  i d |  } | d j o d  Sn | d j o$ |  i i |  i i d   d  Sn x | i d  D]n } | i t d  d  } t i |  i i | d	 |  i   } |  i i	 |  |  i i |  i i d   qWd  S(   NR„   R   R¢   s   	s           s   
i’’’’R   i   s   ^[	
]+s   [	
]+$s   [	
]+s   \s+RF   i    (   s   pres   code(   R,   Rf   Re   R   t   renderR   R   RŚ   R-   R   Ru   R\   R]   Rb   R   RH   t   chr(   R   t   txtt   sst   sentencet   imgR   t   tstt   word(    (    s   ../pgu/html.pyR     s6      $(E   R
   R   R*   R#   R2   R4   R/   R<   R=   R?   R@   RB   RC   RE   RD   RK   Ri   Rr   Rv   Rt   Rw   R{   R|   R~   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R”   R£   R¤   R§   R©   R«   R¬   R®   RÆ   R³   RČ   RÉ   RĢ   RĪ   RĻ   RŃ   RŠ   RŌ   RÕ   R×   RŲ   Ro   RŽ   R   (    (    (    s   ../pgu/html.pyR    /   s   					
												'																																						4		
	
									
t   HTMLc           B   s&   e  Z d  Z d d d  Z d   Z RS(   s=  a gui HTML object
    
    <pre>HTML(data,globals=None,locals=None)</pre>
        
    <dl>    
    <dt>data <dd>html data
    <dt>globals <dd>global variables (for scripting)
    <dt>locals <dd>local variables (for scripting)
    </dl>
    
    <p>you may access html elements that have an id via widget[id]</p>
    c         K   s¼   t  i i |  |  | | } } | d  j o
 h  } n | d  j o
 h  } n | |  _ | |  _ t t i d  } | i	 |  |  i
 i |  i
 i | |  | i |  | i   | i   d  S(   Ni    (   R   Ry   R   R   R'   R(   R    t   htmllibt   AS_ISR*   R   R   R   t   feedt   closeR/   (   R   t   datat   globalst   localsR   R'   R(   t   p(    (    s   ../pgu/html.pyR   Ģ  s    		%
c         C   s   |  i  | S(   N(   R(   (   R   RI   (    (    s   ../pgu/html.pyt   __getitem__Ž  s    N(   R
   R   t   __doc__R   R   Rš   (    (    (    s   ../pgu/html.pyRē   æ  s   c         C   s   |  | | | | | f \ } } } }	 }
 } t  | d | d |
 } | i d | i  t i | i i | i i f t t Bd  } | i	 |  | i
 |  | S(   s[   render some html
    
    <pre>render(font,rect,text,aa,color,bgcolor=(0,0,0,0))</pre>
    R   R   R   i    (   Rē   R   R   R^   t   Surfacet   rectR   t	   SWSURFACEt   SRCALPHAt   fillt   paint(   R   Ró   R“   t   aaR   RL   t   fntRJ   Rį   t   at   fgt   bgRp   t   s(    (    s   ../pgu/html.pyRß   į  s    *+c         C   sw  |  | | | | | f \ } } } }	 }
 } t  | d | d |
 } | i d | i  t i | i i | i i f t t Bd  } | i	 |  | i
 |  d \ } } } } x | i i D] } | i i | i i | i i | i i f \ } } } } t | |  } t | |  } | | | | } } t | |  } t | |  } q¹ Wt i | | | | | |  } | i |  S(   sz   render html, and make sure to trim the size
    
    <pre>rendertrim(font,rect,text,aa,color,bgcolor=(0,0,0,0))</pre>
    R   R   R   i    i   i ü’’(   i   i   i ü’’i ü’’(   Rē   R   R   R^   Rņ   Ró   R   Rō   Rõ   Rö   R÷   R5   t   widgetst   xt   yRQ   R   t   Rectt
   subsurface(   R   Ró   R“   Rų   R   RL   Rł   RJ   Rį   Rś   Rū   Rü   R   Rż   t   minxt   minyt   maxxt   maxyRp   R’   R   R   (    (    s   ../pgu/html.pyt
   rendertrimš  s"    *+ 6 c         C   sc   | | | | | f \ } } } }	 }
 t  |  } | i d | i  |  i |  }  | i |   d S(   s[   write html to a surface
    
    <pre>write(s,font,rect,text,aa=0,color=(0,0,0))</pre>
    R   N(   Rē   R   R   R  R÷   (   Rż   R   Ró   R“   Rų   R   Rł   RJ   Rį   Rś   Rū   Rp   (    (    s   ../pgu/html.pyt   write  s
    $(   Rń   Rč   R\   R^   t   pygame.localst   pguR   R   Rc   Rd   R	   R   R   R   t
   HTMLParserR    Ry   Rē   Rß   R  R  (    (    (    s   ../pgu/html.pys   <module>   s    
3<	’ "