groupcharlabel = wx.StaticText( panel,-1, "Grouping char:" )
self.groupchar = masked.TextCtrl(
- panel, -1, value=',', mask='&', excludeChars = '-()',
- formatcodes='F', emptyInvalid=True, validRequired=True
+ panel, -1, value=',', mask='*', includeChars = ' ', excludeChars = '-()0123456789',
+ formatcodes='F', emptyInvalid=False, validRequired=True
)
decimalcharlabel = wx.StaticText( panel,-1, "Decimal char:" )
self.limit_target = wx.CheckBox( panel, -1, "Limit control" )
+ self.limit_on_field_change = wx.CheckBox( panel, -1, "Limit on field change" )
self.allow_none = wx.CheckBox( panel, -1, "Allow empty control" )
self.group_digits = wx.CheckBox( panel, -1, "Group digits" )
self.group_digits.SetValue( True )
grid1 = wx.FlexGridSizer( 0, 4, 0, 0 )
grid1.Add( intlabel, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
- grid1.Add( self.integerwidth, 0, wx.FIXED_MINSIZE|wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid1.Add( self.integerwidth, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
grid1.Add( groupcharlabel, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
- grid1.Add( self.groupchar, 0, wx.FIXED_MINSIZE|wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid1.Add( self.groupchar, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
grid1.Add( fraclabel, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
- grid1.Add( self.fractionwidth, 0, wx.FIXED_MINSIZE|wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid1.Add( self.fractionwidth, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
grid1.Add( decimalcharlabel, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
- grid1.Add( self.decimalchar, 0, wx.FIXED_MINSIZE|wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid1.Add( self.decimalchar, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
grid1.Add( self.set_min, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
grid1.Add( self.min, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
grid1.Add( self.limit_target, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
- grid1.Add( self.allow_none, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid1.Add( self.limit_on_field_change, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+
hbox1 = wx.BoxSizer( wx.HORIZONTAL )
hbox1.Add( (17,5), 0, wx.ALIGN_LEFT|wx.ALL, 5)
- hbox1.Add( self.group_digits, 0, wx.ALIGN_LEFT|wx.LEFT, 5 )
+ hbox1.Add( self.allow_none, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
grid1.Add( hbox1, 0, wx.ALIGN_LEFT|wx.ALL, 5)
grid1.Add( (5,5), 0, wx.ALIGN_LEFT|wx.ALL, 5)
- grid1.Add( self.allow_negative, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
- grid1.Add( self.use_parens, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
+ grid1.Add( self.group_digits, 0, wx.ALIGN_LEFT|wx.LEFT, 5 )
+ grid1.Add( self.allow_negative, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
hbox2 = wx.BoxSizer( wx.HORIZONTAL )
hbox2.Add( (17,5), 0, wx.ALIGN_LEFT|wx.ALL, 5)
- hbox2.Add( self.select_on_entry, 0, wx.ALIGN_LEFT|wx.LEFT, 5 )
+ hbox2.Add( self.use_parens, 0, wx.ALIGN_LEFT|wx.ALL, 5 )
grid1.Add( hbox2, 0, wx.ALIGN_LEFT|wx.ALL, 5)
grid1.Add( (5,5), 0, wx.ALIGN_LEFT|wx.ALL, 5)
-
+
+ grid1.Add( self.select_on_entry, 0, wx.ALIGN_LEFT|wx.LEFT, 5 )
+ grid1.Add( (5,5), 0, wx.ALIGN_LEFT|wx.ALL, 5)
+ grid1.Add( (5,5), 0, wx.ALIGN_LEFT|wx.ALL, 5)
+ grid1.Add( (5,5), 0, wx.ALIGN_LEFT|wx.ALL, 5)
grid2 = wx.FlexGridSizer( 0, 2, 0, 0 )
grid2.Add( label, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
self.Bind(masked.EVT_NUM, self.SetTargetMinMax, self.min )
self.Bind(masked.EVT_NUM, self.SetTargetMinMax, self.max )
- self.Bind(wx.EVT_CHECKBOX, self.SetTargetMinMax, self.limit_target )
+ self.Bind(wx.EVT_CHECKBOX, self.OnSetLimited, self.limit_target )
+ self.Bind(wx.EVT_CHECKBOX, self.OnSetLimitOnFieldChange, self.limit_on_field_change )
self.Bind(wx.EVT_CHECKBOX, self.OnSetAllowNone, self.allow_none )
self.Bind(wx.EVT_CHECKBOX, self.OnSetGroupDigits, self.group_digits )
self.Bind(wx.EVT_CHECKBOX, self.OnSetAllowNegative, self.allow_negative )
self.SetTargetMinMax()
+ def OnSetLimited( self, event ):
+ limited = self.limit_target.GetValue()
+ self.target_ctl.SetLimited( limited )
+ limit_on_field_change = self.limit_on_field_change.GetValue()
+ if limited and limit_on_field_change:
+ self.limit_on_field_change.SetValue(False)
+ self.target_ctl.SetLimitOnFieldChange( False )
+ self.SetTargetMinMax()
+
+
+ def OnSetLimitOnFieldChange( self, event ):
+ limit_on_field_change = self.limit_on_field_change.GetValue()
+ self.target_ctl.SetLimitOnFieldChange( limit_on_field_change )
+ limited = self.limit_target.GetValue()
+ if limited and limit_on_field_change:
+ self.limit_target.SetValue(False)
+ self.target_ctl.SetLimited( False )
+
def SetTargetMinMax( self, event=None ):
min = max = None
- self.target_ctl.SetLimited( self.limit_target.GetValue() )
-
if self.set_min.GetValue():
min = self.min.GetValue()
if self.set_max.GetValue():
#----------------------------------------------------------------------
import wx.lib.masked.numctrl as mnum
-overview = mnum.__doc__
+overview = """<html>
+<PRE><FONT SIZE=-1>
+""" + mnum.__doc__ + """
+</FONT></PRE>"""
if __name__ == '__main__':
import sys,os