aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/sbkenum.h
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2010-11-08 17:04:58 -0200
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:08:56 -0300
commit6d69fbb13907e80ab87f86bc9407fc4ab0a102d7 (patch)
tree0d96b5d81b1f70d6a51e4a22419745ede68cded8 /libshiboken/sbkenum.h
parent95d5b63552f804e7fc5b80428cabb34f57443c0b (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.h27
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