]> git.saurik.com Git - wxWidgets.git/blame - wxPython/wx/lib/maskedctrl.py
Give BitmapButton its own demo, get rid of ErrorDialogs
[wxWidgets.git] / wxPython / wx / lib / maskedctrl.py
CommitLineData
d14a1e28
RD
1#----------------------------------------------------------------------------
2# Name: wxPython.lib.maskedctrl.py
3# Author: Will Sadkin
4# Created: 09/24/2003
5# Copyright: (c) 2003 by Will Sadkin
6# RCS-ID: $Id$
7# License: wxWindows license
8#----------------------------------------------------------------------------
b881fc78
RD
9# 12/09/2003 - Jeff Grimmett (grimmtooth@softhome.net)
10#
11# o Updated for wx namespace (minor)
12#
d4b73b1b
RD
13# 12/20/2003 - Jeff Grimmett (grimmtooth@softhome.net)
14#
15# o Removed wx prefix
16#
d14a1e28
RD
17
18"""<html><body>
19<P>
d4b73b1b 20<B>MaskedCtrl</B> is actually a factory function for several types of
d14a1e28
RD
21masked edit controls:
22<P>
23<UL>
d4b73b1b
RD
24 <LI><b>MaskedTextCtrl</b> - standard masked edit text box</LI>
25 <LI><b>MaskedComboBox</b> - adds combobox capabilities</LI>
26 <LI><b>IpAddrCtrl</b> - adds logical input semantics for IP address entry</LI>
27 <LI><b>TimeCtrl</b> - special subclass handling lots of time formats as values</LI>
28 <LI><b>MaskedNumCtrl</b> - special subclass handling numeric values</LI>
d14a1e28
RD
29</UL>
30<P>
d4b73b1b 31<B>MaskedCtrl</B> works by looking for a special <b><i>controlType</i></b>
d14a1e28
RD
32parameter in the variable arguments of the control, to determine
33what kind of instance to return.
34controlType can be one of:
35<PRE><FONT SIZE=-1>
36 controlTypes.MASKEDTEXT
37 controlTypes.MASKEDCOMBO
38 controlTypes.IPADDR
39 controlTypes.TIME
40 controlTypes.NUMBER
41</FONT></PRE>
42These constants are also available individually, ie, you can
43use either of the following:
44<PRE><FONT SIZE=-1>
d4b73b1b
RD
45 from wxPython.wx.lib.maskedctrl import MaskedCtrl, MASKEDCOMBO, MASKEDTEXT, NUMBER
46 from wxPython.wx.lib.maskedctrl import MaskedCtrl, controlTypes
d14a1e28
RD
47</FONT></PRE>
48If not specified as a keyword argument, the default controlType is
49controlTypes.MASKEDTEXT.
50<P>
d4b73b1b
RD
51Each of the above classes has its own unique arguments, but MaskedCtrl
52provides a single "unified" interface for masked controls. MaskedTextCtrl,
53MaskedComboBox and IpAddrCtrl are all documented below; the others have
d14a1e28
RD
54their own demo pages and interface descriptions.
55</body></html>
56"""
57
d4b73b1b
RD
58from wx.lib.maskededit import MaskedTextCtrl, MaskedComboBox, IpAddrCtrl
59from wx.lib.maskednumctrl import MaskedNumCtrl
60from wx.lib.timectrl import TimeCtrl
d14a1e28
RD
61
62
63# "type" enumeration for class instance factory function
64MASKEDTEXT = 0
65MASKEDCOMBO = 1
66IPADDR = 2
67TIME = 3
68NUMBER = 4
69
70# for ease of import
71class controlTypes:
72 MASKEDTEXT = MASKEDTEXT
73 MASKEDCOMBO = MASKEDCOMBO
74 IPADDR = IPADDR
75 TIME = TIME
76 NUMBER = NUMBER
77
78
d4b73b1b 79def MaskedCtrl( *args, **kwargs):
d14a1e28
RD
80 """
81 Actually a factory function providing a unifying
82 interface for generating masked controls.
83 """
84 if not kwargs.has_key('controlType'):
85 controlType = MASKEDTEXT
86 else:
87 controlType = kwargs['controlType']
88 del kwargs['controlType']
89
90 if controlType == MASKEDTEXT:
d4b73b1b 91 return MaskedTextCtrl(*args, **kwargs)
d14a1e28
RD
92
93 elif controlType == MASKEDCOMBO:
d4b73b1b 94 return MaskedComboBox(*args, **kwargs)
d14a1e28
RD
95
96 elif controlType == IPADDR:
d4b73b1b 97 return IpAddrCtrl(*args, **kwargs)
d14a1e28
RD
98
99 elif controlType == TIME:
d4b73b1b 100 return TimeCtrl(*args, **kwargs)
d14a1e28
RD
101
102 elif controlType == NUMBER:
d4b73b1b 103 return MaskedNumCtrl(*args, **kwargs)
d14a1e28
RD
104
105 else:
106 raise AttributeError(
107 "invalid controlType specified: %s" % repr(controlType))
8b9a4190 108
8b9a4190 109