/* -*- Mode: C; c-basic-offset: 4 -*- * */ %% headers #include "pygobject.h" #include #include %% include %% modulename netk %% import gobject.GObject as PyGObject_Type import workspace as PyNetkWorkspace_Type import window as PyNetkWindow_Type %% ignore %% ignore-glob *_get_type %% ignore-win32 %% override netk_screen_get_windows noargs static PyObject * _wrap_netk_screen_get_windows(PyGObject *self) { GList *icon_list = NULL; PyObject *pywindow; PyObject *py_list; GList *tmp; if ((icon_list = netk_screen_get_windows(NETK_SCREEN(self->obj)))) { if ((py_list = PyList_New(0)) == NULL) { /*g_list_free(icon_list); no */ return NULL; } for (tmp = icon_list; tmp != NULL; tmp = tmp->next) { pywindow = pygobject_new(G_OBJECT(tmp->data)); /* will g_object_ref and sink if applicable */ if (pywindow == NULL) { /*g_list_free(icon_list); no */ Py_DECREF(py_list); return NULL; } PyList_Append(py_list, pywindow); Py_DECREF(pywindow); } /*g_list_free(icon_list); no */ return py_list; } if ((py_list = PyList_New(0)) == NULL) { /* g_list_free(icon_list); no */ return NULL; } return py_list; } %% override netk_screen_get_windows_stacked noargs static PyObject * _wrap_netk_screen_get_windows_stacked(PyGObject *self) { GList *icon_list = NULL; PyObject *pywindow; PyObject *py_list; GList *tmp; if ((icon_list = netk_screen_get_windows_stacked(NETK_SCREEN(self->obj)))) { if ((py_list = PyList_New(0)) == NULL) { /* g_list_free(icon_list); no */ return NULL; } for (tmp = icon_list; tmp != NULL; tmp = tmp->next) { pywindow = pygobject_new(G_OBJECT(tmp->data)); /* will g_object_ref and sink if applicable */ if (pywindow == NULL) { /*g_list_free(icon_list); no */ Py_DECREF(py_list); return NULL; } PyList_Append(py_list, pywindow); Py_DECREF(pywindow); } /*g_list_free(icon_list); no */ return py_list; } if ((py_list = PyList_New(0)) == NULL) { /* g_list_free(icon_list); no */ return NULL; } return py_list; } %% override netk_screen_get_background_pixmap noargs static PyObject * _wrap_netk_screen_get_background_pixmap(PyGObject *self) { gulong ret; GdkDrawable *drawable; PyObject *obj; ret = netk_screen_get_background_pixmap(NETK_SCREEN(self->obj)); if (ret) { drawable = gdk_xid_table_lookup (ret); if (drawable) g_object_ref (G_OBJECT (drawable)); else drawable = gdk_pixmap_foreign_new (ret); obj = pygobject_new (G_OBJECT (drawable)); if (drawable) g_object_unref (G_OBJECT (drawable)); return obj; } else { Py_INCREF(Py_None); return Py_None; } } %% override netk_screen_get_workspaces noargs static PyObject * _wrap_netk_screen_get_workspaces(PyGObject *self) { PyObject *pyworkspace; PyObject *py_list; int cnt, i; cnt = netk_screen_get_workspace_count(NETK_SCREEN(self->obj)); if ((py_list = PyList_New(0)) == NULL) { return NULL; } for(i = 0; i < cnt; i++) { pyworkspace = pygobject_new(G_OBJECT(netk_screen_get_workspace(NETK_SCREEN(self->obj), i))); /* will g_object_ref and sink if applicable */ PyList_Append(py_list, pyworkspace); Py_DECREF(pyworkspace); } return py_list; }