mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-12-16 01:30:07 +01:00
111 lines
4.7 KiB
Python
111 lines
4.7 KiB
Python
#---------------------------------------------------------------------------
|
|
# Name: etg/propgridadvprops.py
|
|
# Author: Robin Dunn
|
|
#
|
|
# Created: 25-Aug-2016
|
|
# Copyright: (c) 2016-2020 by Total Control Software
|
|
# License: wxWindows License
|
|
#---------------------------------------------------------------------------
|
|
|
|
import etgtools
|
|
import etgtools.tweaker_tools as tools
|
|
|
|
PACKAGE = "wx"
|
|
MODULE = "_propgrid"
|
|
NAME = "propgridadvprops" # 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 = [ 'wxColourPropertyValue',
|
|
'wxFontProperty',
|
|
'wxSystemColourProperty',
|
|
'wxColourProperty',
|
|
'wxCursorProperty',
|
|
'wxImageFileProperty',
|
|
'wxMultiChoiceProperty',
|
|
'wxDateProperty',
|
|
'wxPGSpinCtrlEditor',
|
|
|
|
]
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
c = module.find('wxFontProperty')
|
|
assert isinstance(c, etgtools.ClassDef)
|
|
tools.fixDialogProperty(c)
|
|
|
|
c = module.find('wxMultiChoiceProperty')
|
|
tools.fixDialogProperty(c)
|
|
|
|
# Fix up the ctor taking a wxArrayString to be the one with the easier and
|
|
# expected API
|
|
m = c.find('wxMultiChoiceProperty').findOverload('strings')
|
|
m.find('name').default = 'wxPG_LABEL'
|
|
m.find('strings').default = 'wxArrayString()'
|
|
m.find('strings').name = 'choices'
|
|
m.find('value').default = 'wxArrayString()'
|
|
|
|
|
|
# Switch all wxVariant types to wxPGVariant, so the propgrid-specific
|
|
# version of the MappedType will be used for converting to/from Python
|
|
# objects.
|
|
for item in module.allItems():
|
|
if hasattr(item, 'type') and 'wxVariant' in item.type:
|
|
item.type = item.type.replace('wxVariant', 'wxPGVariant')
|
|
|
|
# Switch all StringToValue and IntToValue methods to return the variant
|
|
# value instead of using it as a parameter.
|
|
for item in module.allItems():
|
|
if (item.name in ['StringToValue', 'IntToValue'] and item.findItem('variant')):
|
|
item.find('variant').out = True
|
|
|
|
|
|
# Deprecated aliases for the various helper classes in Classic
|
|
module.addPyCode("""\
|
|
PyArrayStringProperty = wx.deprecated(ArrayStringProperty, "Use ArrayStringProperty instead.")
|
|
PyChoiceEditor = wx.deprecated(PGChoiceEditor, "Use PGChoiceEditor instead.")
|
|
PyColourProperty = wx.deprecated(ColourProperty, "Use ColourProperty instead.")
|
|
PyComboBoxEditor = wx.deprecated(PGComboBoxEditor, "Use PGComboBoxEditor instead.")
|
|
PyEditEnumProperty = wx.deprecated(EditEnumProperty, "Use PGEditEnumProperty instead.")
|
|
PyEditor = wx.deprecated(PGEditor, "Use PGEditor instead.")
|
|
PyEditorDialogAdapter = wx.deprecated(PGEditorDialogAdapter, "Use PGEditorDialogAdapter instead.")
|
|
PyEnumProperty = wx.deprecated(EnumProperty, "Use EnumProperty instead.")
|
|
PyFileProperty = wx.deprecated(FileProperty, "Use FileProperty instead.")
|
|
PyFlagsProperty = wx.deprecated(FlagsProperty, "Use FlagsProperty instead.")
|
|
PyFloatProperty = wx.deprecated(FloatProperty, "Use FloatProperty instead.")
|
|
PyFontProperty = wx.deprecated(FontProperty, "Use FontProperty instead.")
|
|
PyIntProperty = wx.deprecated(IntProperty, "Use IntProperty instead.")
|
|
PyLongStringProperty = wx.deprecated(LongStringProperty, "Use LongStringProperty instead.")
|
|
PyProperty = wx.deprecated(PGProperty, "Use PGProperty instead.")
|
|
PyStringProperty = wx.deprecated(StringProperty, "Use StringProperty instead.")
|
|
PySystemColourProperty = wx.deprecated(SystemColourProperty, "Use SystemColourProperty instead.")
|
|
PyTextCtrlEditor = wx.deprecated(PGTextCtrlEditor, "Use PGTextCtrlEditor instead.")
|
|
PyUIntProperty = wx.deprecated(UIntProperty, "Use UIntProperty instead.")
|
|
""")
|
|
|
|
module.addPyFunction('RegisterEditor', '(editor, editorName)',
|
|
deprecated='Use PropertyGrid.DoRegisterEditor instead',
|
|
body='return PropertyGrid.DoRegisterEditorClass(editor, editorName)',
|
|
)
|
|
|
|
|
|
#-----------------------------------------------------------------
|
|
tools.doCommonTweaks(module)
|
|
tools.runGenerators(module)
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
if __name__ == '__main__':
|
|
run()
|
|
|