mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-04 19:10:09 +01:00
Add magic methods to wx.Size and add unit tests for wx.Size. Also a bit of related refactoring and cleanup.
git-svn-id: https://svn.wxwidgets.org/svn/wx/sandbox/trunk/Phoenix@66147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -326,7 +326,7 @@ from %s import *
|
||||
stream.write(')')
|
||||
if prop.briefDoc:
|
||||
stream.write(' // %s' % prop.briefDoc)
|
||||
stream.write('\n')
|
||||
stream.write('\n\n')
|
||||
|
||||
|
||||
def generateMethod(self, method, stream, indent):
|
||||
|
||||
@@ -54,3 +54,39 @@ def createPyArgsStrings(node):
|
||||
items that can be used as part of the docstring.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def convertTwoIntegersTemplate(CLASS):
|
||||
return """\
|
||||
// is it just a typecheck?
|
||||
if (!sipIsErr) {{
|
||||
if (sipCanConvertToType(sipPy, sipType_{CLASS}, SIP_NO_CONVERTORS))
|
||||
return 1;
|
||||
|
||||
if (PySequence_Check(sipPy) && PySequence_Size(sipPy) == 2) {{
|
||||
int rval = 1;
|
||||
PyObject* o1 = PySequence_ITEM(sipPy, 0);
|
||||
PyObject* o2 = PySequence_ITEM(sipPy, 1);
|
||||
if (!PyNumber_Check(o1) || !PyNumber_Check(o2))
|
||||
rval = 0;
|
||||
Py_DECREF(o1);
|
||||
Py_DECREF(o2);
|
||||
return rval;
|
||||
}}
|
||||
return 0;
|
||||
}}
|
||||
|
||||
// otherwise do the conversion
|
||||
if (PySequence_Check(sipPy)) {{
|
||||
PyObject* o1 = PySequence_ITEM(sipPy, 0);
|
||||
PyObject* o2 = PySequence_ITEM(sipPy, 1);
|
||||
*sipCppPtr = new {CLASS}(PyInt_AsLong(o1), PyInt_AsLong(o2));
|
||||
Py_DECREF(o1);
|
||||
Py_DECREF(o2);
|
||||
return sipGetState(sipTransferObj);
|
||||
}}
|
||||
*sipCppPtr = reinterpret_cast<{CLASS}*>(sipConvertToType(
|
||||
sipPy, sipType_{CLASS}, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr));
|
||||
return 0;
|
||||
""".format(**locals())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user