d4b73b1b8e
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
110 lines
3.3 KiB
Python
110 lines
3.3 KiB
Python
#----------------------------------------------------------------------------
|
|
# 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))
|
|
|
|
|