diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-11-08 17:04:58 -0200 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:08:56 -0300 |
commit | 6d69fbb13907e80ab87f86bc9407fc4ab0a102d7 (patch) | |
tree | 0d96b5d81b1f70d6a51e4a22419745ede68cded8 /libshiboken/sbkenum.h | |
parent | 95d5b63552f804e7fc5b80428cabb34f57443c0b (diff) |
Create enum python types on the fly, avoiding generation of structs and duplication of many C functions.
Diffstat (limited to 'libshiboken/sbkenum.h')
-rw-r--r-- | libshiboken/sbkenum.h | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/libshiboken/sbkenum.h b/libshiboken/sbkenum.h index 447997e75..50ac9220a 100644 --- a/libshiboken/sbkenum.h +++ b/libshiboken/sbkenum.h @@ -26,36 +26,27 @@ #include <Python.h> #include "shibokenmacros.h" -namespace Shiboken -{ - extern "C" { -typedef struct { - PyObject_HEAD - long ob_ival; - PyObject* ob_name; -} SbkEnumObject; - extern LIBSHIBOKEN_API PyTypeObject SbkEnumType_Type; -LIBSHIBOKEN_API PyObject* SbkEnumObject_repr(PyObject* self); -LIBSHIBOKEN_API PyObject* SbkEnumObject_name(PyObject* self); - } // extern "C" +namespace Shiboken +{ + inline bool isShibokenEnum(PyObject* pyObj) { return pyObj->ob_type->ob_type == &SbkEnumType_Type; } -LIBSHIBOKEN_API PyObject* SbkEnumObject_New(PyTypeObject *instanceType, - long item_value, - const char* item_name); -LIBSHIBOKEN_API PyObject* SbkEnumObject_New(PyTypeObject *instanceType, - long item_value, - PyObject* item_name = 0); +namespace Enum +{ + LIBSHIBOKEN_API PyObject* newItem(PyTypeObject* enumType, long itemValue, const char* itemName = 0); + LIBSHIBOKEN_API PyTypeObject* newType(const char* name); + LIBSHIBOKEN_API long getValue(PyObject* enumItem); +} } // namespace Shiboken |