X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6cffbf02c02c6df717dab7635c4b2031ed4d3414..c878ceeae8d69f231477ef0f207766093547ab86:/wxPython/wx/lib/masked/ctrl.py diff --git a/wxPython/wx/lib/masked/ctrl.py b/wxPython/wx/lib/masked/ctrl.py new file mode 100644 index 0000000000..897d0663bd --- /dev/null +++ b/wxPython/wx/lib/masked/ctrl.py @@ -0,0 +1,109 @@ +#---------------------------------------------------------------------------- +# 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)) + +