/* -*- Mode: C; c-basic-offset: 4 -*- * */ %% headers #include "pygobject.h" #include #include #include #include #ifndef NETK_TYPE_TRAY_ICON #define NETK_TYPE_TRAY_ICON (netk_tray_icon_get_type ()) #endif extern PyTypeObject PyNetkScreen_Type; %% include %% modulename trayicon %% import gobject.GObject as PyGObject_Type import gtk.Plug as PyGtkPlug_Type import screen as PyNetkScreen_Type import gtk.gdk.Screen as PyGdkScreen_Type %% ignore %% ignore-glob *_get_type %% ignore-win32 %% override netk_tray_icon_new kwargs static int _wrap_netk_tray_icon_new(PyGObject *self, PyObject *args, PyObject *kwargs) { Screen *xscreen; xscreen = GDK_SCREEN_XSCREEN (gdk_screen_get_default ()); if (!xscreen) { PyErr_SetString(PyExc_RuntimeError, "could not create NetkTrayIcon object"); return -1; } self->obj = (GObject *)netk_tray_icon_new (xscreen); if (!self->obj) { PyErr_SetString(PyExc_RuntimeError, "could not create NetkTrayIcon object"); return -1; } pygobject_register_wrapper((PyObject *)self); return 0; } %% override netk_tray_icon_set_screen kwargs static PyObject* _wrap_netk_tray_icon_set_screen(PyGObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = { "screen", NULL }; Screen *xscreen; PyGObject *gscreen; PyGObject *nscreen; gint i; gint cnt; if (PyArg_ParseTupleAndKeywords(args, kwargs, "O!:NetkTrayIcon.__init__", kwlist, &PyNetkScreen_Type, &nscreen)) { cnt = ScreenCount (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); for(i = 0; i < cnt; i++) { if (netk_screen_get (i) == (NetkScreen*) nscreen->obj) { break; } } if (i >= cnt) { return NULL; } xscreen = GDK_SCREEN_XSCREEN (gdk_display_get_screen (gdk_display_get_default (), i)); } else if (PyArg_ParseTupleAndKeywords(args, kwargs, "O!:NetkTrayIcon.__init__", kwlist, &PyGdkScreen_Type, &gscreen)) { xscreen = GDK_SCREEN_XSCREEN (GDK_SCREEN (gscreen->obj)); } else { return NULL; } netk_tray_icon_set_screen(NETK_TRAY_ICON(self->obj), xscreen); Py_INCREF(Py_None); return Py_None; } %%