diff --git a/docs/sphinx/rest_substitutions/snippets/python/converted/wx.propgrid.PGProperty.ChangeFlag.1.py b/docs/sphinx/rest_substitutions/snippets/python/converted/wx.propgrid.PGProperty.ChangeFlag.1.py new file mode 100644 index 00000000..5ee4f21d --- /dev/null +++ b/docs/sphinx/rest_substitutions/snippets/python/converted/wx.propgrid.PGProperty.ChangeFlag.1.py @@ -0,0 +1,2 @@ + + Enable(False) diff --git a/etg/propgrid.py b/etg/propgrid.py index 34471b2f..60cdb17c 100644 --- a/etg/propgrid.py +++ b/etg/propgrid.py @@ -41,7 +41,7 @@ def run(): c = module.find('wxPropertyGrid') assert isinstance(c, etgtools.ClassDef) - c.bases.remove('wxScrollHelper') + c.bases[0] = 'wxControl' # sip can't handle wxScrolled. See also below. tools.fixWindowClass(c) module.addGlobalStr('wxPropertyGridNameStr', c) @@ -75,6 +75,19 @@ def run(): if hasattr(item, 'type') and item.type == 'wxPGPropArg': item.type = 'const wxPGPropArgCls &' + # We can't let sip create a wxScrolledControl via a typedef because of the + # differences in the parameters of the Create methods, so instead let's just + # copy the method definitions from wxScrolled<> here and let the compiler + # sort it out. + import scrolwin + mod = scrolwin.parseAndTweakModule() + klass = mod.find('wxScrolled') + newItems = [item for item in klass.items + if not c.findItem(item.name) and not item.isCtor] + c.items.extend(newItems) + + + c = module.find('wxPropertyGridEvent') tools.fixEventClass(c) diff --git a/etg/propgridmanager.py b/etg/propgridmanager.py index 74f463cf..3dfe0adc 100644 --- a/etg/propgridmanager.py +++ b/etg/propgridmanager.py @@ -37,7 +37,6 @@ def run(): assert isinstance(c, etgtools.ClassDef) tools.ignoreConstOverloads(c) - module.addGlobalStr('wxPropertyGridManagerNameStr', c) c = module.find('wxPropertyGridManager') @@ -61,6 +60,10 @@ def run(): PropertyGridManager.__init__ = _PropertyGridManager__init__ """) + # Make sure sip knows there is an implementation of this method + c.addItem(etgtools.WigCode("""\ + virtual void RefreshProperty( wxPGProperty* p ); + """)) # wxPGPropArg is a typedef for "const wxPGPropArgCls&" so having the diff --git a/etg/scrolwin.py b/etg/scrolwin.py index aa3f7a0f..8ea64c65 100644 --- a/etg/scrolwin.py +++ b/etg/scrolwin.py @@ -24,7 +24,7 @@ ITEMS = [ 'wxScrolled' ] #--------------------------------------------------------------------------- -def run(): +def parseAndTweakModule(): # Parse the XML file(s) building a collection of Extractor objects module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING) etgtools.parseDoxyXML(module, ITEMS) @@ -132,10 +132,13 @@ def run(): tools.fixWindowClass(klass) module.insertItemAfter(td, klass) - module.addPyCode("PyScrolledWindow = wx.deprecated(ScrolledWindow, 'Use ScrolledWindow instead.')") - #----------------------------------------------------------------- + return module + +#----------------------------------------------------------------- +def run(): + module = parseAndTweakModule() tools.doCommonTweaks(module) tools.runGenerators(module)