Patches from Will Sadkin:
MaskedEditMixin: - fixed size calculations on changing fonts - fixed tabbing logic now that tab events are entered into the control by default (ie event.Skip()) if wx.TE_PROCESS_TAB is set - fixed code attempting to fix the selection after focus events generated on control destruction, to prevent tracebacks TextCtrl, ComboBox - Added support for XRC - Fixed sizing calculation code - Added SetFont() override method that will recalculate the size if this is called. - Added AppendItems() for ComboBox NumCtrl: - prevented ctrl from accepting same grouping and decimal character, - fixed issue preventing paste from working if decimal char was different than '.' TimeCtrl: - Fixed default value to use 24hour time (which will be converted appropriately if format supports it, and added code to check if local timezone uses "AM/PM" for this concept; if not, control now defaults to 24hour format, and disallows the am/pm form. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -22,7 +22,7 @@ from wx.lib.masked import *
|
||||
# be a good place to implement the 2.3 logger class
|
||||
from wx.tools.dbg import Logger
|
||||
dbg = Logger()
|
||||
##dbg(enable=0)
|
||||
##dbg(enable=1)
|
||||
|
||||
# ## TRICKY BIT: to avoid a ton of boiler-plate, and to
|
||||
# ## automate the getter/setter generation for each valid
|
||||
@@ -76,6 +76,13 @@ class BaseMaskedTextCtrl( wx.TextCtrl, MaskedEditMixin ):
|
||||
style=style, validator=validator,
|
||||
name=name)
|
||||
|
||||
self._PostInit(setupEventHandling = setupEventHandling,
|
||||
name=name, value=value,**kwargs )
|
||||
|
||||
|
||||
def _PostInit(self,setupEventHandling=True,
|
||||
name='maskedTextCtrl' , value='', **kwargs):
|
||||
|
||||
self.controlInitialized = True
|
||||
MaskedEditMixin.__init__( self, name, **kwargs )
|
||||
|
||||
@@ -219,6 +226,18 @@ class BaseMaskedTextCtrl( wx.TextCtrl, MaskedEditMixin ):
|
||||
wx.CallAfter(self._SetSelection, replace_to, replace_to)
|
||||
## dbg(indent=0)
|
||||
|
||||
def SetFont(self, *args, **kwargs):
|
||||
""" Set the font, then recalculate control size, if appropriate. """
|
||||
wx.TextCtrl.SetFont(self, *args, **kwargs)
|
||||
if self._autofit:
|
||||
## dbg('calculated size:', self._CalcSize())
|
||||
self.SetClientSize(self._CalcSize())
|
||||
width = self.GetSize().width
|
||||
height = self.GetBestSize().height
|
||||
## dbg('setting client size to:', (width, height))
|
||||
self.SetSize((width, height))
|
||||
self.SetSizeHints((width, height))
|
||||
|
||||
|
||||
def Clear(self):
|
||||
""" Blanks the current control value by replacing it with the default value."""
|
||||
@@ -324,3 +343,29 @@ class TextCtrl( BaseMaskedTextCtrl, MaskedEditAccessorsMixin ):
|
||||
pass
|
||||
|
||||
|
||||
class PreMaskedTextCtrl( BaseMaskedTextCtrl, MaskedEditAccessorsMixin ):
|
||||
"""
|
||||
This allows us to use XRC subclassing.
|
||||
"""
|
||||
# This should really be wx.EVT_WINDOW_CREATE but it is not
|
||||
# currently delivered for native controls on all platforms, so
|
||||
# we'll use EVT_SIZE instead. It should happen shortly after the
|
||||
# control is created as the control is set to its "best" size.
|
||||
_firstEventType = wx.EVT_SIZE
|
||||
|
||||
def __init__(self):
|
||||
pre = wx.PreTextCtrl()
|
||||
self.PostCreate(pre)
|
||||
self.Bind(self._firstEventType, self.OnCreate)
|
||||
|
||||
|
||||
def OnCreate(self, evt):
|
||||
self.Unbind(self._firstEventType)
|
||||
self._PostInit()
|
||||
|
||||
i=0
|
||||
## CHANGELOG:
|
||||
## ====================
|
||||
## Version 1.1
|
||||
## 1. Added .SetFont() method that properly resizes control
|
||||
## 2. Modified control to support construction via XRC mechanism.
|
||||
|
Reference in New Issue
Block a user