diff --git a/docs/sphinx/itemToModuleMap.json b/docs/sphinx/itemToModuleMap.json index 3455902b..592d1096 100644 --- a/docs/sphinx/itemToModuleMap.json +++ b/docs/sphinx/itemToModuleMap.json @@ -2557,6 +2557,7 @@ "PGArrayEditorDialog":"wx.propgrid.", "PGArrayStringEditorDialog":"wx.propgrid.", "PGAttributeStorage":"wx.propgrid.", +"PGCachedString":"wx.propgrid.", "PGCell":"wx.propgrid.", "PGCellData":"wx.propgrid.", "PGCellRenderer":"wx.propgrid.", @@ -2589,6 +2590,7 @@ "PGPropArgCls":"wx.propgrid.", "PGProperty":"wx.propgrid.", "PGPropertyFlags":"wx.propgrid.", +"PGSortCallback":"wx.propgrid.", "PGSpinCtrlEditor":"wx.propgrid.", "PGTextCtrlAndButtonEditor":"wx.propgrid.", "PGTextCtrlEditor":"wx.propgrid.", @@ -2607,15 +2609,25 @@ "PG_ACTION_PREV_PROPERTY":"wx.propgrid.", "PG_ALPHABETIC_MODE":"wx.propgrid.", "PG_AUTO_SORT":"wx.propgrid.", +"PG_BASE_DEC":"wx.propgrid.", +"PG_BASE_HEX":"wx.propgrid.", +"PG_BASE_HEXL":"wx.propgrid.", +"PG_BASE_OCT":"wx.propgrid.", "PG_BOLD_MODIFIED":"wx.propgrid.", "PG_CAPRECTXMARGIN":"wx.propgrid.", "PG_CAPRECTYMARGIN":"wx.propgrid.", +"PG_COLOUR":"wx.propgrid.", +"PG_COLOUR_BLACK":"wx.propgrid.", "PG_COLOUR_CUSTOM":"wx.propgrid.", "PG_COLOUR_UNSPECIFIED":"wx.propgrid.", "PG_COLOUR_WEB_BASE":"wx.propgrid.", +"PG_COMPOSITE_FRAGMENT":"wx.propgrid.", "PG_CUSTOM_IMAGE_SPACINGY":"wx.propgrid.", +"PG_DEFAULT_IMAGE_SIZE":"wx.propgrid.", "PG_DEFAULT_STYLE":"wx.propgrid.", "PG_DESCRIPTION":"wx.propgrid.", +"PG_DONT_RECURSE":"wx.propgrid.", +"PG_EDITABLE_VALUE":"wx.propgrid.", "PG_EX_AUTO_UNSPECIFIED_VALUES":"wx.propgrid.", "PG_EX_ENABLE_TLP_TRACKING":"wx.propgrid.", "PG_EX_HELP_AS_TOOLTIPS":"wx.propgrid.", @@ -2629,8 +2641,13 @@ "PG_EX_TOOLBAR_SEPARATOR":"wx.propgrid.", "PG_EX_WINDOW_STYLES":"wx.propgrid.", "PG_EX_WRITEONLY_BUILTIN_ATTRIBUTES":"wx.propgrid.", +"PG_FORCE":"wx.propgrid.", +"PG_FULL_VALUE":"wx.propgrid.", +"PG_GETPROPERTYVALUES_FLAGS":"wx.propgrid.", "PG_HIDE_CATEGORIES":"wx.propgrid.", "PG_HIDE_MARGIN":"wx.propgrid.", +"PG_INC_ATTRIBUTES":"wx.propgrid.", +"PG_INVALID_VALUE":"wx.propgrid.", "PG_ITERATE_ALL":"wx.propgrid.", "PG_ITERATE_ALL_PARENTS":"wx.propgrid.", "PG_ITERATE_ALL_PARENTS_RECURSIVELY":"wx.propgrid.", @@ -2645,9 +2662,19 @@ "PG_ITERATOR_FLAGS_ALL":"wx.propgrid.", "PG_ITERATOR_MASK_OP_ITEM":"wx.propgrid.", "PG_ITERATOR_MASK_OP_PARENT":"wx.propgrid.", +"PG_KEEP_STRUCTURE":"wx.propgrid.", "PG_KEYBOARD_ACTIONS":"wx.propgrid.", +"PG_LABEL":"wx.propgrid.", +"PG_LABEL_STRING":"wx.propgrid.", "PG_LIMITED_EDITING":"wx.propgrid.", +"PG_MISC_ARG_FLAGS":"wx.propgrid.", "PG_NO_INTERNAL_BORDER":"wx.propgrid.", +"PG_NULL_BITMAP":"wx.propgrid.", +"PG_PREFIX_0x":"wx.propgrid.", +"PG_PREFIX_DOLLAR_SIGN":"wx.propgrid.", +"PG_PREFIX_NONE":"wx.propgrid.", +"PG_PROGRAMMATIC_VALUE":"wx.propgrid.", +"PG_PROPERTY_SPECIFIC":"wx.propgrid.", "PG_PROPERTY_VALIDATION_ERROR_MESSAGE":"wx.propgrid.", "PG_PROPERTY_VALIDATION_SATURATE":"wx.propgrid.", "PG_PROPERTY_VALIDATION_WRAP":"wx.propgrid.", @@ -2680,12 +2707,23 @@ "PG_PROP_USE_CHECKBOX":"wx.propgrid.", "PG_PROP_USE_DCC":"wx.propgrid.", "PG_PROP_WAS_MODIFIED":"wx.propgrid.", +"PG_RECURSE":"wx.propgrid.", +"PG_RECURSE_STARTS":"wx.propgrid.", +"PG_REPORT_ERROR":"wx.propgrid.", +"PG_SETVALUE_FLAGS":"wx.propgrid.", +"PG_SETVAL_AGGREGATED":"wx.propgrid.", +"PG_SETVAL_BY_USER":"wx.propgrid.", +"PG_SETVAL_FROM_PARENT":"wx.propgrid.", +"PG_SETVAL_REFRESH_EDITOR":"wx.propgrid.", +"PG_SORT_TOP_LEVEL_ONLY":"wx.propgrid.", "PG_SPLITTER_AUTO_CENTER":"wx.propgrid.", "PG_STATIC_LAYOUT":"wx.propgrid.", "PG_STATIC_SPLITTER":"wx.propgrid.", "PG_TOOLBAR":"wx.propgrid.", "PG_TOOLTIPS":"wx.propgrid.", +"PG_UNEDITABLE_COMPOSITE_FRAGMENT":"wx.propgrid.", "PG_VALIDATION_FAILURE_BEHAVIOR_FLAGS":"wx.propgrid.", +"PG_VALUE_IS_CURRENT":"wx.propgrid.", "PG_VFB_BEEP":"wx.propgrid.", "PG_VFB_DEFAULT":"wx.propgrid.", "PG_VFB_MARK_CELL":"wx.propgrid.", @@ -2825,6 +2863,7 @@ "PropertyGridIteratorBase":"wx.propgrid.", "PropertyGridManager":"wx.propgrid.", "PropertyGridManagerNameStr":"wx.propgrid.", +"PropertyGridNameStr":"wx.propgrid.", "PropertyGridPage":"wx.propgrid.", "PropertyGridPageState":"wx.propgrid.", "PropertySheetDialog":"wx.adv.", diff --git a/etg/_propgrid.py b/etg/_propgrid.py index 8467a263..19930a08 100644 --- a/etg/_propgrid.py +++ b/etg/_propgrid.py @@ -23,7 +23,8 @@ ITEMS = [ ] # The list of other ETG scripts and back-end generator modules that are # included as part of this module. These should all be items that are put in # the wxWidgets "propgrid" library in a multi-lib build. -INCLUDES = [ 'propgridproperty', +INCLUDES = [ 'propgriddefs', + 'propgridproperty', 'propgrideditors', 'propgridpagestate', 'propgridiface', @@ -60,6 +61,8 @@ def run(): module.addHeaderCode('#include ') + #module.addItem(etgtools.DefineDef(name='wxPG_INVALID_VALUE', value='INT_MAX')) + module.addInclude(INCLUDES) #----------------------------------------------------------------- diff --git a/etg/propgrid.py b/etg/propgrid.py index 1a71fe8a..a2f0dc91 100644 --- a/etg/propgrid.py +++ b/etg/propgrid.py @@ -33,7 +33,6 @@ def run(): # Tweak the parsed meta objects in the module object as needed for # customizing the generated code and docstrings. - c = module.find('wxPGValidationInfo') assert isinstance(c, etgtools.ClassDef) @@ -42,6 +41,7 @@ def run(): assert isinstance(c, etgtools.ClassDef) c.bases.remove('wxScrollHelper') tools.fixWindowClass(c) + module.addGlobalStr('wxPropertyGridNameStr', c) # TODO: provide a way to use a Python callable as a sort function c.find('GetSortFunction').ignore() diff --git a/etg/propgriddefs.py b/etg/propgriddefs.py new file mode 100644 index 00000000..279b3770 --- /dev/null +++ b/etg/propgriddefs.py @@ -0,0 +1,60 @@ +#--------------------------------------------------------------------------- +# Name: etg/propgriddefs.py +# Author: Robin Dunn +# +# Created: 14-Feb-2017 +# Copyright: (c) 2017 by Total Control Software +# License: wxWindows License +#--------------------------------------------------------------------------- + +import etgtools +import etgtools.tweaker_tools as tools + +PACKAGE = "wx" +MODULE = "_propgrid" +NAME = "propgriddefs" # Base name of the file to generate to for this script +DOCSTRING = "" + +# The classes and/or the basename of the Doxygen XML files to be processed by +# this script. +ITEMS = [ 'propgriddefs_8h.xml', + ] + +#--------------------------------------------------------------------------- + +def run(): + # Parse the XML file(s) building a collection of Extractor objects + module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING) + etgtools.parseDoxyXML(module, ITEMS) + + #----------------------------------------------------------------- + # Tweak the parsed meta objects in the module object as needed for + # customizing the generated code and docstrings. + + module.find('wxPG_LABEL').ignore() + module.find('wxPG_LABEL_STRING').ignore() + module.find('wxPG_NULL_BITMAP').ignore() + module.find('wxPG_COLOUR_BLACK').ignore() + module.find('wxPG_COLOUR').ignore() + module.find('wxPG_DEFAULT_IMAGE_SIZE').ignore() + module.find('wxPGSortCallback').ignore() + + module.addPyCode( + code="""\ + PG_LABEL = "@!" + PG_LABEL_STRING = PG_LABEL + PG_NULL_BITMAP = wx.NullBitmap + PG_COLOUR_BLACK = wx.BLACK + PG_DEFAULT_IMAGE_SIZE = wx.Size(-1, -1) + """, + order=15) + + #----------------------------------------------------------------- + tools.doCommonTweaks(module) + tools.runGenerators(module) + + +#--------------------------------------------------------------------------- +if __name__ == '__main__': + run() + diff --git a/etg/propgridproperty.py b/etg/propgridproperty.py index a5b980d4..057b5755 100644 --- a/etg/propgridproperty.py +++ b/etg/propgridproperty.py @@ -45,6 +45,10 @@ def run(): c = module.find('wxPGCellData') assert isinstance(c, etgtools.ClassDef) c.find('~wxPGCellData').ignore(False) + c.bases = ['wxRefCounter'] + + c = module.find('wxPGCellRenderer') + c.bases = ['wxRefCounter'] c = module.find('wxPGAttributeStorage') @@ -64,13 +68,14 @@ def run(): c = module.find('wxPGChoicesData') tools.ignoreConstOverloads(c) - #c.addDtor() + c.bases = ['wxRefCounter'] c.find('~wxPGChoicesData').ignore(False) c = module.find('wxPGChoices') c.find('wxPGChoices').findOverload('wxChar **').ignore() tools.ignoreConstOverloads(c) + c.find('operator[]').ignore() # Ignore some string constants (#defines) coming from dox, and add them # back in Python code. They are wchar_t* values and this seemed the diff --git a/ext/wxWidgets b/ext/wxWidgets index dc7acca2..44d465a2 160000 --- a/ext/wxWidgets +++ b/ext/wxWidgets @@ -1 +1 @@ -Subproject commit dc7acca2cd4c87fb2541df17d8b4d80e0f607cc8 +Subproject commit 44d465a26babb335bcda618795d54d959149dea9 diff --git a/unittests/test_propgriddefs.py b/unittests/test_propgriddefs.py new file mode 100644 index 00000000..ba6c6774 --- /dev/null +++ b/unittests/test_propgriddefs.py @@ -0,0 +1,51 @@ +import unittest +from unittests import wtc +import wx +import wx.propgrid as pg + +#--------------------------------------------------------------------------- + +class propgriddefs_Tests(wtc.WidgetTestCase): + + def test_propgriddefs1(self): + pg.PG_INVALID_VALUE + pg.PG_DONT_RECURSE + pg.PG_BASE_OCT + pg.PG_BASE_DEC + pg.PG_BASE_HEX + pg.PG_BASE_HEXL + pg.PG_PREFIX_NONE + pg.PG_PREFIX_0x + pg.PG_PREFIX_DOLLAR_SIGN + + pg.PG_KEEP_STRUCTURE + pg.PG_RECURSE + pg.PG_INC_ATTRIBUTES + pg.PG_RECURSE_STARTS + pg.PG_FORCE + pg.PG_SORT_TOP_LEVEL_ONLY + + pg.PG_FULL_VALUE + pg.PG_REPORT_ERROR + pg.PG_PROPERTY_SPECIFIC + pg.PG_EDITABLE_VALUE + pg.PG_COMPOSITE_FRAGMENT + pg.PG_UNEDITABLE_COMPOSITE_FRAGMENT + pg.PG_VALUE_IS_CURRENT + pg.PG_PROGRAMMATIC_VALUE + + pg.PG_SETVAL_REFRESH_EDITOR + pg.PG_SETVAL_AGGREGATED + pg.PG_SETVAL_FROM_PARENT + pg.PG_SETVAL_BY_USER + + pg.PG_LABEL + pg.PG_LABEL_STRING + pg.PG_NULL_BITMAP + pg.PG_COLOUR_BLACK + pg.PG_DEFAULT_IMAGE_SIZE + +#--------------------------------------------------------------------------- + +if __name__ == '__main__': + unittest.main()