mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-12-16 09:40:07 +01:00
102 lines
3.9 KiB
Python
102 lines
3.9 KiB
Python
#---------------------------------------------------------------------------
|
|
# Name: etg/axbase.py
|
|
# Author: Robin Dunn
|
|
#
|
|
# Created: 13-May-2016
|
|
# Copyright: (c) 2016-2020 by Total Control Software
|
|
# License: wxWindows License
|
|
#---------------------------------------------------------------------------
|
|
|
|
import etgtools
|
|
import etgtools.tweaker_tools as tools
|
|
from etgtools import (ClassDef, MethodDef, ParamDef, TypedefDef)
|
|
|
|
PACKAGE = "wx"
|
|
MODULE = "_msw"
|
|
NAME = "axbase" # 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 = [ ]
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
def run():
|
|
# Parse the XML file(s) building a collection of Extractor objects
|
|
module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING)
|
|
etgtools.parseDoxyXML(module, ITEMS)
|
|
|
|
#-----------------------------------------------------------------
|
|
# The wxPyAxBaseWindow class does not come from the parsed Doxygen xml,
|
|
# instead it is manufactured entirely in this ETG script. We're doing it
|
|
# here instead of in a raw .sip file so we can run the generators on it
|
|
# and get things like documentation and .pyi files generated like any
|
|
# normal class.
|
|
|
|
# First, output some C++ code
|
|
module.addHeaderCode("""\
|
|
class wxPyAxBaseWindow : public wxWindow
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(wxPyAxBaseWindow)
|
|
public:
|
|
wxPyAxBaseWindow(wxWindow* parent, const wxWindowID id=-1,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxPanelNameStr)
|
|
: wxWindow(parent, id, pos, size, style, name) {}
|
|
wxPyAxBaseWindow() : wxWindow() {}
|
|
virtual bool MSWTranslateMessage(WXMSG* msg)
|
|
{
|
|
return wxWindow::MSWTranslateMessage(msg);
|
|
}
|
|
};
|
|
""")
|
|
module.addCppCode("""\
|
|
IMPLEMENT_DYNAMIC_CLASS(wxPyAxBaseWindow, wxWindow);
|
|
""")
|
|
|
|
# Now create the extractor objects that will be run through the generators
|
|
module.addItem(TypedefDef(type='void', name='WXMSG'))
|
|
|
|
cls = ClassDef(name='wxPyAxBaseWindow', bases=['wxWindow'],
|
|
briefDoc="""\
|
|
A Window class for use with ActiveX controls.
|
|
|
|
This Window class exposes some low-level Microsoft Windows
|
|
specific methods which can be overridden in Python. Intended for
|
|
use as an ActiveX container, but could also be useful
|
|
elsewhere.""",
|
|
items=[
|
|
MethodDef(
|
|
name='wxPyAxBaseWindow', isCtor=True, items=[
|
|
ParamDef(type='wxWindow*', name='parent'),
|
|
ParamDef(type='const wxWindowID', name='id', default='-1'),
|
|
ParamDef(type='const wxPoint&', name='pos', default='wxDefaultPosition'),
|
|
ParamDef(type='const wxSize&', name='size', default='wxDefaultSize'),
|
|
ParamDef(type='long', name='style', default='0'),
|
|
ParamDef(type='const wxString&', name='name', default='wxPanelNameStr'),
|
|
],
|
|
overloads=[
|
|
MethodDef(
|
|
name='wxPyAxBaseWindow', isCtor=True),
|
|
]),
|
|
|
|
MethodDef(type='bool', name='MSWTranslateMessage', isVirtual=True, items=[
|
|
ParamDef(type='WXMSG*', name='msg')
|
|
])
|
|
])
|
|
|
|
module.addItem(cls)
|
|
|
|
#-----------------------------------------------------------------
|
|
tools.doCommonTweaks(module)
|
|
tools.runGenerators(module)
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
if __name__ == '__main__':
|
|
run()
|
|
|