]
for flag,text in table:
if flag & modType:
st = st + text + " "
if not st:
st =
'UNKNOWN'
return st
#-------------------------------------------------------------------
---
_USE_PANEL = 1
def runTest(frame, nb, log):
if not
_USE_PANEL:
ed = p = MySTC(nb, -1, log)
else:
p
= wx.Panel(nb, -1, style=wx.NO_FULL_REPAINT_ON_RESIZE)
ed =
MySTC(p, -1, log)
s = wx.BoxSizer(wx.HORIZONTAL)
s.Add(ed, 1, wx.EXPAND)
p.SetSizer(s)
p.SetAutoLayout(True)
#ed.SetBufferedDraw(False)
#ed.StyleClearAll()
#ed.SetScrollWidth(800)
#ed.SetWrapMode(True)
#ed.SetUseAntiAliasing(False)
#ed.SetViewEOL(True)
#ed.CmdKeyClear(stc.STC_KEY_BACK,
#
stc.STC_SCMOD_CTRL)
#ed.CmdKeyAssign(stc.STC_KEY_BACK,
#
stc.STC_SCMOD_CTRL,
# stc.STC_CMD_DELWORDLEFT)
ed.SetText(demoText)
if wx.USE_UNICODE:
import
codecs
decode = codecs.lookup("utf-8")[1]
ed.GotoPos(ed.GetLength())
ed.AddText("\n\nwx.StyledTextCtrl
can also do Unicode:\n")
uniline = ed.GetCurrentLine()
unitext, l = decode('\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd - '
'\xd0\xbb\xd1\x83\xd1\x87\xd1\x88\xd0\xb8\xd0\xb9 '
'\xd1\x8f\xd0\xb7\xd1\x8b\xd0\xba
\xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd0
\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f!\n\n')
ed.AddText('\tRussian: ')
ed.AddText(unitext)
ed.GotoPos(0)
#else:
#
#ed.StyleSetFontEncoding(stc.STC_STYLE_DEFAULT,
wx.FONTENCODING_KOI8)
# #text =
u'\u041f\u0438\u0442\u043e\u043d -
\u043b\u0443\u0447\u0448\u0438\u0439 \u044f\u0437\u044b\u043a
\n\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e
\u0432\u0430\u043d\u0438\u044f!'
# #text =
text.encode('koi8-r')
#
#ed.StyleSetFontEncoding(stc.STC_STYLE_DEFAULT,
wx.FONTENCODING_BIG5)
# #text = u'Python
\u662f\u6700\u597d\u7684\u7de8\u7a0b\u8a9e\u8a00\uff01'
#
#text = text.encode('big5')
# ed.GotoPos(ed.GetLength())
# ed.AddText('\n\n' + text)
ed.EmptyUndoBuffer()
# make some styles
ed.StyleSetSpec(stc.STC_STYLE_DEFAULT,
"size:%d,face:%s" % (pb, face3))
ed.StyleClearAll()
ed.StyleSetSpec(1, "size:%d,bold,face:%s,fore:#0000FF" % (pb,
face1))
ed.StyleSetSpec(2, "face:%s,italic,fore:#FF0000,size:%d"
% (face2, pb))
ed.StyleSetSpec(3, "face:%s,bold,size:%d" %
(face2, pb))
ed.StyleSetSpec(4, "face:%s,size:%d" % (face1,
pb-1))
# Now set some text to those styles... Normally this
would be
# done in an event handler that happens when text needs
displayed.
ed.StartStyling(98, 0xff)
ed.SetStyling(6, 1) #
set style for 6 characters using style 1
ed.StartStyling(190,
0xff)
ed.SetStyling(20, 2)
ed.StartStyling(310, 0xff)
ed.SetStyling(4, 3)
ed.SetStyling(2, 0)
ed.SetStyling(10,
4)
# line numbers in the margin
ed.SetMarginType(0,
stc.STC_MARGIN_NUMBER)
ed.SetMarginWidth(0, 22)
ed.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "size:%d,face:%s" % (pb-2,
face1))
# setup some markers
ed.SetMarginType(1,
stc.STC_MARGIN_SYMBOL)
ed.MarkerDefine(0,
stc.STC_MARK_ROUNDRECT, "#CCFF00", "RED")
ed.MarkerDefine(1,
stc.STC_MARK_CIRCLE, "FOREST GREEN", "SIENNA")
ed.MarkerDefine(2, stc.STC_MARK_SHORTARROW, "blue", "blue")
ed.MarkerDefine(3, stc.STC_MARK_ARROW, "#00FF00", "#00FF00")
#
put some markers on some lines
ed.MarkerAdd(17, 0)
ed.MarkerAdd(18, 1)
ed.MarkerAdd(19, 2)
ed.MarkerAdd(20, 3)
ed.MarkerAdd(20, 0)
# and finally, an indicator or two
ed.IndicatorSetStyle(0, stc.STC_INDIC_SQUIGGLE)
ed.IndicatorSetForeground(0, wx.RED)
ed.IndicatorSetStyle(1,
stc.STC_INDIC_DIAGONAL)
ed.IndicatorSetForeground(1, wx.BLUE)
ed.IndicatorSetStyle(2, stc.STC_INDIC_STRIKE)
ed.IndicatorSetForeground(2, wx.RED)
ed.StartStyling(836,
stc.STC_INDICS_MASK)
ed.SetStyling(10, stc.STC_INDIC0_MASK)
ed.SetStyling(8, stc.STC_INDIC1_MASK)
ed.SetStyling(10,
stc.STC_INDIC2_MASK | stc.STC_INDIC1_MASK)
# some test
stuff...
if debug:
print "GetTextLength(): ",
ed.GetTextLength(), len(ed.GetText())
print "GetText(): ",
repr(ed.GetText())
print
print "GetStyledText(98,
104): ", repr(ed.GetStyledText(98, 104)), len(ed.GetStyledText(98,
104))
print
print "GetCurLine(): ",
repr(ed.GetCurLine())
ed.GotoPos(5)
print
"GetCurLine(): ", repr(ed.GetCurLine())
print
print
"GetLine(1): ", repr(ed.GetLine(1))
print
ed.SetSelection(25, 35)
print "GetSelectedText(): ",
repr(ed.GetSelectedText())
print "GetTextRange(25, 35): ",
repr(ed.GetTextRange(25, 35))
print "FindText(0, max,
'indicators'): ",
print ed.FindText(0, ed.GetTextLength(),
"indicators")
if wx.USE_UNICODE:
end =
ed.GetLength()
start = ed.PositionFromLine(uniline)
print "GetTextRange(%d, %d): " % (start, end),
print repr(ed.GetTextRange(start, end))
wx.CallAfter(ed.GotoPos, 0)
return p
#-------------------------------------------------------------------
---
overview = """\
<html><body>
Once again, no docs yet.
<b>Sorry.</b> But <a href="data/stc.h.html">this</a>
and <a
href="http://www.scintilla.org/ScintillaDoc.html">this</a> should
be
helpful.
</body><html>
"""
if __name__ == '__main__':
import
sys,os
import run
run.main(['',
os.path.basename(sys.argv[0])] + sys.argv[1:])