diff options
author | John Ehresman <jpe@wingware.com> | 2013-06-10 20:59:01 -0400 |
---|---|---|
committer | John Ehresman <jpe@wingware.com> | 2013-06-10 20:59:01 -0400 |
commit | 5baa78cf911281442341a406b6f53cbef577561c (patch) | |
tree | 80882138a3a3e7393da1702125ab7e76985aeb9b | |
parent | 94ecb8c5020fb77da31a4d0d4ba2f4aac6c5ee81 (diff) | |
download | scintilla-mirror-5baa78cf911281442341a406b6f53cbef577561c.tar.gz |
Define custom get_ / set_ margin_mask_n to treat values as a bitmask
-rw-r--r-- | qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template b/qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template index 4c2c897a2..a26b04352 100644 --- a/qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template +++ b/qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template @@ -11,6 +11,33 @@ <object-type name="ScintillaEdit"> <!-- ++Autogenerated start of section automatically generated from Scintilla.iface --> <!-- ~~Autogenerated end of section automatically generated from Scintilla.iface --> + + <!-- Custom implementation of get and set_margin_mask_n: mask is defined + as an int but is really a bitfield and the numeric value can be + greater than max value of an int --> + <modify-function signature="set_margin_mask_n(int, int)"> + <inject-code> + int margin = PyInt_AsLong(%PYARG_1); + if (margin == -1 && PyErr_Occurred()) + return NULL; + unsigned long mask = PyInt_AsUnsignedLongMask(%PYARG_2); + if (margin == -1 && PyErr_Occurred()) + return NULL; + + %CPPSELF->set_margin_mask_n(margin, static_cast<int>(mask)); + Py_RETURN_NONE; + </inject-code> + </modify-function> + <modify-function signature="get_margin_mask_n(int) const"> + <inject-code> + int margin = PyInt_AsLong(%PYARG_1); + if (margin == -1 && PyErr_Occurred()) + return NULL; + unsigned int mask = (unsigned int)%CPPSELF->get_margin_mask_n(margin); + %PYARG_0 = PyInt_FromSize_t(mask); + </inject-code> + </modify-function> + </object-type> <object-type name="ScintillaDocument" /> </typesystem> |