mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-06 20:10:08 +01:00
Add wxPosition and variable scrolled windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@70079 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -47,6 +47,7 @@ INCLUDES = [ 'defs',
|
||||
'object',
|
||||
'gdicmn',
|
||||
'geometry',
|
||||
'position',
|
||||
|
||||
'stream',
|
||||
|
||||
@@ -150,6 +151,7 @@ INCLUDES = [ 'defs',
|
||||
'spinctrl',
|
||||
'tglbtn',
|
||||
'statusbar',
|
||||
'vscroll',
|
||||
]
|
||||
|
||||
|
||||
|
||||
69
etg/position.py
Normal file
69
etg/position.py
Normal file
@@ -0,0 +1,69 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Name: etg/position.py
|
||||
# Author: Robin Dunn
|
||||
#
|
||||
# Created: 20-Dec-2011
|
||||
# Copyright: (c) 2011 by Total Control Software
|
||||
# License: wxWindows License
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
import etgtools
|
||||
import etgtools.tweaker_tools as tools
|
||||
|
||||
PACKAGE = "wx"
|
||||
MODULE = "_core"
|
||||
NAME = "position" # 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 = [ "wxPosition", ]
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
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('wxPosition')
|
||||
assert isinstance(c, etgtools.ClassDef)
|
||||
|
||||
# (r,c) --> wxPosition typemap
|
||||
c.convertFromPyObject = tools.convertTwoIntegersTemplate('wxPosition')
|
||||
|
||||
c.addCppMethod('PyObject*', 'Get', '()', """\
|
||||
return sipBuildResult(0, "(ii)", self->GetRow(), self->GetCol());
|
||||
""",
|
||||
pyArgsString="() -> (row,col)",
|
||||
briefDoc="Return the row and col properties as a tuple.")
|
||||
|
||||
# Add sequence protocol methods and other goodies
|
||||
c.addPyMethod('__str__', '(self)', 'return str(self.Get())')
|
||||
c.addPyMethod('__repr__', '(self)', 'return "wx.Position"+str(self.Get())')
|
||||
c.addPyMethod('__len__', '(self)', 'return len(self.Get())')
|
||||
c.addPyMethod('__nonzero__', '(self)', 'return self.Get() != (0,0)')
|
||||
c.addPyMethod('__reduce__', '(self)', 'return (Position, self.Get())')
|
||||
c.addPyMethod('__getitem__', '(self, idx)', 'return self.Get()[idx]')
|
||||
c.addPyMethod('__setitem__', '(self, idx, val)',
|
||||
"""\
|
||||
if idx == 0: self.Row = val
|
||||
elif idx == 1: self.Col = val
|
||||
else: raise IndexError
|
||||
""")
|
||||
c.addPyCode('Position.__safe_for_unpickling__ = True')
|
||||
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
tools.doCommonTweaks(module)
|
||||
tools.runGenerators(module)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
if __name__ == '__main__':
|
||||
run()
|
||||
|
||||
101
etg/vscroll.py
Normal file
101
etg/vscroll.py
Normal file
@@ -0,0 +1,101 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Name: etg/vscrol.py
|
||||
# Author: Robin Dunn
|
||||
#
|
||||
# Created: 20-Dec-2011
|
||||
# Copyright: (c) 2011 by Total Control Software
|
||||
# License: wxWindows License
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
import etgtools
|
||||
import etgtools.tweaker_tools as tools
|
||||
|
||||
PACKAGE = "wx"
|
||||
MODULE = "_core"
|
||||
NAME = "vscroll" # 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 = [ "wxVarScrollHelperBase",
|
||||
"wxVarVScrollHelper",
|
||||
"wxVarHScrollHelper",
|
||||
"wxVarHVScrollHelper",
|
||||
"wxVScrolledWindow",
|
||||
"wxHScrolledWindow",
|
||||
"wxHVScrolledWindow",
|
||||
]
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
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('wxVarScrollHelperBase')
|
||||
assert isinstance(c, etgtools.ClassDef)
|
||||
c.find('OnGetUnitsSizeHint').ignore(False)
|
||||
c.find('EstimateTotalSize').ignore(False)
|
||||
c.find('OnGetUnitSize').ignore(False)
|
||||
|
||||
|
||||
# SIP apparently has some issues when generating code for calling
|
||||
# virtuals in the base class when there is diamond inheritance going on,
|
||||
# it seems to confuse the compiler. By telling SIP that the methods are
|
||||
# reimplemented in the branches of the diamond (which they are in this
|
||||
# case) then that version of the generated code works better. We'll add
|
||||
# this block of declarations to each of the two helper classes below.
|
||||
baseVirtuals = """\
|
||||
virtual void OnGetUnitsSizeHint(size_t unitMin, size_t unitMax) const;
|
||||
virtual wxCoord EstimateTotalSize() const;
|
||||
virtual int GetNonOrientationTargetSize() const;
|
||||
virtual wxOrientation GetOrientation() const;
|
||||
virtual int GetOrientationTargetSize() const;
|
||||
virtual wxCoord OnGetUnitSize(size_t unit) const;
|
||||
"""
|
||||
|
||||
c = module.find('wxVarVScrollHelper')
|
||||
c.find('EstimateTotalHeight').ignore(False)
|
||||
c.find('OnGetRowsHeightHint').ignore(False)
|
||||
c.find('OnGetRowHeight').ignore(False)
|
||||
c.addItem(etgtools.WigCode(baseVirtuals, protection='protected'))
|
||||
c.find('RefreshRows.from').name = 'from_'
|
||||
c.find('RefreshRows.to').name = 'to_'
|
||||
|
||||
c = module.find('wxVarHScrollHelper')
|
||||
c.find('EstimateTotalWidth').ignore(False)
|
||||
c.find('OnGetColumnsWidthHint').ignore(False)
|
||||
c.find('OnGetColumnWidth').ignore(False)
|
||||
c.addItem(etgtools.WigCode(baseVirtuals, protection='protected'))
|
||||
c.find('RefreshColumns.from').name = 'from_'
|
||||
c.find('RefreshColumns.to').name = 'to_'
|
||||
|
||||
|
||||
|
||||
c = module.find('wxVarHVScrollHelper')
|
||||
|
||||
c = module.find('wxVScrolledWindow')
|
||||
tools.fixWindowClass(c)
|
||||
|
||||
c = module.find('wxHScrolledWindow')
|
||||
tools.fixWindowClass(c)
|
||||
|
||||
c = module.find('wxHVScrolledWindow')
|
||||
tools.fixWindowClass(c)
|
||||
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
tools.doCommonTweaks(module)
|
||||
tools.runGenerators(module)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
if __name__ == '__main__':
|
||||
run()
|
||||
|
||||
Reference in New Issue
Block a user