]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/SpinButton.py
always use wxPyPanel
[wxWidgets.git] / wxPython / demo / SpinButton.py
CommitLineData
8fa876ca
RD
1# 11/30/2003 - Jeff Grimmett (grimmtooth@softhome.net)
2#
3# o EVT_SPIN events (or something about them) freezes up the app.
4#
cf694132 5
8fa876ca 6import wx
cf694132 7
cf694132
RD
8#----------------------------------------------------------------------
9
8fa876ca 10class TestPanel(wx.Panel):
cf694132 11 def __init__(self, parent, log):
8fa876ca 12 wx.Panel.__init__(self, parent, -1)
cf694132
RD
13 self.log = log
14 self.count = 0
15
95bfd958 16 wx.StaticText(self, -1, "This example uses the wx.SpinButton control.", (45, 15))
cf694132 17
8fa876ca 18 self.text = wx.TextCtrl(self, -1, "1", (30, 50), (60, -1))
cf694132 19 h = self.text.GetSize().height
d1f46a1c 20 w = self.text.GetSize().width + self.text.GetPosition().x + 2
8fa876ca 21
d1f46a1c
RD
22 self.spin = wx.SpinButton(self, -1,
23 (w, 50),
24 (h*2/3, h),
25 wx.SP_VERTICAL)
cf694132
RD
26 self.spin.SetRange(1, 100)
27 self.spin.SetValue(1)
28
8fa876ca 29 self.Bind(wx.EVT_SPIN, self.OnSpin, self.spin)
cf694132
RD
30
31
32 def OnSpin(self, event):
33 self.text.SetValue(str(event.GetPosition()))
34
35
36#----------------------------------------------------------------------
37
38def runTest(frame, nb, log):
39 win = TestPanel(nb, log)
40 return win
41
42#----------------------------------------------------------------------
43
44
cf694132 45overview = """\
95bfd958 46A wx.SpinButton has two small up and down (or left and right) arrow buttons.
8fa876ca 47It is often used next to a text control for increment and decrementing a value.
95bfd958 48Portable programs should try to use wx.SpinCtrl instead as wx.SpinButton is not
8fa876ca 49implemented for all platforms (Win32 and GTK only currently).
1fded56b 50
95bfd958 51NB: the range supported by this control (and wx.SpinCtrl) depends on the platform
8fa876ca
RD
52but is at least -0x8000 to 0x7fff. Under GTK and Win32 with sufficiently new version
53of comctrl32.dll (at least 4.71 is required, 5.80 is recommended) the full 32 bit
54range is supported.
1fded56b 55
8fa876ca 56"""
1fded56b
RD
57
58if __name__ == '__main__':
59 import sys,os
60 import run
8eca4fef 61 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])