
    	f                          d Z ddlZddlZddlZddlZddlZddlmc mZ ddl	m
Z
mZ  ej                  d      Z ej                  d      Z G d d      Z G d d	      Zdd
Zedk(  r eej&                  dd        yy)a  
pywxrc -- Python XML resource compiler
          (see http://wiki.wxpython.org/index.cgi/pywxrc for more info)

Usage: python pywxrc.py -h
       python pywxrc.py [-p] [-g] [-e] [-v] [-o filename] xrc input files...

  -h, --help     show help message
  -p, --python   generate python module
  -g, --gettext  output list of translatable strings (may be combined with -p)
  -e, --embed    embed XRC resources in the output file
  -v, --novar    suppress default assignment of variables
  -o, --output   output filename, or - for stdout
    N)print_byte2intz^#!XRCED:begin-block:(\S+)z^#!XRCED:end-block:(\S+)c                   x    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ZdZdZdZdZdZdZdZdZy)PythonTemplatesa1  # This file was automatically generated by pywxrc.
# -*- coding: UTF-8 -*-

import wx
import wx.xrc as xrc

__res = None

def get_resources():
    """ This function provides access to the XML resources in this module."""
    global __res
    if __res is None:
        __init_resources()
    return __res

a  class xrc%(windowName)s(wx.%(windowClass)s):
#!XRCED:begin-block:xrc%(windowName)s.PreCreate
    def PreCreate(self):
        """ This function is called during the class's initialization.

        Override it for custom setup before the window is created usually to
        set additional window styles using SetWindowStyle() and SetExtraStyle().
        """
        pass

#!XRCED:end-block:xrc%(windowName)s.PreCreate

    def __init__(self, parent):
        wx.%(windowClass)s.__init__(self)
        self.PreCreate()
        get_resources().Load%(windowClass)s(self, parent, "%(windowName)s")

        # Define variables for the controls, bind event handlers
at  class %(subclass)s(wx.%(windowClass)s):
    def __init__(self):
        wx.%(windowClass)s.__init__(self)
        self.Bind(wx.EVT_WINDOW_CREATE, self.OnCreate)

#!XRCED:begin-block:%(subclass)s._PostInit
    def _PostInit(self):
        """ This function is called after the subclassed object is created.

        Override it for custom setup before the window is created usually to
        set additional window styles using SetWindowStyle() and SetExtraStyle().
        """
        pass
#!XRCED:end-block:%(subclass)s._PostInit

    def OnCreate(self, evt):
        self.Unbind(wx.EVT_WINDOW_CREATE)
        self._PostInit()
zB        self.%(widgetName)s = xrc.XRCCTRL(self, "%(widgetName)s")
z0        self.%(widgetName)s = self.GetMenuBar()
zZ        self.%(widgetName)s = self.GetMenuBar().FindItemById(xrc.XRCID("%(widgetName)s"))
a          idx = self.GetMenuBar().FindMenu("%(label)s")
        if idx != wx.NOT_FOUND:
            self.%(widgetName)s = self.GetMenuBar().GetMenu(idx)
        else:
            self.%(widgetName)s = self.GetMenuBar().FindItemById(xrc.XRCID("%(widgetName)s")).GetSubMenu()
zM        self.%(widgetName)s = self.FindItemById(xrc.XRCID("%(widgetName)s"))
z        idx = self.FindMenu("%(label)s")
        if idx != wx.NOT_FOUND:
            self.%(widgetName)s = self.GetMenu(idx)
        else:
            self.%(widgetName)s = self.FindItemById(xrc.XRCID("%(widgetName)s")).GetSubMenu()
zZ        self.%(widgetName)s = self.FindItemById(xrc.XRCID("%(widgetName)s")).GetSubMenu()
z0        self.%(widgetName)s = self.GetToolBar()
zV        self.%(widgetName)s = self.GetToolBar().FindById(xrc.XRCID("%(widgetName)s"))
zI        self.%(widgetName)s = self.FindById(xrc.XRCID("%(widgetName)s"))
zH        self.Bind(wx.%(event)s, self.%(eventHandler)s, %(eventObject)s)
z7        self.Bind(wx.%(event)s, self.%(eventHandler)s)
z#!XRCED:begin-block:xrc%(windowName)s.%(eventHandler)s
    def %(eventHandler)s(self, evt):
        # Replace with event handler code
        print("%(eventHandler)s()")
#!XRCED:end-block:xrc%(windowName)s.%(eventHandler)s
a  class xrc%(windowName)s(wx.%(windowClass)s):
    def __init__(self):
        pre = get_resources().LoadMenu("%(windowName)s")

        # This is a copy of Robin's PostCreate voodoo magic in wx.Window that
        # relinks the self object with the menu object.
        self.this = pre.this
        self.thisown = pre.thisown
        pre.thisown = 0
        if hasattr(self, '_setOORInfo'):
            self._setOORInfo(self)

        # Define variables for the menu items
zclass xrc%(windowName)s(wx.%(windowClass)s):
    def __init__(self):
        pre = get_resources().LoadMenuBar("%(windowName)s")
        self.PostCreate(pre)

        # Define variables for the menu items
zclass xrc%(windowName)s(wx.%(windowClass)s):
    def __init__(self, parent):
        pre = get_resources().LoadToolBar(parent, "%(windowName)s")
        self.PostCreate(pre)

        # Define variables for the toolbar items
z# ------------------------ Resource data ----------------------

def __init_resources():
    global __res
    __res = xrc.XmlResource()
z&    __res.Load('%(resourceFilename)s')z*    %(filename)s = b'''\
%(fileData)s'''

z3    wx.FileSystem.AddHandler(wx.MemoryFSHandler())
z\    wx.MemoryFSHandler.AddFile('XRC/%(memoryPath)s/%(filename)s', memoryview(%(filename)s))
zA    __res.Load('memory:XRC/%(memoryPath)s/%(resourceFilename)s')
a  
# ----------------------- Gettext strings ---------------------

def __gettext_strings():
    # This is a dummy function that lists all the strings that are used in
    # the XRC file in the _("a string") format to be recognized by GNU
    # gettext utilities (specifically the xgettext utility) and the
    # mki18n.py script.  For more information see:
    # http://wiki.wxpython.org/index.cgi/Internationalization

    def _(str): pass

%s
N)__name__
__module____qualname__FILE_HEADERCLASS_HEADERSUBCLASS_HEADERCREATE_WIDGET_VARFRAME_MENUBAR_VARFRAME_MENUBAR_MENUITEM_VARFRAME_MENUBAR_MENU_VARMENUBAR_MENUITEM_VARMENUBAR_MENU_VARMENU_MENUITEM_VARMENU_MENU_VARFRAME_TOOLBAR_VARFRAME_TOOLBAR_TOOL_VARTOOLBAR_TOOL_VARBIND_WIDGET_EVENT
BIND_EVENTCREATE_EVENT_HANDLERMENU_CLASS_HEADERMENUBAR_CLASS_HEADERTOOLBAR_CLASS_HEADERINIT_RESOURE_HEADERLOAD_RES_FILEFILE_AS_STRINGPREPARE_MEMFSADD_FILE_TO_MEMFSLOAD_RES_MEMFSGETTEXT_DUMMY_FUNC     1/usr/lib/python3/dist-packages/wx/tools/pywxrc.pyr   r   +   s    K$L*O*"MJ *MNMNr&   r   c                       e Zd Z 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d Zd Zy)XmlResourceCompilerc                 .   i | _         || _        | j                  |      }|| _        g }g }g }	g }
|D ]  }t	        j
                  |      }|j                  | j                  |             |j                  | j                  |             |r| j                  ||      }n| j                  ||      }|	j                  |       |s|
| j                  |j                        z  }
 t        | j                  j                  |       |r-| j!                  dj#                  |            }t        ||       |r-| j!                  dj#                  |            }t        ||       t        | j                  j$                  |       |r!t        | j                  j&                  |       dj#                  |	      }	t        |	|       |rJ|
D cg c]  }d|z  	 }}dj#                  |      }| j                  j(                  |z  }t        ||       y y c c}w )Nfile
z    _("%s"))blocksoutputFilename_OpenOutputFileassignVariablesminidomparseappendGenerateSubclassesGenerateClassesGenerateInitResourcesEmbeddedGenerateInitResourcesFileFindStringsInNode
firstChildr   	templatesr
   ReplaceBlocksjoinr   r!   r$   )self
inputFilesr/   embedResourcesgenerateGetTextr1   
outputFileclasses
subclasses	resourcesgettextStringsinFileresourceDocumentressconversionsconversion_blockconversion_funcs                     r'   MakePythonModulez$XmlResourceCompiler.MakePythonModule  s    ,)).9
.
	 ! 	VF&}}V4d556FGHNN4//0@AB88AQR44V=MNS!$"8"89I9T9T"UU	V 	t~~))
; ++EJJz,BCJ:J/((G)<=G7,t~~11
C4>>//jAJJy)	yz*7EF!>A-FKF$zz+6"nn??BRRO?4 Fs   Hc                     | j                  |      }|D ]b  }t        j                  |      }|j                  }| j	                  |      }|D cg c]  }d|z  	 }}t        dj                  |      |       d yc c}w )zg
        Just output the gettext strings by themselves, with no other
        code generation.
        z_("%s");r-   r+   N)r0   r2   r3   r:   r9   r   r=   )	r>   r?   r/   rB   rG   rH   resourcestringsrJ   s	            r'   MakeGetTextOutputz%XmlResourceCompiler.MakeGetTextOutput>  s|    
 )).9
  	8F&}}V4'22H,,X6G/67!zA~7G7499W%J7	8
 8s   A:c                 b   g }|j                   }|j                  D cg c]=  }|j                  |j                  k(  r"|j                  dk(  r|j                  d      s|? }}|D ]  }|j                  d      }t        j                  dd|      }|j                  d      }|s?|dv r| j                  }	n.|dv r| j                  }	n|d	v r| j                  }	n| j                  }	g }
| |	||||
      z  }|j                  d
       || j                  ||||
      z  } dj                  |      S c c}w )Nobjectsubclassclass^wx name)MenuBar)Menu)ToolBarr-   )r:   
childNodesnodeTypeELEMENT_NODEtagNamegetAttributeresubGenerateMenuBarClassGenerateMenuClassGenerateToolBarClassGenerateWidgetClassr4   GenerateEventHandlersr=   )r>   rH   
outputListrP   e
topWindows	topWindowwindowClass
windowNamegenfuncvarss              r'   r6   z#XmlResourceCompiler.GenerateClassesN  sC   
#..!)!4!4 :Aq~~5!))x:OnnZ8  :
 :
 $ 	_I#009K&&K8K"//7Jxk)33(00+3322D'+z9dKKJd#$44[*iY]^^J'	_* wwz""5:s   AD,c                 R   | j                   ryd}|j                  d      D ]t  }|j                  |u s	 |j                  d      d   }|j                  s4|j                  d   }|j
                  |j                  k(  s]t        |j                        ssd}v |S # t        $ r Y w xY w)NTFXRCED
assign_varr   )	r1   getElementsByTagName
parentNode
IndexErrorr]   r^   	TEXT_NODEbool	nodeValue)r>   widgetrs   nodeelemchs         r'   CheckAssignVarz"XmlResourceCompiler.CheckAssignVarp  s    
//8 		*D&(44\B1ED ??+B{{bll2tBLL7I%)
		*  " s   B	B&%B&c                 
   g }|j                  | j                  j                  t               z         |j	                  d      D ];  }| j                  |      s|j                  d      }t        j                  dd|      }|j                  d      }|dk7  sU|dk7  s[|j                  |       |dk(  r1|j                  | j                  j                  t               z         |dk(  r|j                  D ]/  }	|	j                  |	j                  k(  s|	j                  dk(  s-|	}
 n 
j                  d	   j                  }
|j                  | j                  j                  t               z         0t!        d
|z         |S )NrT   rV   rW   rX   rY   MenuItemr[   labelr   z&Unexpected widgetClass for MenuBar: %s)r4   r;   r   localsrt   r~   ra   rb   rc   r   r]   r^   r_   r`   datar   RuntimeErrorr>   rm   rn   rl   rp   ri   rz   widgetClass
widgetNamerj   r   s              r'   rd   z(XmlResourceCompiler.GenerateMenuBarClass  s[   
 	$..==HI  44X> 	_F&&v. --g6K&&K8K,,V4JRK2$5J'*,%%dnn&I&IFH&TU F*#.. "::7AII<P$%E!" ",,Q/44E%%dnn&E&E&PQ&'OR]']^^#	_& r&   c                 
   g }|j                  | j                  j                  t               z         |j	                  d      D ];  }| j                  |      s|j                  d      }t        j                  dd|      }|j                  d      }|dk7  sU|dk7  s[|j                  |       |dk(  r1|j                  | j                  j                  t               z         |dk(  r|j                  D ]/  }	|	j                  |	j                  k(  s|	j                  dk(  s-|	}
 n 
j                  d	   j                  }
|j                  | j                  j                  t               z         0t!        d
|z         |S )NrT   rV   rW   rX   rY   r   r[   r   r   z#Unexpected widgetClass for Menu: %s)r4   r;   r   r   rt   r~   ra   rb   rc   r   r]   r^   r_   r`   r   r   r   r   s              r'   re   z%XmlResourceCompiler.GenerateMenuClass  sX   
 	$..::VXEF44X> 	\F&&v. --g6K&&K8K,,V4JRK2$5J'*,%%dnn&F&F&QR F*#.. "::7AII<P$%E!" ",,Q/44E%%dnn&B&BVX&MN&'L{'Z[[#	\& r&   c                    g }|j                  | j                  j                  t               z         |j	                  d      D ]  }| j                  |      s|j                  d      }t        j                  dd|      }|j                  d      }|dk7  sT|dk7  sZ|j                  |       |dk(  r1|j                  | j                  j                  t               z         t        d|z         |S )NrT   rV   rW   rX   rY   toolz&Unexpected widgetClass for ToolBar: %s)r4   r;   r   r   rt   r~   ra   rb   rc   r   r   )	r>   rm   rn   rl   rp   ri   rz   r   r   s	            r'   rf   z(XmlResourceCompiler.GenerateToolBarClass  s    
 	$..==HI  44X> 
	_F&&v. --g6K&&K8K,,V4JRK2$5J'&(%%dnn&E&E&PQ&'OR]']^^
	_ r&   c                 8   g }|j                  | j                  j                  t               z         |j	                  d      D ]  }| j                  |      s|j                  d      }t        j                  dd|      }|j                  d      }|dk7  sU|dk7  s[|j                  |       |dk(  r1|j                  | j                  j                  t               z         |dk(  r1|j                  | j                  j                  t               z         |dk(  r|j                  D ]/  }	|	j                  |	j                  k(  s|	j                  d	k(  s-|	}
 n 
j                  d
   j                  }
|j                  | j                  j                   t               z         f|dk(  r2|j                  | j                  j"                  t               z         |dv r|j                  | j                  j$                  t               z          |S )NrT   rV   rW   rX   rY   rZ   r   r[   r   r   r   )unknownnotebookpage	separator	sizeritem)r4   r;   r   r   rt   r~   ra   rb   rc   r   r   r]   r^   r_   r`   r   r   r   r   r   s              r'   rg   z'XmlResourceCompiler.GenerateWidgetClass  s   
 	$..55@A  44X> 	SF&&v. --g6K&&K8K,,V4JRK2$5J')+%%dnn&F&F&QR J.%%dnn&O&ORXRZ&Z[ F*#.. "::7AII<P$%E!" ",,Q/44E%%dnn&K&Kfh&VW !F*%%dnn&K&Kfh&VW $YY%%dnn&F&F&QR5	S8 r&   c                    g }|j                  d      }t               }i }t        j                  j	                  | j
                        d   }|D ]s  }|j                  d      }|s|d |j                  d       }	|	|k7  r1|j                  d      }
||vr|j                  |       |
||<   ]|
||   k7  sft        d|z         u |D ]v  }||   }t        j                  dd|      }t        j                  d	d|      }|j                  | j                  j                  t               z         |j                  d
       x dj!                  |      S )NrT   r   rU   .rV   zApywxrc: error: conflicting base classes for subclass %(subclass)sz^\S+\.rX   rW   r-   )rt   setospathsplitextr/   ra   findaddprintrb   rc   r4   r;   r   r   r=   )r>   rH   ri   objectNodesrD   basesbaseNamer{   rU   moduleklassrm   s               r'   r5   z&XmlResourceCompiler.GenerateSubclasses  sJ   
&;;HEU
77##D$7$78; 	nD((4H!"58==#56X%x))'2:-NN8,&+E(Oh/adllm	n # 	$H/KvviX6H&&K8Kdnn<<vxGHd#	$ wwz""r&   c                 (   g }g }|j                  d      D ]  }	 |j                  d      d   }|j                  d   j                  j	                  d      }	|	D ]n  }
|j
                  |u rXd|
dd  j                         z  }|j                  | j                  j                  t               z         |j                  |       j|j
                  }|j                  d      }t        j                  dd	|      }|j                  d
      }|r|sd }|dk(  rJ|dk7  rE|d d dk(  rdt        j                  dd	|      z  }d|
dd  j                         d|}||v r(d|z  }n"d|
dd  j                         d|}||v rd|z  }|sd|z  }|j                  | j                  j                  t               z         |j                  |       q  |j                  d       |D ]?  }dt               z  }	 |j                  | j                  |          |j                  d       A |j                  d       d	j%                  |      S # t        $ r Y ;w xY w# t         $ r3 |j                  | j                  j"                  t               z         Y w xY w)Nrr   eventsr   |zOn%s   rV   rW   rX   rY   r   rZ      wxzid=wx.%sOn_zself.%szid=xrc.XRCID('%s')r-   z"xrc%(windowName)s.%(eventHandler)s)rt   rv   r]   r   splitru   
capitalizer4   r;   r   r   ra   rb   rc   r   r.   KeyErrorr   r=   )r>   rm   rn   rl   rp   ri   eventHandlersr|   	eventNoder   eventeventHandlerrz   r   r   eventObjectblocks                    r'   rh   z)XmlResourceCompiler.GenerateEventHandlers  s   
 227; 	7D 55h?B	 ))!,1177<F 7??i/#)E!"I,@,@,B#BL%%dnn&?&?&(&JK!((6!__F"("5"5g">K"$&&K"@K!'!4!4V!<J%[("&K"j0[I5M%bq>T1*4rvveR7T*TK49!"I4H4H4JJ'W%-Y=S{49!"I4H4H4JJ'W%-Y=S{&&:Z&G%%dnn&F&F&QR!((6/7	7< 	$) 	$L868CER!!$++e"45 d#	$ 	$wwz""M  B  R!!$.."E"E"PQRs#   I2I	II9JJc                    g }g }t         j                  j                  |      d   }| j                  t         j                  j	                  t         j                  j                  |      d         d         }| j                  t         j                  j                  |      d         }| j                  |j                  ||       |}|j                         }|j                  | j                  j                  t               z         |D ]r  }	| j                  |	      }| j                  t         j                  j                  ||	            }|j                  | j                  j                  t               z         t |g|z   D ]C  }	| j                  |	      }|j                  | j                  j                  t               z         E |j                  | j                  j                  t               z         dj                  |      S )Nr      rX   )r   r   r   GetMemoryFilenamer   ReplaceFilenamesInXRCr:   toxmlr4   r;   r    r   FileToStringr=   r"   r#   )
r>   resourceFilenamerH   ri   filesresourcePath
memoryPathfilenamefileDatafs
             r'   r7   z1XmlResourceCompiler.GenerateInitResourcesEmbeddedG  s   
ww}}%56q9++BGG,<,<RWW]]K[=\]^=_,`ab,cd
11"''--@P2QRS2TU""#3#>#>|T##))+$..77&(BC 	HA--a0H((lA)FGHdnn;;fhFG	H
 ##e+ 	KA--a0Hdnn>>IJ	K 	$..77&(BCwwz""r&   c                     t         j                  j                  |      d   }g }|j                  | j                  j
                  t               z         dj                  |      S )Nr   rX   )r   r   r   r4   r;   r   r   r=   )r>   r   rH   ri   s       r'   r8   z-XmlResourceCompiler.GenerateInitResourcesFiled  sN    77==)9:1=
$..66ABwwz""r&   c                 0    t        j                  dd|      S )Nz[^A-Za-z0-9_]r   )rb   rc   )r>   r   s     r'   r   z%XmlResourceCompiler.GetMemoryFilenamem  s    vv&X66r&   c                    g }t        |d      5 }|j                         }d d d        t              }d}t        |      D ]u  }|||dz    }t	        |      }	|dk(  r|}
d}n|	dk  s
|	dkD  s|dk(  rd|	z  }
n
|d	k(  rd
}
n|}
|dkD  rd}|j                  d       |j                  |
       |t        |
      z  }w dj                  |      j                  d      S # 1 sw Y   xY w)Nrbr   r      
          's   \x%02x   \s   \\F   s   \
r&   zutf-8)openreadlenranger   r4   r=   decode)r>   r   ri   fidbufferfileLenlinelngirJ   ctmps              r'   r   z XmlResourceCompiler.FileToStrings  s    
(D! 	 SXXZF	 f+w 	 Aq1AAEzR1s7a4i 1ne|!!'*c"s3xG%	 ( $,,W553	  	 s   CC!c                    |j                   dk(  ry|j                   dk(  ry|j                   dk(  ry|j                  }|j                  t        j                  k7  rB|j                  d      dk(  r.|j                   dk(  s|j                   dk(  s|j                   d	k(  ry|j                   d
k(  r|j                  d      }|dk(  s|dk(  ryy)z2 Does 'node' contain filename information at all? bitmapTiconurlrV   wxBitmapButtonfocusdisabledselectedrT   wxBitmapwxIconF)nodeNameru   	__class__r2   Documentra   )r>   r{   parentr   s       r'   NodeContainsFilenamez(XmlResourceCompiler.NodeContainsFilename  s     ==H$==F" ==E! w///w'+;;MMW$(CMMZ' ==H$%%g.E
"ex&7r&   c                 &   |y|j                   t        j                  j                  k7  ry| j	                  |      }|j
                  D ]  }|r|j                   t        j                  j                  k(  s'|j                   t        j                  j                  k(  r9|j                  }| j                  |      }||_        ||vr|j                  |       |j                   t        j                  j                  k(  s| j                  |||        y)z Finds all files mentioned in resource file, e.g. <bitmap>filename</bitmap>
        and replaces them with the memory filenames.

        Fills a list of the filenames found.N)r^   r2   r   r_   r   r]   rw   CDATA_SECTION_NODEry   r   r4   r   )r>   r{   r   r   containsFilenamenr   memoryFilenames           r'   r   z)XmlResourceCompiler.ReplaceFilenamesInXRC  s     <==G,,999644T: 	DA w//999w//BBB;;!%!7!7!A,5(LL* zzW--:::**1e\B	Dr&   c                    d }g }||S |j                   D ]E  }|j                  |j                  k(  r|j                  |j                  k(  s|j                  |j                  k(  r|j
                  dk(  s{|j
                  dk(  r ||j                        rZ|j
                  dk(  sK|j
                  dk(  s<|j
                  dk(  s-|j
                  dk(  s|j
                  dk(  s|j
                  d	k(  r>|j                  d
      dk7  r*|j                  | j                  |j                               |j                  |j                  k(  s2|| j                  |      z  }H |S )Nc                 :    	 t        |       }y# t        $ r Y yw xY w)NTF)int
ValueError)str   s     r'   	is_numberz8XmlResourceCompiler.FindStringsInNode.<locals>.is_number  s%    G s    	r   valuehelplonghelptooltiphtmlcodetitleitem	translate0)r]   r^   r_   rw   r   r`   ry   ra   r4   ConvertTextr9   )r>   r   r   rQ   childs        r'   r9   z%XmlResourceCompiler.FindStringsInNode  s/   	 >N&& 	9EF$7$775??2%":":: NNg-^^w.'0'ANNf,NNj0NNi/NNj0NNg-NNf, ''4;NN4#3#3EOO#DE ~~!3!33411%88/	92 r&   c                 ^   d}t        |      }d}t        t        |            D ]  }|rd}||   dk(  r||dz      dk(  r|dz  }d}#|dz  })||   dk(  r|dz  }7||   d	k(  r|d
z  }E||   dk(  r|dz  }S||   dk(  r||dz      dvr|dz  }k|dz  }q||   dk(  r|dz  }|||   z  } |S )a	  
        Encode special characters as escaped C/Python string characters.

            \n => \\n
            \r => \\r
            \t => \\t
            \ => \\
            " => \"

        Returns result as string, which is bytes in py2 or unicode in py3.
        rX   Fr   r   T&r-   z\n	z\tz\r\)r   trz\\"z\")listr   r   )r>   r   st2dtskipNextr   s         r'   r   zXmlResourceCompiler.ConvertText  s     "Xs2w 	A !u|ac7c>3JC#H3JCA$uA$uA$uA$ac7/16MC4KCA#ur!u3	6 
r&   c                    g }d }g }|j                  d      D ]  }|s}t        j                  |      }|rQ|j                         d   | j                  v r2|j                         d   }|j                  | j                  |          m|j                  |dz          t        j                  |      }|s|j                         d   |k7  r"t        d|d|j                         d          d } dj                  |      S )Nr-   r   pywxrc: error: block mismatch:  != rX   )	r   reBeginBlockmatchgroupsr.   r4   
reEndBlockr   r=   )r>   inputoutputr   
blockLineslmos          r'   r<   z!XmlResourceCompiler.ReplaceBlocks*  s    
T" 	!A!''*"))+a.DKK7IIKNEMM$++e"45MM!d(+%%a(yy{1~.5RTR[R[R]^_R`ab E	! wwvr&   c                 n   |dk(  rt         j                  }|S t        j                  j	                  |      rt        |      }d }g }|j                         D ]  }|s/t        j                  |      }|s|j                         d   }|g}4|j                  |       t        j                  |      }|s]|j                         d   |k7  r"t        d|d|j                         d          dj                  |      | j                  |<   d } 	 t        |d      }|S # t        $ r t        d|z        w xY w)N-r   r  r  rX   wtzCan't write output to '%s')sysstdoutr   r   isfiler   	readlinesr  r  r  r4   r	  r   r=   r.   IOError)r>   r/   rB   r   r  r  r  s          r'   r0   z#XmlResourceCompiler._OpenOutputFile@  s0   S J4 / ww~~n-!.1

#--/ )A )//2$&IIKNE*+J"))!,'--a0!yy{1~6 %SXZ\ZcZcZefgZh&i j131DDKK.$(E)M!.$7
   M:^KLLMs   D D4N)FFT)r   r   r	   r   r;   rN   rR   r6   r~   rd   re   rf   rg   r5   rh   r7   r8   r   r   r   r   r9   r   r<   r0   r%   r&   r'   r)   r)      s    !II @E)-75v8 #D :6,#N#@.#d#:#76>@D>%R+`,r&   r)   c                 ~   | st         j                  dd  } d }d}d}d}d}	 t        j                  | ddj	                               \  }} | s/t        t               t        d       t        j                  d       D ]L  \  }}	|dv r$t        t               t        j                  d       |d	v rd}|d
v r|	}|dv rd}|dv rd}|dv sKd}N g }
| D ]  }|
t        j                  |      z  }
 t               }	 |r@|s(t        j                  j                  | d         d   dz   }|j                  |
||||       nH|r|sd}|j!                  |
|       n/t        t               t        d       t        j                  d       |dk7  rt#        d|z  t         j$                         y y # t        j
                  $ rF}t        dt        |      z         t        t               t        j                  d       Y d }~d }~ww xY w# t&        $ r1}t#        dt        |      z  t         j$                         Y d }~y d }~ww xY w)Nr   FTzhpgevo:z'help python gettext embed novar output=z
Error : %s
z No xrc input file was specified.)z-hz--help)z-pz--python)z-oz--output)z-ez--embed)z-vz--novar)z-gz	--gettextr   z_xrc.pyr  z(One or both of -p, -g must be specified.zResources written to %s.r+   z%s.)r  argvgetopt
gnu_getoptr   GetoptErrorr   str__doc__exitglobr)   r   r   r   rN   rR   r   stderrr  )argsr/   r@   rA   r1   generatePythonoptsexcoptvalr?   argcomps                r'   mainr)  d  s0   xx|NNOON&&t'0'P'V'V'XZ
d g01  #S""'NHHQK$$!N$$ N##!N###O%%"O%#, J %diin$
%  DQ!!#!1!1$q'!:1!=	!I!!*n"0/"13 !!$"":~> 'N<=HHQK S ->SZZP !  S)*gx  2us3xcjj112s0   (F& 7B
H &G?9;G::G?	H<'H77H<__main__r   )N)r  r  r   r  r  rb   xml.dom.minidomdomr2   sixr   r   compiler  r	  r   r)   r)  r   r  r%   r&   r'   <module>r/     s   & !     ! !   rzz78RZZ34
N Nd_	 _	NNQ` z!" r&   