def __init__( self, parent, id=-1, value='', pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.TE_PROCESS_TAB, validator=wx.DefaultValidator, name='IpAddrCtrl', setupEventHandling=True, ## setup event handling by default **kwargs): if not kwargs.has_key('mask'): kwargs['mask'] = mask = "###.###.###.###" if not kwargs.has_key('formatcodes'): kwargs['formatcodes'] = 'F_Sr<>' if not kwargs.has_key('validRegex'): kwargs[ 'validRegex'] = "( \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))(\.( \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))){3}" BaseMaskedTextCtrl.__init__(self, parent, id=id, value=value, pos=pos, size=size, style=style, validator=validator, name=name, setupEventHandling=setupEventHandling, **kwargs) # set up individual field parameters as well: field_params = {} field_params[ 'validRegex'] = "( | \d| \d |\d | \d\d|\d\d |\d \d|(1\d\d|2[0-4]\d|25[0-5]))" # require "valid" string; this prevents entry of any value > 255, but allows # intermediate constructions; overall control validation requires well-formatted value. field_params['formatcodes'] = 'V' if field_params: for i in self._field_indices: self.SetFieldParameters(i, **field_params) # This makes '.' act like tab: self._AddNavKey('.', handler=self.OnDot) self._AddNavKey('>', handler=self.OnDot) # for "shift-."
def __init__(self, parent, id=-1, value='', pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.TE_PROCESS_TAB, validator=wx.DefaultValidator, name='IpAddrCtrl', setupEventHandling=True, **kwargs): """ Default class constructor. :param wx.Window `parent`: the window parent. Must not be ``None``; :param integer `id`: window identifier. A value of -1 indicates a default value; :param string `value`: value to be shown; :param `pos`: the control position. A value of (-1, -1) indicates a default position, chosen by either the windowing system or wxPython, depending on platform; :type `pos`: tuple or :class:`wx.Point` :param `size`: the control size. A value of (-1, -1) indicates a default size, chosen by either the windowing system or wxPython, depending on platform; :param integer `style`: the window style; :param wx.Validator `validator`: this is mainly provided for data-transfer, as control does its own validation; :param string `name`: the window name; :param boolean `setupEventHandling`: setup event handling by default. """ if 'mask' not in kwargs: kwargs['mask'] = mask = "###.###.###.###" if 'formatcodes' not in kwargs: kwargs['formatcodes'] = 'F_Sr<>' if 'validRegex' not in kwargs: kwargs[ 'validRegex'] = r"( \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))(\.( \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))){3}" BaseMaskedTextCtrl.__init__(self, parent, id=id, value=value, pos=pos, size=size, style=style, validator=validator, name=name, setupEventHandling=setupEventHandling, **kwargs) # set up individual field parameters as well: field_params = {} field_params[ 'validRegex'] = r"( | \d| \d |\d | \d\d|\d\d |\d \d|(1\d\d|2[0-4]\d|25[0-5]))" # require "valid" string; this prevents entry of any value > 255, but allows # intermediate constructions; overall control validation requires well-formatted value. field_params['formatcodes'] = 'V' if field_params: for i in self._field_indices: self.SetFieldParameters(i, **field_params) # This makes '.' act like tab: self._AddNavKey('.', handler=self.OnDot) self._AddNavKey('>', handler=self.OnDot) # for "shift-."