]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/maskedctrl.py
Fix or add some DoGetBestSize's
[wxWidgets.git] / wxPython / wx / lib / maskedctrl.py
index 4e5aaafbc49079e71caac894a0d51f9e248b74d5..d5537775aee2614592eec3af5e81d2a8d899600c 100644 (file)
@@ -1,8 +1,109 @@
+#----------------------------------------------------------------------------
+# Name:         wxPython.lib.maskedctrl.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
+# 
+
+"""<html><body>
+<P>
+<B>MaskedCtrl</B> is actually a factory function for several types of
+masked edit controls:
+<P>
+<UL>
+    <LI><b>MaskedTextCtrl</b> - standard masked edit text box</LI>
+    <LI><b>MaskedComboBox</b> - adds combobox capabilities</LI>
+    <LI><b>IpAddrCtrl</b> - adds logical input semantics for IP address entry</LI>
+    <LI><b>TimeCtrl</b> - special subclass handling lots of time formats as values</LI>
+    <LI><b>MaskedNumCtrl</b> - special subclass handling numeric values</LI>
+</UL>
+<P>
+<B>MaskedCtrl</B> works by looking for a special <b><i>controlType</i></b>
+parameter in the variable arguments of the control, to determine
+what kind of instance to return.
+controlType can be one of:
+<PRE><FONT SIZE=-1>
+    controlTypes.MASKEDTEXT
+    controlTypes.MASKEDCOMBO
+    controlTypes.IPADDR
+    controlTypes.TIME
+    controlTypes.NUMBER
+</FONT></PRE>
+These constants are also available individually, ie, you can
+use either of the following:
+<PRE><FONT SIZE=-1>
+    from wxPython.wx.lib.maskedctrl import MaskedCtrl, MASKEDCOMBO, MASKEDTEXT, NUMBER
+    from wxPython.wx.lib.maskedctrl import MaskedCtrl, controlTypes
+</FONT></PRE>
+If not specified as a keyword argument, the default controlType is
+controlTypes.MASKEDTEXT.
+<P>
+Each of the above classes has its own unique arguments, but MaskedCtrl
+provides a single "unified" interface for masked controls.  MaskedTextCtrl,
+MaskedComboBox and IpAddrCtrl are all documented below; the others have
+their own demo pages and interface descriptions.
+</body></html>
+"""
+
+from wx.lib.maskededit      import MaskedTextCtrl, MaskedComboBox, IpAddrCtrl
+from wx.lib.maskednumctrl   import MaskedNumCtrl
+from wx.lib.timectrl        import TimeCtrl
+
+
+# "type" enumeration for class instance factory function
+MASKEDTEXT  = 0
+MASKEDCOMBO = 1
+IPADDR      = 2
+TIME        = 3
+NUMBER      = 4
+
+# for ease of import
+class controlTypes:
+    MASKEDTEXT  = MASKEDTEXT
+    MASKEDCOMBO = MASKEDCOMBO
+    IPADDR      = IPADDR
+    TIME        = TIME
+    NUMBER      = NUMBER
+
+
+def MaskedCtrl( *args, **kwargs):
+    """
+    Actually a factory function providing a unifying
+    interface for generating masked controls.
+    """
+    if not kwargs.has_key('controlType'):
+        controlType = MASKEDTEXT
+    else:
+        controlType = kwargs['controlType']
+        del kwargs['controlType']
+
+    if controlType == MASKEDTEXT:
+        return MaskedTextCtrl(*args, **kwargs)
+
+    elif controlType == MASKEDCOMBO:
+        return MaskedComboBox(*args, **kwargs)
+
+    elif controlType == IPADDR:
+        return IpAddrCtrl(*args, **kwargs)
+
+    elif controlType == TIME:
+        return TimeCtrl(*args, **kwargs)
+
+    elif controlType == NUMBER:
+        return MaskedNumCtrl(*args, **kwargs)
+
+    else:
+        raise AttributeError(
+            "invalid controlType specified: %s" % repr(controlType))
 
-"""Renamer stub: provides a way to drop the wx prefix from wxPython objects."""
 
-from wx import _rename
-from wxPython.lib import maskedctrl
-_rename(globals(), maskedctrl.__dict__, modulename='lib.maskedctrl')
-del maskedctrl
-del _rename