³ò
0ŽGc           @   sd   d  d k  Z  d d d „  ƒ  YZ d „  Z d d d „  ƒ  YZ d d d „  ƒ  YZ d	 „  Z d
 „  Z d S(   iÿÿÿÿNt   ArgumentsCodeHandlerc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   g  |  _  g  |  _ d  S(   N(   t	   argumentst   curr_arg(   t   self(    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt   __init__   s    	c         C   s   d  S(   N(    (   R   t   namet   attrs(    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt
   start_elem   s    c         C   se   | d j o |  i  | i d <t Sn= | d j o/ d i |  i ƒ } |  i  i | ƒ g  |  _ n t S(   NR   t   argumentt    (   R   t
   propertiest   Truet   joinR   t   appendt   False(   R   R   t   code_objt   tab_name(    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt   end_elem   s    c         C   s   |  i  i | ƒ d  S(   N(   R   R   (   R   t   data(    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt	   char_data   s    (   t   __name__t
   __module__R   R   R   R   (    (    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyR    
   s   			
c         C   s´   | i  d ƒ } xž t t |  ƒ ƒ D]Š } |  | d j o | |  | <q" |  | d j o | |  | <q" |  | d j o | d |  | <q" |  | d j o | d |  | <q" q" W|  S(   Nt   ,s   $parents   $ids   $widthi    s   $heighti   (   t   splitt   ranget   len(   R   t   parentt   idt   sizet   vSizet   i(    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt   _fix_arguments"   s     #'t   PythonCodeGeneratorc           B   s   e  Z d  „  Z d „  Z RS(   c   
      C   s  | i  o' | i | i i j o |  i | ƒ Sn t i d } | i } | i | ƒ \ } } | i	 i
 p d | i	 i } n d } g  } | o | i | ƒ n t | i d g  ƒ | | | i d d ƒ i ƒ  ƒ } | i d | i | i d i | ƒ f ƒ | i | ƒ }	 | |	 g  f S(	   Nt   pythons   self.%sR   R   R   s   -1, -1s   self.%s = %s(%s)
s   , (   t   previewt   klasst   parsert   class_namest   get_code_previewt   commont   code_writersR
   t   generate_code_idR   t   is_toplevelR   R   R   t   gett   stripR   t   generate_common_properties(
   R   t   widgett   pygent   propt   id_nameR   R   t   initR   t	   props_buf(    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt   get_code/   s"     	c         C   sº   t  i d } | i i p d | i i } n d } g  } | i } | d | i | f ƒ d | i f d } x" | i ƒ  D] } | | d ƒ q{ W| d | i | i f ƒ | g  g  f S(	   NR!   s   self.%sR   s   self.%s = wx.Window(%s, -1)
s@  def self_%s_on_paint(event):
    widget = self.%s
    dc = wx.PaintDC(widget)
    dc.BeginDrawing()
    dc.SetBrush(wx.WHITE_BRUSH)
    dc.SetPen(wx.BLACK_PEN)
    dc.SetBackground(wx.WHITE_BRUSH)
    dc.Clear()
    w, h = widget.GetClientSize()
    dc.DrawLine(0, 0, w, h)
    dc.DrawLine(w, 0, 0, h)
    text = 'Custom Widget: %s'
    tw, th = dc.GetTextExtent(text)
    x = (w - tw)/2
    y = (h - th)/2
    dc.SetPen(wx.ThePenList.FindOrCreatePen(wx.BLACK, 0, wx.TRANSPARENT))
    dc.DrawRectangle(x-1, y-1, tw+2, th+2)
    dc.DrawText(text, x, y)
    dc.EndDrawing()    
i   s   
s(   wx.EVT_PAINT(self.%s, self_%s_on_paint)
(   R'   R(   R   R*   R   R   t
   splitlines(   R   R.   R/   R   R2   R   t   on_paint_codet   line(    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyR&   E   s    	 (   R   R   R4   R&   (    (    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyR    .   s   	t   CppCodeGeneratorc           B   s   e  Z d  „  Z RS(   c         C   sã   t  i d } | i } | i | ƒ \ } } | o | g } n g  } | i i p d | i i } n d } t | i d g  ƒ | | | i d d ƒ i	 ƒ  ƒ } d | i | i
 d i | ƒ f g }	 | i | ƒ }
 |	 | |
 g  f S(	   Ns   C++s   %st   thisR   R   s   -1, -1s   %s = new %s(%s);
s   , (   R'   R(   R
   R)   R   R*   R   R   R+   R,   R#   R   R-   (   R   R.   t   cppgenR0   R1   R   t   idsR   R   R2   R3   (    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyR4   l   s    	!(   R   R   R4   (    (    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyR8   k   s   c            s9   t  i d ‰ d ˆ i f ‡ ‡  f d †  ƒ  Y} | ˆ  ƒ S(   Nt   XRCt   CustomXrcObjectc              s*   e  Z d  d k l Z ‡ ‡  f d †  Z RS(   iÿÿÿÿ(   t   escapec   
   	      sÐ   ˆ  i  |  _  d |  i j oš |  i d } |  i d =x€ | D]t } y= g  } | i d d ƒ D] } | | i ƒ  qZ ~ \ } } Wn! t j
 o }	 d G|	 GHq: n X| |  i | <q: Wn ˆ i i |  | | ƒ d  S(   NR   t   :i   s
   Exception:(   R#   R
   R   R,   t	   Exceptiont   DefaultXrcObjectt   write(
   R   t   outfilet   ntabst   argst   argt   _[1]t   sR   t   valt   e(   t   objt   xrcgen(    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyRB   †   s    
 =	(   R   R   t   xml.sax.saxutilsR>   RB   (    (   RL   RK   (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyR=   ƒ   s   (   R'   R(   RA   (   RK   R=   (    (   RK   RL   sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt   xrc_code_generator€   s    "c          C   s×   d t  i d <t  i i d ƒ }  |  o* |  i d t ƒ  ƒ |  i d t d ƒ n t  i i d ƒ } | o* | i d t ƒ  ƒ | i d t d ƒ n t  i i d ƒ } | o' | i d t	 ƒ | i d t d ƒ n d  S(   Nt   CustomWidgetR!   R   s   C++R<   (
   R'   R%   R(   R+   t   add_widget_handlerR    t   add_property_handlerR    R8   RN   (   R/   R:   RL   (    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pyt
   initialize™   s     (    (    (    (   R'   R    R   R    R8   RN   RR   (    (    (    sS   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\codegen.pys   <module>   s   	=	