Add virtual dtor for DC classes

This commit is contained in:
Robin Dunn
2018-01-29 14:11:00 -08:00
parent d330ad1b40
commit 8c4dffb091
3 changed files with 7 additions and 2 deletions

View File

@@ -51,6 +51,8 @@ def run():
c.addPublic()
tools.removeVirtuals(c)
c.addDtor('public', True)
# Keep only the wxSize overloads of these
c.find('GetSize').findOverload('wxCoord').ignore()
c.find('GetSizeMM').findOverload('wxCoord').ignore()

View File

@@ -1072,11 +1072,12 @@ private:
{CLASS}& operator=(const {CLASS}&);""".format(CLASS=self.name))
self.addItem(wig)
def addDtor(self, prot='protected'):
def addDtor(self, prot='protected', isVirtual=False):
# add declaration of a destructor to this class
virtual = 'virtual ' if isVirtual else ''
wig = WigCode("""\
{PROT}:
~{CLASS}();""".format(CLASS=self.name, PROT=prot))
{VIRTUAL}~{CLASS}();""".format(VIRTUAL=virtual, CLASS=self.name, PROT=prot))
self.addItem(wig)
def addDefaultCtor(self, prot='protected'):

View File

@@ -182,9 +182,11 @@ class dc_Tests(wtc.WidgetTestCase):
# check ownership
assert wx.siplib.ispyowned(dc)
assert not wx.siplib.isdeleted(dc)
# check the DC's ownership has changed
assert not wx.siplib.ispyowned(dc)
assert wx.siplib.isdeleted(dc)
#---------------------------------------------------------------------------