diff options
Diffstat (limited to 'libshiboken')
-rw-r--r-- | libshiboken/sbkenum.cpp | 12 | ||||
-rw-r--r-- | libshiboken/sbkenum.h | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libshiboken/sbkenum.cpp b/libshiboken/sbkenum.cpp index 39ffb34..c2f6ce0 100644 --- a/libshiboken/sbkenum.cpp +++ b/libshiboken/sbkenum.cpp @@ -550,6 +550,18 @@ long int getValue(PyObject* enumItem) return reinterpret_cast<SbkEnumObject*>(enumItem)->ob_value; } +void setTypeConverter(PyTypeObject* enumType, SbkConverter* converter) +{ + //reinterpret_cast<SbkEnumType*>(enumType)->converter = converter; + SBK_CONVERTER(enumType) = converter; +} + +SbkConverter* getTypeConverter(PyTypeObject* enumType) +{ + //return reinterpret_cast<SbkEnumType*>(enumType)->converter; + return SBK_CONVERTER(enumType); +} + } // namespace Enum DeclaredEnumTypes& DeclaredEnumTypes::instance() diff --git a/libshiboken/sbkenum.h b/libshiboken/sbkenum.h index afe9141..b0ff269 100644 --- a/libshiboken/sbkenum.h +++ b/libshiboken/sbkenum.h @@ -31,6 +31,7 @@ extern "C" extern LIBSHIBOKEN_API PyTypeObject SbkEnumType_Type; struct SbkObjectType; +struct SbkConverter; } // extern "C" @@ -88,6 +89,11 @@ namespace Enum LIBSHIBOKEN_API long getValue(PyObject* enumItem); LIBSHIBOKEN_API PyObject* getEnumItemFromValue(PyTypeObject* enumType, long itemValue); + + /// Sets the enum's type converter. + LIBSHIBOKEN_API void setTypeConverter(PyTypeObject* enumType, SbkConverter* converter); + /// Returns the converter assigned to the enum \p type. + LIBSHIBOKEN_API SbkConverter* getTypeConverter(PyTypeObject* enumType); } } // namespace Shiboken |