diff options
Diffstat (limited to 'sugar/browser/_sugarbrowser.override')
-rw-r--r-- | sugar/browser/_sugarbrowser.override | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/sugar/browser/_sugarbrowser.override b/sugar/browser/_sugarbrowser.override new file mode 100644 index 0000000..2234f91 --- /dev/null +++ b/sugar/browser/_sugarbrowser.override @@ -0,0 +1,80 @@ +/* -*- Mode: C; c-basic-offset: 4 -*- */ +%% +headers +#include <Python.h> + +#include "pygobject.h" +#include "sugar-browser.h" +#include "sugar-address-entry.h" +#include "sugar-download-manager.h" +#include "sugar-download.h" + +#include <pygtk/pygtk.h> +#include <glib.h> + +%% +modulename _sugarbrowser +%% +import gobject.GObject as PyGObject_Type +import gtk.Entry as PyGtkEntry_Type +import gtk.gdk.Screen as PyGdkScreen_Type +import gtk.gdk.Pixbuf as PyGdkPixbuf_Type +import hippo.CanvasImage as HippoCanvasImage_Type +%% +ignore-glob + *_get_type + _* +%% +include + gtkmozembed.override +%% +override-slot SugarBrowserMetadata.tp_getattr +static PyObject * +_wrap_sugar_browser_metadata_tp_getattr(PyObject *self, char *attr) +{ + SugarBrowserMetadata *metadata = pyg_boxed_get(self, SugarBrowserMetadata); + + if (!strcmp(attr, "__members__")) + return Py_BuildValue("[s]", "filename"); + else if (!strcmp(attr, "filename")) { + if (metadata->filename) { + return PyString_FromString(metadata->filename); + } else { + Py_INCREF(Py_None); + return Py_None; + } + } + + return NULL; +} +%% +override-slot SugarBrowserEvent.tp_getattr +static PyObject * +_wrap_sugar_browser_event_tp_getattr(PyObject *self, char *attr) +{ + SugarBrowserEvent *event = pyg_boxed_get(self, SugarBrowserEvent); + + if (!strcmp(attr, "__members__")) + return Py_BuildValue("[sss]", "image_uri", "button", "image_name"); + else if (!strcmp(attr, "image_uri")) { + if (event->image_uri) { + return PyString_FromString(event->image_uri); + } else { + Py_INCREF(Py_None); + return Py_None; + } + } + else if (!strcmp(attr, "image_name")) { + if (event->image_name) { + return PyString_FromString(event->image_name); + } else { + Py_INCREF(Py_None); + return Py_None; + } + } + else if (!strcmp(attr, "button")) + return PyInt_FromLong(event->button); + + return NULL; +} +%% |