summaryrefslogtreecommitdiff
path: root/atk.override
diff options
context:
space:
mode:
Diffstat (limited to 'atk.override')
-rw-r--r--atk.override54
1 files changed, 54 insertions, 0 deletions
diff --git a/atk.override b/atk.override
new file mode 100644
index 00000000..08babd60
--- /dev/null
+++ b/atk.override
@@ -0,0 +1,54 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+%%
+headers
+#include <Python.h>
+
+#include "pygobject.h"
+#include <atk/atk.h>
+#include <atk/atknoopobjectfactory.h>
+#include <atk/atknoopobject.h>
+%%
+import gobject.GObject as PyGObject_Type
+%%
+ignore-glob
+ *_get_type
+%%
+override atk_relation_new kwargs
+static PyObject *
+_wrap_atk_relation_new(PyGBoxed *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "targets", "relationship", NULL };
+ AtkObject **targets;
+ AtkRelation *ret;
+ int relationship, count, i;
+ PyObject *py_targets;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "Oi#:relation_new", kwlist,
+ &py_targets, &relationship))
+ return NULL;
+
+ if (!PySequence_Check(py_targets)) {
+ PyErr_SetString(PyExc_TypeError, "targets argument must be a sequence");
+ return NULL;
+ }
+
+ count = PySequence_Length(py_targets);
+ targets = g_new(AtkObject *, count);
+ for (i = 0; i < count; i++) {
+ PyObject *item = PySequence_GetItem(py_targets, i);
+ Py_DECREF(item); /* PySequence_GetItem INCREF's */
+ if (!pygobject_check(item, &PyAtkObject_Type)) {
+ PyErr_SetString(PyExc_TypeError, "targets argument must be a sequence of AtkObjects.");
+ g_free(targets);
+ return NULL;
+ }
+
+ targets[i] = (AtkObject *) pygobject_get(item);
+ }
+
+ ret = atk_relation_new(targets, count, relationship);
+ g_free(targets);
+
+ return pygobject_new((GObject *) ret);
+}