³ò
0ŽGc        	   @   sµ   d  d k  Z  d  d k Z d  d k Z d  d k l Z d  d k Td  d k l Z d e f d „  ƒ  YZ	 d d d „  ƒ  YZ
 d	 e f d
 „  ƒ  YZ d g d „ Z d d „ Z d „  Z d S(   iÿÿÿÿN(   t   Tree(   t   *(   t   ManagedBaset   ArgumentsPropertyc           B   s   e  Z d  „  Z RS(   c         C   sº   d d k  l } |  i o |  i ƒ  } n |  i |  i d ƒ  } | on | i } | d | d ƒ d | d } x, | D]$ } | d | | | d ƒ f ƒ qx W| d | d ƒ n d  S(	   Niÿÿÿÿ(   t   escapei    s       s   <arguments>
i   s   %s<argument>%s</argument>
s   </arguments>
(   t   xml.sax.saxutilsR   t   gettert   ownert   namet   write(   t   selft   outfilet   tabsR   t   valuesR	   t   stabt   value(    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR	      s    	 "(   t   __name__t
   __module__R	   (    (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR      s   t   ArgumentsHandlerc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  g  |  _ g  |  _ d  S(   N(   t   parentt	   argumentst   curr_arg(   R
   R   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt   __init__   s    		c         C   s   d  S(   N(    (   R
   R   t   attrs(    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt
   start_elem$   s    c         C   s{   | d j o1 |  i  |  i _  |  i i d i |  i  ƒ t Sn: | d j o, |  i  i d i |  i ƒ g ƒ g  |  _ n t S(   NR   t   argumentt    (	   R   R   t
   propertiest	   set_valuet   Truet   appendt   joinR   t   False(   R
   R   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt   end_elem'   s    c         C   s   |  i  i | ƒ d  S(   N(   R   R   (   R
   t   data(    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt	   char_data1   s    (   R   R   R   R   R!   R#   (    (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR      s   			
t   CustomWidgetc           B   s\   e  Z e d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(	   c	   
   
   C   s”   t  i |  | | | | | | | | ƒ	 d g d g g |  _ |  i |  i f |  i d <d t i f g }	 t |  d d  |	 d d t
 d ƒ ƒ|  i d <d  S(   Ns   $parents   $idR   t	   Argumentsi   t   label(   R   R   R   t   get_argumentst   set_argumentst   access_functionst   GridPropertyt   STRINGR   t   Nonet   _R   (
   R
   R   t   klassR   t   idt   sizert   post   property_windowt   showt   cols(    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR   8   s    
	c         C   s/   t  i |  | ƒ |  i o |  i i ƒ  n d  S(   N(   R   t	   set_klasst   widgett   Refresh(   R
   R   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR5   D   s    c         C   sH   t  i |  i i |  i d t  i t  i Bƒ|  _ t  i |  i |  i ƒ d  S(   Nt   style(	   t   wxt   WindowR   R6   R/   t   SUNKEN_BORDERt   FULL_REPAINT_ON_RESIZEt	   EVT_PAINTt   on_paint(   R
   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt   create_widgetH   s    c         C   s   t  i |  d |  i ƒd  S(   Nt   sel_marker_parent(   R   t   finish_widget_creationR6   (   R
   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyRA   M   s    c   
      C   sG  t  i |  i ƒ } | i ƒ  | i t  i ƒ | i t  i ƒ | i t  i ƒ | i	 ƒ  |  i i
 ƒ  \ } } | i d d | | ƒ | i | d d | ƒ t d ƒ |  i } | i | ƒ \ } } | | d } | | d }	 | i t  i i t  i d t  i ƒ ƒ | i | d |	 d | d | d ƒ | i | | |	 ƒ | i ƒ  d  S(   Ni    s   Custom Widget: %si   i   (   R9   t   PaintDCR6   t   BeginDrawingt   SetBrusht   WHITE_BRUSHt   SetPent	   BLACK_PENt   SetBackgroundt   Cleart   GetClientSizet   DrawLineR-   R.   t   GetTextExtentt
   ThePenListt   FindOrCreatePent   BLACKt   TRANSPARENTt   DrawRectanglet   DrawTextt
   EndDrawing(
   R
   t   eventt   dct   wt   ht   textt   twt   tht   xt   y(    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR>   P   s"    

%&c            s6  t  i |  ƒ t i |  i d ƒ } t i t i ƒ } |  i d } | i | ƒ | i	 | i
 d t i t i Bd ƒ t i | d t d ƒ ƒ } t d ƒ ‰  ‡  f d †  } t i | d | ƒ | i	 | d t i t i Bt i Bt i Bd ƒ | i t ƒ | i | ƒ | i | ƒ |  i i | d	 ƒ | i d g ƒ d  S(
   NiÿÿÿÿR   i   i   s   Help on "Arguments" propertysm  The 'Arguments' property behaves differently when generating
XRC code wrt C++ or python: you can use it to add custom attributes
to the resource object. To do so, arguments must have the following
format: ATTRIBUTE_NAME: ATTRIBUTE_VALUE
For instance:
    default_value: 10
is translated to:
    <default_value>10</default_value>
Invalid entries are silently ignoredc            s.   t  i ˆ  t d ƒ t  i t  i Bt  i Bƒ d  S(   Ns   Help on "Arguments" property(   R9   t
   MessageBoxR-   t   OKt   CENTREt   ICON_INFORMATION(   RT   (   RX   (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt	   show_helpu   s    i    t   Widget(   R   t   create_propertiesR9   t   ScrolledWindowt   notebookt   BoxSizert   VERTICALR   t   displayt   Addt   panelt   ALLt   EXPANDt   ButtonR-   t
   EVT_BUTTONt   BOTTOMt   LEFTt   RIGHTt   SetAutoLayoutR   t   SetSizert   Fitt   AddPaget   set_col_sizes(   R
   Rj   t   szrt   argst   help_btnRa   (    (   RX   sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyRc   c   s"    #		.c         C   s   |  i  S(   N(   R   (   R
   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR'   €   s    c         C   sL   g  } | D]1 } | g  } | D] } | t  i | ƒ q ~ q ~ |  _ d  S(   N(   t   misct   wxstrR   (   R
   R   t   _[1]t   valt   _[2]t   v(    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR(   ƒ   s    c         C   s+   | d j o t  |  ƒ Sn t i |  | ƒ S(   NR   (   R   R   t   get_property_handler(   R
   R   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR€   †   s    (   R   R   R   R   R5   R?   RA   R>   Rc   R'   R(   R€   (    (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR$   7   s   							i   c   	      C   s  d t  i f d „  ƒ  Y} | ƒ  } | i ƒ  d | d } x6 t i i | ƒ o" | d c d 7<d | d } q= Wt | | i |  t  i ƒ  | | t i	 ƒ } t
 i | ƒ } | | _ | i d ƒ | i d ƒ | i t ƒ t i i | | i | d ƒ | i | i d t  i ƒ d S(   s3       factory function for CustomWidget objects.
    t   Dialogc           B   s    e  Z d  g d „ Z d „  Z RS(   i    c         S   sg  t  d ƒ } t i i |  d  d | ƒ d |  _ | d o d | d d |  _ n | d c d 7<t |  d |  d t  d ƒ ƒ} t i t i ƒ } | i	 | i
 d t i t i Bd	 ƒ | i	 t i |  t i t  d
 ƒ ƒ d t i t i Bd	 ƒ |  i t ƒ |  i | ƒ | i |  ƒ |  i | ƒ d d } |  i ƒ  d | j  o |  i | d f ƒ n |  i ƒ  d  S(   Ns   Select widget classiÿÿÿÿR$   i    s   CustomWidget%si   t   classR&   i   R^   i2   (   R-   R9   R   R   R,   R.   t   TextPropertyRf   Rg   Ri   Rj   Rk   Rl   Rm   t   ID_OKt   ALIGN_CENTERRr   R   Rs   Rt   RL   t   GetSizet   SetSizet   CenterOnScreen(   R
   t   numbert   titlet
   klass_propRw   RV   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR   ’   s"    	$#$c            s"   ‡  f d †  } ‡  f d †  | f S(   Nc            s   |  ˆ  _  d  S(   N(   R.   (   t   c(   R
   (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR5   ¦   s    c              s   ˆ  i  S(    (   R.   (    (   R
   (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt   <lambda>§   s    (    (   R
   R   R5   (    (   R
   sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt   __getitem__¥   s    (   R   R   R   RŽ   (    (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyR   ‘   s   s	   window_%di    i   t   wxEXPANDN(   R9   R   t	   ShowModalt   commont   app_treet   has_nameR$   R.   t   NewIdt   property_panelR    t   Nodet   nodet
   set_optiont   set_flagt   show_widgetR   t   insertt   set_itemR1   Rl   (	   R   R0   R1   R‰   R   t   dialogR   t   winR—   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt   builder   s     	
	c   	      C   s  d d k  l } y |  d } Wn" t j
 o | t d ƒ ‚ n X| p | o | t d ƒ ‚ n t | d | t i ƒ  | | t i t	 ƒ } | i
 | i d | i d | i d	 | i ƒt i | ƒ } | | _ | d j o t i i | | i ƒ n t i i | | i | d
 ƒ | S(   s?       factory to build CustomWidget objects from an xml file
    iÿÿÿÿ(   t   XmlParsingErrorR   s   'name' attribute missings(   sizer or sizeritem object cannot be NoneR$   t   optiont   flagt   borderi   N(   t	   xml_parseR    t   KeyErrorR-   R$   R9   R”   R‘   R•   R   Rœ   R1   R¡   R¢   R£   R    R–   R—   R,   R’   t   addR›   (	   R   R   R0   t	   sizeritemR1   R    R   Rž   R—   (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt   xml_builder½   s    "!
	'c           C   s0   t  t i d <t t i d <t i d d d d ƒS(   so       initialization function for the module: returns a wx.BitmapButton to be
    added to the main palette.
    R$   s   icons/custom.xpmt   tips   Add a custom widget(   RŸ   R‘   t   widgetsR¨   t   widgets_from_xmlt   make_object_button(    (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pyt
   initializeÑ   s    (    (   R9   R‘   Rz   t   treeR    t   widget_propertiest   edit_windowsR   R*   R   R   R$   RŸ   R,   R¨   R­   (    (    (    sY   C:\Python25\Lib\site-packages\_spe\plugins\wxGlade\widgets\custom_widget\custom_widget.pys   <module>   s   
V0