-from wxPython.wx import *
-from wxPython.lib.intctrl import *
+# 11/19/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o Updated for wx namespace
+#
+# 11/29/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o intctrl needs the renamer applied.
+# o intctrl needs new event binders.
+#
+# 12/08/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o All issues corrected
+#
+# 12/20/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o wxIntCtrl -> IntCtrl
+#
+
+import wx
+import wx.lib.intctrl
#----------------------------------------------------------------------
-class TestPanel( wxPanel ):
+class TestPanel( wx.Panel ):
def __init__( self, parent, log ):
- wxPanel.__init__( self, parent, -1 )
+ wx.Panel.__init__( self, parent, -1 )
self.log = log
- panel = wxPanel( self, -1 )
+ panel = wx.Panel( self, -1 )
- self.set_min = wxCheckBox( panel, -1, "Set minimum value:" )
- self.min = wxIntCtrl( panel, size=wxSize( 50, -1 ) )
+ self.set_min = wx.CheckBox( panel, -1, "Set minimum value:" )
+ self.min = wx.lib.intctrl.IntCtrl( panel, size=( 50, -1 ) )
self.min.Enable( False )
- self.set_max = wxCheckBox( panel, -1, "Set maximum value:" )
- self.max = wxIntCtrl( panel, size=wxSize( 50, -1 ) )
+ self.set_max = wx.CheckBox( panel, -1, "Set maximum value:" )
+ self.max = wx.lib.intctrl.IntCtrl( panel, size=( 50, -1 ) )
self.max.Enable( False )
- self.limit_target = wxCheckBox( panel, -1, "Limit control" )
- self.allow_none = wxCheckBox( panel, -1, "Allow empty control" )
- self.allow_long = wxCheckBox( panel, -1, "Allow long integers" )
+ self.limit_target = wx.CheckBox( panel, -1, "Limit control" )
+ self.allow_none = wx.CheckBox( panel, -1, "Allow empty control" )
+ self.allow_long = wx.CheckBox( panel, -1, "Allow long integers" )
- label = wxStaticText( panel, -1, "Resulting integer control:" )
- self.target_ctl = wxIntCtrl( panel )
+ label = wx.StaticText( panel, -1, "Resulting integer control:" )
+ self.target_ctl = wx.lib.intctrl.IntCtrl( panel )
- grid = wxFlexGridSizer( 0, 2, 0, 0 )
- grid.AddWindow( self.set_min, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
- grid.AddWindow( self.min, 0, wxALIGN_LEFT|wxALL, 5 )
+ grid = wx.FlexGridSizer( 0, 2, 0, 0 )
+ grid.Add( self.set_min, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+ grid.Add( self.min, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
- grid.AddWindow( self.set_max, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
- grid.AddWindow( self.max, 0, wxALIGN_LEFT|wxALL, 5 )
+ grid.Add(self.set_max, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+ grid.Add( self.max, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
- grid.AddWindow( self.limit_target, 0, wxALIGN_LEFT|wxALL, 5 )
- grid.AddSpacer( 20, 0, 0, wxALIGN_LEFT|wxALL, 5 )
- grid.AddWindow( self.allow_none, 0, wxALIGN_LEFT|wxALL, 5 )
- grid.AddSpacer( 20, 0, 0, wxALIGN_LEFT|wxALL, 5 )
- grid.AddWindow( self.allow_long, 0, wxALIGN_LEFT|wxALL, 5 )
- grid.AddSpacer( 20, 0, 0, wxALIGN_LEFT|wxALL, 5 )
+ grid.Add( self.limit_target, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid.Add( (20, 0), 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid.Add( self.allow_none, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid.Add( (20, 0), 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid.Add( self.allow_long, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid.Add( (20, 0), 0, wx.ALIGN_LEFT|wx.ALL, 5 )
- grid.AddSpacer( 20, 0, 0, wxALIGN_LEFT|wxALL, 5 )
- grid.AddSpacer( 20, 0, 0, wxALIGN_LEFT|wxALL, 5 )
+ grid.Add( (20, 0), 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid.Add( (20, 0), 0, wx.ALIGN_LEFT|wx.ALL, 5 )
- grid.AddWindow( label, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
- grid.AddWindow( self.target_ctl, 0, wxALIGN_LEFT|wxALL, 5 )
+ grid.Add( label, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+ grid.Add( self.target_ctl, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
- outer_box = wxBoxSizer( wxVERTICAL )
- outer_box.AddSizer( grid, 0, wxALIGN_CENTRE|wxALL, 20 )
+ outer_box = wx.BoxSizer( wx.VERTICAL )
+ outer_box.AddSizer( grid, 0, wx.ALIGN_CENTRE|wx.ALL, 20 )
panel.SetAutoLayout( True )
panel.SetSizer( outer_box )
panel.Move( (50,50) )
self.panel = panel
- EVT_CHECKBOX( self, self.set_min.GetId(), self.OnSetMin )
- EVT_CHECKBOX( self, self.set_max.GetId(), self.OnSetMax )
- EVT_CHECKBOX( self, self.limit_target.GetId(), self.SetTargetMinMax )
- EVT_CHECKBOX( self, self.allow_none.GetId(), self.OnSetAllowNone )
- EVT_CHECKBOX( self, self.allow_long.GetId(), self.OnSetAllowLong )
- EVT_INT( self, self.min.GetId(), self.SetTargetMinMax )
- EVT_INT( self, self.max.GetId(), self.SetTargetMinMax )
- EVT_INT( self, self.target_ctl.GetId(), self.OnTargetChange )
+ self.Bind(wx.EVT_CHECKBOX, self.OnSetMin, self.set_min)
+ self.Bind(wx.EVT_CHECKBOX, self.OnSetMax, self.set_max)
+ self.Bind(wx.EVT_CHECKBOX, self.SetTargetMinMax, self.limit_target)
+ self.Bind(wx.EVT_CHECKBOX, self.OnSetAllowNone, self.allow_none)
+ self.Bind(wx.EVT_CHECKBOX, self.OnSetAllowLong, self.allow_long)
+
+ self.Bind(wx.lib.intctrl.EVT_INT, self.SetTargetMinMax, self.min)
+ self.Bind(wx.lib.intctrl.EVT_INT, self.SetTargetMinMax, self.max)
+ self.Bind(wx.lib.intctrl.EVT_INT, self.OnTargetChange, self.target_ctl)
def OnSetMin( self, event ):
if self.set_min.GetValue():
min = self.min.GetValue()
+
if self.set_max.GetValue():
max = self.max.GetValue()
if min != cur_min and not self.target_ctl.SetMin( min ):
self.log.write( "min (%d) > current max (%d) -- bound not set\n" % ( min, self.target_ctl.GetMax() ) )
- self.min.SetForegroundColour( wxRED )
+ self.min.SetForegroundColour( wx.RED )
else:
- self.min.SetForegroundColour( wxBLACK )
+ self.min.SetForegroundColour( wx.BLACK )
+
self.min.Refresh()
if max != cur_max and not self.target_ctl.SetMax( max ):
self.log.write( "max (%d) < current min (%d) -- bound not set\n" % ( max, self.target_ctl.GetMin() ) )
- self.max.SetForegroundColour( wxRED )
+ self.max.SetForegroundColour( wx.RED )
else:
- self.max.SetForegroundColour( wxBLACK )
+ self.max.SetForegroundColour( wx.BLACK )
+
self.max.Refresh()
if min != cur_min or max != cur_max:
overview = """<html><body>
<P>
-<B>wxIntCtrl</B> provides a control that takes and returns integers as
+<B>IntCtrl</B> provides a control that takes and returns integers as
value, and provides bounds support and optional value limiting.
<P>
<P>
-Here's the API for wxIntCtrl:
+Here's the API for IntCtrl:
<DL><PRE>
- <B>wxIntCtrl</B>(
+ <B>IntCtrl</B>(
parent, id = -1,
<B>value</B> = 0,
<B>min</B> = None,
<DT><B>SetNoneAllowed(bool)</B>
<DD>If called with a value of True, this function will cause the control
to allow the value to be empty, representing a value of None.
-If called with a value of fakse, this function will prevent the value
+If called with a value of false, this function will prevent the value
from being None. If the value of the control is currently None,
ie. the control is empty, then the value will be changed to that
of the lower bound of the control, or 0 if no lower bound is set.