1 #---------------------------------------------------------------------------- 
   3 # Purpose:      Abstract Code Editor for pydocview tbat uses the Styled Text Control 
   9 # Copyright:    (c) 2004-2005 ActiveGrid, Inc. 
  10 # License:      wxWindows License 
  11 #---------------------------------------------------------------------------- 
  20 class XmlDocument(CodeEditor
.CodeDocument
): 
  25 class XmlView(CodeEditor
.CodeView
): 
  28     def GetCtrlClass(self
): 
  29         """ Used in split window to instantiate new instances """ 
  33     def GetAutoCompleteHint(self
): 
  34         pos 
= self
.GetCtrl().GetCurrentPos() 
  38         validLetters 
= string
.letters 
+ string
.digits 
+ '_:' 
  44             char 
= chr(self
.GetCtrl().GetCharAt(pos
)) 
  45             if char 
not in validLetters
: 
  52     def GetAutoCompleteDefaultKeywords(self
): 
  56 class XmlService(CodeEditor
.CodeService
): 
  60         CodeEditor
.CodeService
.__init
__(self
) 
  63 class XmlCtrl(CodeEditor
.CodeCtrl
): 
  66     def __init__(self
, parent
, id=-1, style
=wx
.NO_FULL_REPAINT_ON_RESIZE
): 
  67         CodeEditor
.CodeCtrl
.__init
__(self
, parent
, id, style
) 
  68         self
.SetLexer(wx
.stc
.STC_LEX_XML
) 
  69         self
.SetProperty("fold.html", "1") 
  72     def GetMatchingBraces(self
): 
  76     def CanWordWrap(self
): 
  80     def SetViewDefaults(self
): 
  81         CodeEditor
.CodeCtrl
.SetViewDefaults(self
, configPrefix 
= "Xml", hasWordWrap 
= True, hasTabs 
= True) 
  84     def GetFontAndColorFromConfig(self
): 
  85         return CodeEditor
.CodeCtrl
.GetFontAndColorFromConfig(self
, configPrefix 
= "Xml") 
  88     def UpdateStyles(self
): 
  89         CodeEditor
.CodeCtrl
.UpdateStyles(self
) 
  91         if not self
.GetFont(): 
  94         faces 
= { 'font' : self
.GetFont().GetFaceName(), 
  95                   'size' : self
.GetFont().GetPointSize(), 
  96                   'size2': self
.GetFont().GetPointSize() - 2, 
  97                   'color' : "%02x%02x%02x" % (self
.GetFontColor().Red(), self
.GetFontColor().Green(), self
.GetFontColor().Blue()) 
 101         self
.StyleSetSpec(wx
.stc
.STC_H_DEFAULT
, "face:%(font)s,fore:#000000,face:%(font)s,size:%(size)d" % faces
) 
 103         self
.StyleSetSpec(wx
.stc
.STC_H_COMMENT
, "face:%(font)s,fore:#007F00,italic,face:%(font)s,size:%(size)d" % faces
) 
 105         self
.StyleSetSpec(wx
.stc
.STC_H_NUMBER
, "face:%(font)s,fore:#007F7F,size:%(size)d" % faces
) 
 107         self
.StyleSetSpec(wx
.stc
.STC_H_SINGLESTRING
, "face:%(font)s,fore:#7F007F,face:%(font)s,size:%(size)d" % faces
) 
 108         self
.StyleSetSpec(wx
.stc
.STC_H_DOUBLESTRING
, "face:%(font)s,fore:#7F007F,face:%(font)s,size:%(size)d" % faces
) 
 110         self
.StyleSetSpec(wx
.stc
.STC_H_TAG
, "face:%(font)s,fore:#00007F,bold,size:%(size)d" % faces
) 
 112         self
.StyleSetSpec(wx
.stc
.STC_H_ATTRIBUTE
, "face:%(font)s,fore:#00007F,bold,size:%(size)d" % faces
) 
 115 class XmlOptionsPanel(STCTextEditor
.TextOptionsPanel
): 
 117     def __init__(self
, parent
, id): 
 118         STCTextEditor
.TextOptionsPanel
.__init
__(self
, parent
, id, configPrefix 
= "Xml", label 
= "XML", hasWordWrap 
= True, hasTabs 
= True) 
 122         "ag:connectionstring", "ag:datasource", "ag:editorBounds", "ag:label", "ag:name", "ag:shortLabel", "ag:type", 
 123         "element", "fractionDigits", "length", "minOccurs", "name", "objtype", "refer", "schema", "type", "xpath", "xmlns", 
 124         "xs:complexType", "xs:element", "xs:enumeration", "xs:field", "xs:key", "xs:keyref", "xs:schema", "xs:selector" 
 128 #---------------------------------------------------------------------------- 
 129 # Icon Bitmaps - generated by encode_bitmaps.py 
 130 #---------------------------------------------------------------------------- 
 131 from wx 
import ImageFromStream
, BitmapFromImage
 
 137 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ 
 138 \x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\ 
 139 \x00\x01\x1aIDAT8\x8d\xed\x92?N\xc3P\x0c\xc6\x7fv\xf2\x924\xa8E*7\xe1\n\xbd\ 
 140 \x01G\xa8\xd8\x989\x05S/\xd0\x0110\xf4$\xa0J\xdd\x18\x18XY\x82\xa0\xad\xd2\ 
 141 \xfc\xe9{f\x08-\x02\xc1\xd4\x85\x01/\xb6l\xd9\xdf\xf7\xd9\x16\xd1\x88CL\x0f\ 
 142 \xea\xfe\x13\x03\xc4\xae\xcf\x8d\xb6\x84\xba\x84m\x83e\x03\xa8\x96\x88F`\x86\ 
 143 \xf5\x06\xc8\xba\x80\xf4\x08\xda\x1a\xf2cB04q\xcc\xe7\x0bb\xbb\xbf\x85\xd75\ 
 144 \xf2\xb1K\xc9\x12\xa8\x9aO\x84o\x88\xb6\x0bbxx\x04\xc5e\xe0:%\xe5\xd4\xa0j:\ 
 145 \x0f\xd4\x93\x82\xcd\xe9\x19\xf5\xa4\xd8\xd7\x97\xe2\x904\x82D\x89bA\xa5\xad\ 
 146 !\x85\xb0\x82|,\x94S#\x1fw\xb8\xbe?\xc4\x8d.\xf0\xfd\xe1\x9e\x81\x7fk\x91\ 
 147 \xd6\x83\x05\xcc\x0c\xf5\xea\xf0U@\xfb\xec\x9bw\x0c\x00\xe2\xab\xd1\x17\t\ 
 148 \xd9\xcc \x80o\xc1D\x11\xbb<1^\n\xf0\xbf\xacy\x03\xf4~\xc8g0{R\xe2\x9b\xc5\ 
 149 \x8aM\x03\xd4\xe0=\xb8\xb4;\x88\xc6 \nQ\x1e\xe1W\x1e\x89\xc1W\xe0\xb7\xa0=Hr\ 
 150 \xb8{\x0e\xc8\xff+\x1f>\xe0\x1d~\xafr\x13\x04HY"\x00\x00\x00\x00IEND\xaeB`\ 
 155     return BitmapFromImage(getXMLImage()) 
 158     stream 
= cStringIO
.StringIO(getXMLData()) 
 159     return ImageFromStream(stream
) 
 162     return wx
.IconFromBitmap(getXMLBitmap())