1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import wx
20
21
23
24 - def __init__(self, parent, size=(-1, -1)):
27
29 sizer = wx.BoxSizer(wx.HORIZONTAL)
30 self.text = wx.TextCtrl(self, size=size)
31 self.spin = wx.SpinButton(self, style=wx.SP_VERTICAL, size=(-1, self.text.GetSize()[1] + 5))
32 sizer.Add(self.text, proportion=1, flag=wx.ALIGN_CENTER_VERTICAL)
33 sizer.Add(self.spin, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
34 self.Bind(wx.EVT_CHAR, self._OnKeyPress, self.text)
35 self.Bind(wx.EVT_SPIN_UP, self._OnSpinUp, self.spin)
36 self.Bind(wx.EVT_SPIN_DOWN, self._OnSpinDown, self.spin)
37 self.SetSizerAndFit(sizer)
38
41
44
48
51
54
57
59 """Allow digits, and a minus sign in the first position."""
60 if IsAscci(keycode):
61 if IsMinus(keycode):
62 if self.MinusIsOk():
63 return True
64 else:
65 return False
66 elif IsNotAlpha(keycode):
67 return True
68 else:
69 return False
70 return True
71
74
75
77 return not chr(keycode).isalpha()
78
79
81 return chr(keycode) == '-'
82
83
86