Merge pull request #1201 from RobinD42/fix-issue1198

Fix access to members of transient wx.VisualAttributes

(cherry picked from commit d6324a0578)
This commit is contained in:
Robin Dunn
2019-04-13 16:24:46 -07:00
parent f0e0d80dd8
commit 0378328d45
7 changed files with 89 additions and 9 deletions

View File

@@ -261,17 +261,27 @@ def fixWindowClass(klass, hideVirtuals=True, ignoreProtected=True):
removeVirtuals(klass)
addWindowVirtuals(klass)
if not klass.findItem('GetClassDefaultAttributes'):
klass.addItem(extractors.WigCode("""\
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
"""))
if not ignoreProtected:
for item in klass.allItems():
if isinstance(item, extractors.MethodDef) and item.protection == 'protected':
item.ignore(False)
fixDefaultAttributesMethods(klass)
def fixDefaultAttributesMethods(klass):
if not klass.findItem('GetClassDefaultAttributes'):
m = extractors.MethodDef(
type='wxVisualAttributes', name='GetClassDefaultAttributes',
isStatic=True, protection='public',
items=[extractors.ParamDef(
type='wxWindowVariant', name='variant', default='wxWINDOW_VARIANT_NORMAL')]
)
klass.addItem(m)
if klass.findItem('GetDefaultAttributes'):
klass.find('GetDefaultAttributes').mustHaveApp()
klass.find('GetClassDefaultAttributes').mustHaveApp()
def fixTopLevelWindowClass(klass, hideVirtuals=True, ignoreProtected=True):
@@ -308,6 +318,8 @@ def fixTopLevelWindowClass(klass, hideVirtuals=True, ignoreProtected=True):
if isinstance(item, extractors.MethodDef) and item.protection == 'protected':
item.ignore(False)
fixDefaultAttributesMethods(klass)
def fixSizerClass(klass):