Changes to how overridable C++ methods are virtualized for Python.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2006-02-07 03:56:44 +00:00
parent e4c37d10dd
commit a7a0141800
25 changed files with 890 additions and 766 deletions

View File

@@ -11,15 +11,6 @@ class MyCellEditor(gridlib.PyGridCellEditor):
grid editors. All the methods that can be overridden are shown here. The
ones that must be overridden are marked with "*Must Override*" in the
docstring.
Notice that in order to call the base class version of these special
methods we use the method name preceded by "base_". This is because these
methods are "virtual" in C++ so if we try to call wx.GridCellEditor.Create
for example, then when the wxPython extension module tries to call
ptr->Create(...) then it actually calls the derived class version which
looks up the method in this class and calls it, causing a recursion loop.
If you don't understand any of this, don't worry, just call the "base_"
version instead.
"""
def __init__(self, log):
self.log = log
@@ -58,7 +49,7 @@ class MyCellEditor(gridlib.PyGridCellEditor):
to set colours or fonts for the control.
"""
self.log.write("MyCellEditor: Show(self, %s, %s)\n" % (show, attr))
self.base_Show(show, attr)
super(MyCellEditor, self).Show(show, attr)
def PaintBackground(self, rect, attr):
@@ -126,7 +117,7 @@ class MyCellEditor(gridlib.PyGridCellEditor):
self.log.write("MyCellEditor: IsAcceptedKey: %d\n" % (evt.GetKeyCode()))
## We can ask the base class to do it
#return self.base_IsAcceptedKey(evt)
#return super(MyCellEditor, self).IsAcceptedKey(evt)
# or do it ourselves
return (not (evt.ControlDown() or evt.AltDown()) and
@@ -172,7 +163,7 @@ class MyCellEditor(gridlib.PyGridCellEditor):
def Destroy(self):
"""final cleanup"""
self.log.write("MyCellEditor: Destroy\n")
self.base_Destroy()
super(MyCellEditor, self).Destroy()
def Clone(self):