#---------------------------------------------------------------------------- # Name: wxPython.lib.masked.ctrl.py # Author: Will Sadkin # Created: 09/24/2003 # Copyright: (c) 2003 by Will Sadkin # RCS-ID: $Id$ # License: wxWindows license #---------------------------------------------------------------------------- # 12/09/2003 - Jeff Grimmett (grimmtooth@softhome.net) # # o Updated for wx namespace (minor) # # 12/20/2003 - Jeff Grimmett (grimmtooth@softhome.net) # # o Removed wx prefix # """

masked.Ctrl is actually a factory function for several types of masked edit controls:

masked.Ctrl works by looking for a special controlType parameter in the variable arguments of the control, to determine what kind of instance to return. controlType can be one of:


    controlTypes.TEXT
    controlTypes.COMBO
    controlTypes.IPADDR
    controlTypes.TIME
    controlTypes.NUMBER
These constants are also available individually, ie, you can use either of the following:

    from wxPython.wx.lib.masked import Ctrl, COMBO, TEXT, NUMBER, TIME
    from wxPython.wx.lib.masked import Ctrl, controlTypes
If not specified as a keyword argument, the default controlType is controlTypes.TEXT.

Each of the above classes has its own unique arguments, but MaskedCtrl provides a single "unified" interface for masked controls. Masked.TextCtrl, masked.ComboBox and masked.IpAddrCtrl are all documented below; the others have their own demo pages and interface descriptions. """ from wx.lib.masked import TextCtrl, ComboBox, IpAddrCtrl from wx.lib.masked import NumCtrl from wx.lib.masked import TimeCtrl # "type" enumeration for class instance factory function TEXT = 0 COMBO = 1 IPADDR = 2 TIME = 3 NUMBER = 4 # for ease of import class controlTypes: TEXT = TEXT COMBO = COMBO IPADDR = IPADDR TIME = TIME NUMBER = NUMBER def Ctrl( *args, **kwargs): """ Actually a factory function providing a unifying interface for generating masked controls. """ if not kwargs.has_key('controlType'): controlType = TEXT else: controlType = kwargs['controlType'] del kwargs['controlType'] if controlType == TEXT: return TextCtrl(*args, **kwargs) elif controlType == COMBO: return ComboBox(*args, **kwargs) elif controlType == IPADDR: return IpAddrCtrl(*args, **kwargs) elif controlType == TIME: return TimeCtrl(*args, **kwargs) elif controlType == NUMBER: return NumCtrl(*args, **kwargs) else: raise AttributeError( "invalid controlType specified: %s" % repr(controlType))