³ò
0ŽGc           @   se   d  d k  Z  d  d k Td d d „  ƒ  YZ d d d „  ƒ  YZ d „  Z d d d	 „  ƒ  YZ d
 „  Z d S(   iÿÿÿÿN(   t   *t   PythonCodeGeneratorc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   g  S(   N(    (   t   selft   obj(    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt   get_properties_code   s    c   	         s   ˆ  i  } t i d ‰ ˆ i ‰ g  } | i ‰ ˆ  i  d } g  ‰ ‡  ‡ ‡ ‡ ‡ ‡ f d †  ‰ ˆ  i o
 d } n d ˆ  i } x• | D] } | i } | i o d | i } n d } ˆ d ˆ d ƒ d	 | ƒ | i o ˆ | | i ƒ n ˆ d
 | | ˆ i	 | i
 ƒ f ƒ q‡ Wˆ | S(   Nt   pythont   menubarc      
      s±  xª| D]¢} | i  d j o ˆ d |  ƒ q n ˆ i d  | i ƒ \ } } ˆ  i p | o% | p | d j o ˆ d ƒ } n | o ˆ i | ƒ n | } | i o† | i  o | i  } n d |  } ˆ d ˆ d ƒ d | ƒ ˆ | | i ƒ ˆ d	 |  | ˆ i | i ƒ | ˆ i | i	 ƒ f ƒ q ˆ d
 ƒ } | i
 d j o ˆ d ƒ } n! | i d j o ˆ d ƒ } n | i  o¯ d | i  } | oE ˆ d | ˆ d ƒ |  | ˆ i | i ƒ ˆ i | i	 ƒ | f ƒ n? ˆ d | ˆ d ƒ |  | ˆ i | i ƒ ˆ i | i	 ƒ f ƒ ˆ d |  | f ƒ q | o9 ˆ d |  | ˆ i | i ƒ ˆ i | i	 ƒ | f ƒ q ˆ d |  | ˆ i | i ƒ ˆ i | i	 ƒ f ƒ q Wd  S(   Ns   ---s   %s.AppendSeparator()
s   -1s	   wxNewId()s   %s_subs   %s = t   wxMenus   ()
s   %s.AppendMenu(%s, %s, %s, %s)
t   wxITEM_NORMALt   1t   wxITEM_CHECKt   wxITEM_RADIOs   self.%ss   %s = %s(%s, %s, %s, %s, %s)
t
   wxMenuItems   %s = %s(%s, %s, %s, %s)
s   %s.AppendItem(%s)
s   %s.Append(%s, %s, %s, %s)
s   %s.Append(%s, %s, %s)
(   t   namet   generate_code_idt   Nonet   idt   previewt   appendt   childrent	   quote_strt   labelt   help_strt	   checkablet   radio(   t   menut   itemst   itemR   t   valR   t	   item_type(   R   t   idst   pygent   append_itemsR   t   cn(    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR       sT     '

	
R   s   self.t   wxglade_tmp_menus   %s = R   s   ()
s   %s.Append(%s, %s)
(   t
   propertiest   commont   code_writersR!   R   t   is_toplevelR   t   rootR   R   R   (	   R   R   t   propt   outt   menust   obj_namet   mR   R   (    (   R   R!   R    R   R   R   sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt   get_init_code   s*    			C 	
!c         C   sŸ   t  i d } | i | i j o | i | i ƒ } n
 | i } d d d | i | f g } | i |  i | ƒ ƒ | i d | i ƒ | i d ƒ | g  g  f S(   sR           function that generates Python code for the menubar of a wxFrame.
        R   s   
s   # Menu Bar
s   self.%s = %s()
s   self.SetMenuBar(self.%s)
s   # Menu Bar end
(	   R$   R%   t   klasst   baseR!   R   t   extendR-   R   (   R   R   R   R.   t   init(    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt   get_codej   s    )		c            s`   t  i d ‰ ˆ i } g  } ‡  ‡ f d †  ‰  x+ | i d D] } | i ˆ  | i ƒ ƒ q< W| S(   NR   c            s½   g  } |  i  o! ˆ i d j o d |  i  } n- ˆ i d  |  i ƒ \ } } | p
 d } n |  i o | i | d |  i f ƒ n |  i o+ x( |  i D] } | i ˆ  | ƒ ƒ q˜ Wn | S(   Ni   i   s   #self.%ss   -1t   EVT_MENU(   i   i   (	   R   t   for_versionR   R   R   t   handlerR   R   R0   (   R   t   retR   R   t   c(   t   do_getR   (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR8      s    


 R   (   R$   R%   R!   R#   R0   R'   (   R   R   R!   R)   R   (    (   R8   R   sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt
   get_eventsz   s    	 (   t   __name__t
   __module__R   R-   R2   R9   (    (    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR      s   		[	t   MenuHandlerc           B   s8   e  Z d  Z d Z d „  Z d	 „  Z d
 „  Z d „  Z RS(   s-   Handler for menus and menu items of a menubarR   R   R   R   R   R   R5   c         C   s1   d |  _  g  |  _ d  |  _ d  |  _ g  |  _ d  S(   Ni    (   t
   menu_depthR*   R   t	   curr_menut	   curr_itemt   attr_val(   R   (    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt   __init__š   s
    				c      	   C   s	  | d j oØ |  i  d 7_  | d } |  i  d j o7 t | d | ƒ } | i |  _ |  i i | ƒ d  Sn | i d d ƒ } | i d d ƒ } t i d | d | d d | d | ƒ } |  i | _ |  i i	 i | ƒ | |  _ n! | d	 j o t i ƒ  |  _
 n d  S(
   NR   i   R   R   t   itemidt    R5   R   R   (   R=   t   MenuTreeR'   R>   R*   R   t   gett   Nodet   parentR   R?   (   R   R   t   attrsR   t   tR   R5   t   node(    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt
   start_elem¡   s"    
	c         C   sÔ   | d j o |  i  | i d <t Sn | d j o3 |  i o) |  i i i |  i ƒ |  i |  i _ nl | d j o" |  i d 8_ |  i i |  _ n= | |  i	 j o, t
 |  i | d i |  i ƒ ƒ g  |  _ n d  S(   NR*   R   R   R   i   RC   (   R*   R#   t   TrueR>   R   R   R?   RG   R=   t
   item_attrst   setattrt   joinR@   (   R   R   t   code_obj(    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt   end_elem´   s    c         C   s   |  i  i | ƒ d  S(   N(   R@   R   (   R   t   data(    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt	   char_dataÂ   s    (   s   labels   ids   names   help_strs	   checkables   radios   handler(   R:   R;   t   __doc__RM   RA   RK   RQ   RS   (    (    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR<   –   s    			c            sO   d d k  l ‰ l ‰  t i d } d | i f ‡  ‡ f d †  ƒ  Y} | |  ƒ S(   sG       function that generates XRC code for the menubar of a wxFrame.
    iÿÿÿÿ(   t   escapet	   quoteattrt   XRCt   MenuBarXrcObjectc              s2   e  Z ‡  ‡ f d  †  Z d „  Z ‡  f d †  Z RS(   c            sä  | i  } | i d j o | d | d ƒ n²| i oL |  i | ƒ } | o  | d | d ˆ  | ƒ ƒ qÍ | d | d ƒ nI |  i | ƒ } | o  | d | d ˆ  | ƒ ƒ n | d | d ƒ | i o9 | i i d d	 ƒ } | d | d
 d ˆ | ƒ ƒ n | i o' | d | d
 d ˆ | i ƒ ƒ n | i o/ x€ | i D] } |  i | | | d
 ƒ qUWnU | i d j o | d | d
 d ƒ n+ | i	 d j o | d | d
 d ƒ n | d | d ƒ d  S(   Ns   ---s       s   <object class="separator"/>
s    <object class="wxMenu" name=%s>
s   <object class="wxMenu">
s$   <object class="wxMenuItem" name=%s>
s   <object class="wxMenuItem">
t   &t   _i   s   <label>%s</label>
s   <help>%s</help>
R	   s   <checkable>1</checkable>
s   <radio>1</radio>
s
   </object>
(
   t   writeR   R   t   get_nameR   t   replaceR   t   append_itemR   R   (   R   R   t   outfilet   tabsR[   R   R   R7   (   RV   RU   (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR^   Ð   s<    	




 c         S   sJ   | i  o | i  i ƒ  Sn | i i d ƒ } | o | d i ƒ  Sn d  S(   Nt   =i    (   R   t   stripR   t   split(   R   R   t   tokens(    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR\   ô   s    c            sy   |  i  i d } | i } | d | d ˆ  |  i ƒ ƒ x( | D]  } |  i | i | | d ƒ q? W| d | d ƒ d  S(   NR   s       s#   <object class="wxMenuBar" name=%s>
i   s
   </object>
(   RP   R#   R[   R   R^   R'   (   R   R_   R`   R*   R[   R,   (   RV   (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR[   ù   s    	 (   R:   R;   R^   R\   R[   (    (   RV   RU   (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyRX   Ï   s   $	(   t   xml.sax.saxutilsRU   RV   R$   R%   t   DefaultXrcObject(   R   t   xrcgenRX   (    (   RV   RU   sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt   xrc_code_generatorÈ   s    "5t   CppCodeGeneratorc           B   s2   e  Z g  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s|   t  i d } | i d } d | i | i f g } | i |  i | ƒ ƒ | i d | i ƒ |  i | ƒ } | | g  g  f S(   sA           generates C++ code for the menubar of a wxFrame.
        s   C++R   s   %s = new %s();
s   SetMenuBar(%s);
(	   R$   R%   R#   R   R.   R0   R   R   t   get_ids_code(   R   R   t   cppgenR*   R1   R   (    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR2   
  s    c   	         sý   t  i d ‰ | i d } g  } | i ‰ ‡  ‡ ‡ f d †  ‰  | i o
 d } n | i d } d } x‘ | D]‰ } | i } | i o | i } n d | } | d 7} ˆ d | ƒ | i o ˆ  | | i ƒ n ˆ d	 | | ˆ i | i	 ƒ f ƒ ql W| S(
   Ns   C++R   c      	      s¨  x¡| D]™} | i  d j o ˆ d |  ƒ q n ˆ i d  | i ƒ \ } } | o | d j o
 d } n | } | i ox | i  o | i  } n d |  } ˆ d | ƒ ˆ  | | i ƒ ˆ d |  | ˆ i | i ƒ | ˆ i | i ƒ f ƒ q d } | i d	 j o
 d
 } n | i	 d	 j o
 d } n | o9 ˆ d |  | ˆ i | i ƒ ˆ i | i ƒ | f ƒ q ˆ d |  | ˆ i | i ƒ ˆ i | i ƒ f ƒ q Wd  S(   Ns   ---s   %s->AppendSeparator();
s   -1s	   wxNewId()s   %s_subs   wxMenu* %s = new wxMenu();
s   %s->Append(%s, %s, %s, %s);
R   R	   R
   R   s   %s->Append(%s, %s, %s);
(
   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (   R    Rk   R   (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR      s:     





RC   s   ->i   s   wxglade_tmp_menu_%ss   wxMenu* %s = new wxMenu();
s   %sAppend(%s, %s);
(
   R$   R%   R#   R   R&   R   R'   R   R   R   (	   R   R   R*   R)   R+   t   iR,   R   R   (    (   R    Rk   R   sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR     s(    	2 	


!c            sk   t  i d ‰ g  ‰ | i d } ‡ ‡  ‡ f d †  ‰  x/ | D]' } | i i o ˆ  | i i ƒ q< q< Wˆ S(   Ns   C++R   c            s‰   x‚ |  D]z } | i  d j o q n ˆ i d  | i ƒ \ } } | i d ƒ d j o ˆ  i | ƒ n | i o ˆ | i ƒ q q Wd  S(   Ns   ---Ra   iÿÿÿÿ(   R   R   R   R   t   findR   R   (   R   R   R   R   (   R   t   collect_idsRk   (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyRn   e  s     
(   R$   R%   R#   R'   R   (   R   R   R*   R,   (    (   Rn   R   Rk   sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyRj   `  s     c            sW   t  i d ‰ g  } ‡  ‡ f d †  ‰  x+ | i d D] } | i ˆ  | i ƒ ƒ q3 W| S(   Ns   C++c            s•   g  } ˆ i  d  |  i ƒ \ } } | p
 d } n |  i o  | i | d |  i d f ƒ n |  i o+ x( |  i D] } | i ˆ  | ƒ ƒ qp Wn | S(   Ns   -1R3   t   wxCommandEvent(   R   R   R   R5   R   R   R0   (   R   R6   R   R   R7   (   R8   Rk   (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR8   „  s    
 

 R   (   R$   R%   R#   R0   R'   (   R   R   R)   R   (    (   R8   Rk   sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyR9   €  s     (   R:   R;   t   constructorR2   R   Rj   R9   (    (    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyRi     s
   		J	 c          C   sÛ   d t  i d <d t  i d <t  i i d ƒ }  |  o' |  i d t ƒ  ƒ |  i d t ƒ n t  i i d ƒ } | o$ | i d t	 ƒ | i d t ƒ n t  i i d ƒ } | o' | i d t
 ƒ  ƒ | i d t ƒ n d  S(   Nt	   wxMenuBart   EditMenuBari   R   R*   RW   s   C++(   R$   t   class_namest	   toplevelsR%   RE   t   add_widget_handlerR   t   add_property_handlerR<   Rh   Ri   (   R   Rg   Rk   (    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pyt
   initialize–  s    (    (    (    (   R$   RD   R   R<   Rh   Ri   Rw   (    (    (    sM   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\menubar\codegen.pys   <module>   s   
‹2	?