From b35f28ca167a5b8280ef37566966701f540b8933 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Tue, 18 Oct 2011 09:48:49 -0300 Subject: New converters for C++ enum and qflags types. Also removed a lot of unused and commented code. --- libshiboken/sbkenum.cpp | 12 ++++++++++++ libshiboken/sbkenum.h | 6 ++++++ 2 files changed, 18 insertions(+) (limited to 'libshiboken') 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(enumItem)->ob_value; } +void setTypeConverter(PyTypeObject* enumType, SbkConverter* converter) +{ + //reinterpret_cast(enumType)->converter = converter; + SBK_CONVERTER(enumType) = converter; +} + +SbkConverter* getTypeConverter(PyTypeObject* enumType) +{ + //return reinterpret_cast(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 -- cgit v1.2.3