]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/wxTextCtrl.py
Added a new sample app that is a style editor for wxSTC.
[wxWidgets.git] / wxPython / demo / wxTextCtrl.py
CommitLineData
d56cebe7 1import sys
cf694132
RD
2from wxPython.wx import *
3
4#---------------------------------------------------------------------------
5
6class TestPanel(wxPanel):
2f9be787
RD
7 def OnSetFocus(self, evt):
8 print "OnSetFocus"
9 evt.Skip()
10 def OnKillFocus(self, evt):
11 print "OnKillFocus"
12 evt.Skip()
13
cf694132
RD
14 def __init__(self, parent, log):
15 wxPanel.__init__(self, parent, -1)
16 self.log = log
17
d56cebe7
RD
18 l1 = wxStaticText(self, -1, "wxTextCtrl")
19 t1 = wxTextCtrl(self, 10, "Test it out and see", size=(125, -1))
20 t1.SetInsertionPoint(0)
cf694132 21 EVT_TEXT(self, 10, self.EvtText)
d56cebe7 22 EVT_CHAR(t1, self.EvtChar)
2f9be787
RD
23 EVT_SET_FOCUS(t1, self.OnSetFocus)
24 EVT_KILL_FOCUS(t1, self.OnKillFocus)
c368d904 25
d56cebe7
RD
26 l2 = wxStaticText(self, -1, "Passsword")
27 t2 = wxTextCtrl(self, 20, "", size=(125, -1), style=wxTE_PASSWORD)
cf694132
RD
28 EVT_TEXT(self, 20, self.EvtText)
29
d56cebe7
RD
30 l3 = wxStaticText(self, -1, "Multi-line")
31 t3 = wxTextCtrl(self, 30, "How does it work with a long line of text set in the control",
32 size=(200, 100), style=wxTE_MULTILINE)
33 t3.SetInsertionPoint(0)
cf694132 34 EVT_TEXT(self, 30, self.EvtText)
c7e7022c
RD
35 b = wxButton(self, -1, "Test Replace")
36 EVT_BUTTON(self, b.GetId(), self.OnTestReplace)
37 self.tc = t3
cf694132 38
d56cebe7
RD
39 l4 = wxStaticText(self, -1, "Rich Text")
40 t4 = wxTextCtrl(self, 40, "If supported by the native control, this is red, and this is a different font.",
41 size=(200, 100), style=wxTE_MULTILINE|wxTE_RICH)
42 t4.SetInsertionPoint(0)
43 t4.SetStyle(44, 47, wxTextAttr("RED", "YELLOW"))
44
45 points = t4.GetFont().GetPointSize() # get the current size
00b6c4e3 46 f = wxFont(points+3, wxROMAN, wxITALIC, wxBOLD, true)
d56cebe7
RD
47## print 'a1', sys.getrefcount(f)
48## t4.SetStyle(63, 77, wxTextAttr("BLUE", font=f))
49 t4.SetStyle(63, 77, wxTextAttr("BLUE", wxNullColour, f))
50## print 'a2', sys.getrefcount(f)
51
c7e7022c
RD
52 sizer = wxFlexGridSizer(cols=3, hgap=6, vgap=6)
53 sizer.AddMany([ l1, t1, (0,0),
54 l2, t2, (0,0),
55 l3, t3, b,
56 l4, t4, (0,0),
d56cebe7
RD
57 ])
58 border = wxBoxSizer(wxVERTICAL)
59 border.Add(sizer, 0, wxALL, 25)
60 self.SetSizer(border)
61 self.SetAutoLayout(true)
62
63
cf694132
RD
64 def EvtText(self, event):
65 self.log.WriteText('EvtText: %s\n' % event.GetString())
66
67
c368d904
RD
68 def EvtChar(self, event):
69 self.log.WriteText('EvtChar: %d\n' % event.GetKeyCode())
70 event.Skip()
71
cf694132 72
c7e7022c
RD
73 def OnTestReplace(self, evt):
74 self.tc.Replace(4, 8, "DOES")
75 #self.tc.Remove(4, 8)
76
77
cf694132
RD
78#---------------------------------------------------------------------------
79
80def runTest(frame, nb, log):
81 win = TestPanel(nb, log)
82 return win
83
84#---------------------------------------------------------------------------
85
86
87
88
89overview = """\
90"""