Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--browser/GeckoContentHandler.cpp (renamed from lib/src/GeckoContentHandler.cpp)0
-rw-r--r--browser/GeckoContentHandler.h (renamed from lib/src/GeckoContentHandler.h)0
-rw-r--r--browser/GeckoDownload.cpp (renamed from lib/src/GeckoDownload.cpp)0
-rw-r--r--browser/GeckoDownload.h (renamed from lib/src/GeckoDownload.h)0
-rw-r--r--browser/Makefile.am (renamed from lib/src/Makefile.am)8
-rw-r--r--browser/sugar-address-entry.c (renamed from lib/src/sugar-address-entry.c)0
-rw-r--r--browser/sugar-address-entry.h (renamed from lib/src/sugar-address-entry.h)0
-rw-r--r--browser/sugar-browser.cpp (renamed from lib/src/sugar-browser.cpp)0
-rw-r--r--browser/sugar-browser.h (renamed from lib/src/sugar-browser.h)0
-rw-r--r--browser/sugar-download-manager.c (renamed from lib/src/sugar-download-manager.c)0
-rw-r--r--browser/sugar-download-manager.h (renamed from lib/src/sugar-download-manager.h)0
-rw-r--r--browser/sugar-download.c (renamed from lib/src/sugar-download.c)0
-rw-r--r--browser/sugar-download.h (renamed from lib/src/sugar-download.h)0
-rw-r--r--browser/sugar-marshal.list (renamed from lib/src/sugar-marshal.list)0
-rw-r--r--configure.ac5
-rw-r--r--lib/Makefile.am1
-rw-r--r--lib/python/Makefile.am43
-rw-r--r--lib/python/_sugar.override228
-rw-r--r--lib/python/_sugarmodule.c37
-rw-r--r--shell/view/BuddyMenu.py3
-rwxr-xr-xsugar-emulator1
-rw-r--r--sugar/Makefile.am2
-rw-r--r--sugar/activity/activity.py1
-rw-r--r--sugar/browser/Makefile.am47
-rw-r--r--sugar/browser/_sugarbrowser.defs (renamed from lib/python/_sugar.defs)21
-rw-r--r--sugar/browser/_sugarbrowser.override80
-rw-r--r--sugar/browser/_sugarbrowsermodule.c32
-rw-r--r--sugar/browser/gtkmozembed.defs (renamed from lib/python/gtkmozembed.defs)0
-rw-r--r--sugar/browser/gtkmozembed.override (renamed from lib/python/gtkmozembed.override)0
-rw-r--r--sugar/browser/xulrunner.cpp (renamed from lib/python/xulrunner.cpp)0
-rw-r--r--sugar/browser/xulrunner.h (renamed from lib/python/xulrunner.h)0
-rwxr-xr-xtests/test-browser.py6
33 files changed, 173 insertions, 344 deletions
diff --git a/Makefile.am b/Makefile.am
index 2502ee2..24d5ef0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = bin data lib po shell sugar services
+SUBDIRS = bin browser data po shell sugar services
ACLOCAL_AMFLAGS = -I m4
diff --git a/lib/src/GeckoContentHandler.cpp b/browser/GeckoContentHandler.cpp
index 8b6c9fb..8b6c9fb 100644
--- a/lib/src/GeckoContentHandler.cpp
+++ b/browser/GeckoContentHandler.cpp
diff --git a/lib/src/GeckoContentHandler.h b/browser/GeckoContentHandler.h
index 103166c..103166c 100644
--- a/lib/src/GeckoContentHandler.h
+++ b/browser/GeckoContentHandler.h
diff --git a/lib/src/GeckoDownload.cpp b/browser/GeckoDownload.cpp
index 6f099bd..6f099bd 100644
--- a/lib/src/GeckoDownload.cpp
+++ b/browser/GeckoDownload.cpp
diff --git a/lib/src/GeckoDownload.h b/browser/GeckoDownload.h
index dd788f0..dd788f0 100644
--- a/lib/src/GeckoDownload.h
+++ b/browser/GeckoDownload.h
diff --git a/lib/src/Makefile.am b/browser/Makefile.am
index 504c211..ae013e0 100644
--- a/lib/src/Makefile.am
+++ b/browser/Makefile.am
@@ -1,4 +1,4 @@
-libsugarprivate_la_CPPFLAGS = \
+libsugarbrowser_la_CPPFLAGS = \
$(WARN_CFLAGS) \
$(LIB_CFLAGS) \
$(GECKO_CFLAGS) \
@@ -18,13 +18,13 @@ libsugarprivate_la_CPPFLAGS = \
-DPLUGIN_DIR=\"$(libdir)/mozilla/plugins\" \
-DSHARE_DIR=\"$(pkgdatadir)\"
-noinst_LTLIBRARIES = libsugarprivate.la
+noinst_LTLIBRARIES = libsugarbrowser.la
-libsugarprivate_la_LIBADD = \
+libsugarbrowser_la_LIBADD = \
$(LIB_LIBS) \
$(GECKO_LIBS)
-libsugarprivate_la_SOURCES = \
+libsugarbrowser_la_SOURCES = \
$(BUILT_SOURCES) \
GeckoContentHandler.h \
GeckoContentHandler.cpp \
diff --git a/lib/src/sugar-address-entry.c b/browser/sugar-address-entry.c
index 07f2d13..07f2d13 100644
--- a/lib/src/sugar-address-entry.c
+++ b/browser/sugar-address-entry.c
diff --git a/lib/src/sugar-address-entry.h b/browser/sugar-address-entry.h
index bf1838d..bf1838d 100644
--- a/lib/src/sugar-address-entry.h
+++ b/browser/sugar-address-entry.h
diff --git a/lib/src/sugar-browser.cpp b/browser/sugar-browser.cpp
index cd455b6..cd455b6 100644
--- a/lib/src/sugar-browser.cpp
+++ b/browser/sugar-browser.cpp
diff --git a/lib/src/sugar-browser.h b/browser/sugar-browser.h
index 43108ec..43108ec 100644
--- a/lib/src/sugar-browser.h
+++ b/browser/sugar-browser.h
diff --git a/lib/src/sugar-download-manager.c b/browser/sugar-download-manager.c
index ead3bc8..ead3bc8 100644
--- a/lib/src/sugar-download-manager.c
+++ b/browser/sugar-download-manager.c
diff --git a/lib/src/sugar-download-manager.h b/browser/sugar-download-manager.h
index c58436b..c58436b 100644
--- a/lib/src/sugar-download-manager.h
+++ b/browser/sugar-download-manager.h
diff --git a/lib/src/sugar-download.c b/browser/sugar-download.c
index 01ad809..01ad809 100644
--- a/lib/src/sugar-download.c
+++ b/browser/sugar-download.c
diff --git a/lib/src/sugar-download.h b/browser/sugar-download.h
index ac3760b..ac3760b 100644
--- a/lib/src/sugar-download.h
+++ b/browser/sugar-download.h
diff --git a/lib/src/sugar-marshal.list b/browser/sugar-marshal.list
index 81b3ae1..81b3ae1 100644
--- a/lib/src/sugar-marshal.list
+++ b/browser/sugar-marshal.list
diff --git a/configure.ac b/configure.ac
index ea05765..d4fb4e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -120,9 +120,7 @@ AC_OUTPUT([
Makefile
bin/Makefile
data/Makefile
-lib/Makefile
-lib/src/Makefile
-lib/python/Makefile
+browser/Makefile
services/Makefile
services/presence/Makefile
services/presence2/Makefile
@@ -155,6 +153,7 @@ services/console/interface/logviewer/Makefile
services/console/interface/terminal/Makefile
sugar/Makefile
sugar/activity/Makefile
+sugar/browser/Makefile
sugar/clipboard/Makefile
sugar/graphics/Makefile
sugar/p2p/Makefile
diff --git a/lib/Makefile.am b/lib/Makefile.am
deleted file mode 100644
index 055aa29..0000000
--- a/lib/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = src python
diff --git a/lib/python/Makefile.am b/lib/python/Makefile.am
deleted file mode 100644
index a95299d..0000000
--- a/lib/python/Makefile.am
+++ /dev/null
@@ -1,43 +0,0 @@
-INCLUDES = \
- $(PYTHON_INCLUDES) \
- $(PYGTK_CFLAGS) \
- $(PYCAIRO_CFLAGS) \
- $(LIB_CFLAGS) \
- $(GECKO_CFLAGS) \
- $(NSPR_CFLAGS) \
- -I$(MOZILLA_INCLUDE_DIR)/gtkembedmoz \
- -I$(top_srcdir)/lib/src
-
-pkgpyexecdir = $(pythondir)
-
-pkgpyexec_LTLIBRARIES = _sugar.la
-
-_sugar_la_LDFLAGS = -module -avoid-version $(GECKO_LDFLAGS)
-_sugar_la_LIBADD = \
- $(LIB_LIBS) \
- $(PYCAIRO_LIBS) \
- $(GECKO_LIBS) \
- $(XPCOMGLUE_LIBS) \
- $(top_builddir)/lib/src/libsugarprivate.la
-
-_sugar_la_SOURCES = \
- _sugarmodule.c \
- xulrunner.cpp \
- xulrunner.h
-
-nodist__sugar_la_SOURCES = _sugar.c
-
-_sugar.c: _sugar.defs gtkmozembed.defs _sugar.override gtkmozembed.override
-
-CLEANFILES = _sugar.c
-EXTRA_DIST = _sugar.override _sugar.defs gtkmozembed.defs gtkmozembed.override
-
-.defs.c:
- (cd $(srcdir)\
- && $(PYGTK_CODEGEN) \
- --register $(PYGTK_DEFSDIR)/gdk-types.defs \
- --register $(PYGTK_DEFSDIR)/gtk-types.defs \
- --override $*.override \
- --prefix py$* $*.defs) > gen-$*.c \
- && cp gen-$*.c $*.c \
- && rm -f gen-$*.c
diff --git a/lib/python/_sugar.override b/lib/python/_sugar.override
deleted file mode 100644
index 35c830f..0000000
--- a/lib/python/_sugar.override
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- 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 "pycairo.h"
-#include <pygtk/pygtk.h>
-#include <glib.h>
-
-extern Pycairo_CAPI_t *Pycairo_CAPI;
-
-%%
-modulename gecko
-%%
-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 sugar_hippo_canvas_image_set_image_from_gdk_pixbuf kwargs
-static cairo_surface_t *
-_cairo_surface_from_pixbuf (GdkPixbuf *pixbuf)
-{
-/* Ripped from GooCanvas */
- gint width = gdk_pixbuf_get_width (pixbuf);
- gint height = gdk_pixbuf_get_height (pixbuf);
- guchar *gdk_pixels = gdk_pixbuf_get_pixels (pixbuf);
- int gdk_rowstride = gdk_pixbuf_get_rowstride (pixbuf);
- int n_channels = gdk_pixbuf_get_n_channels (pixbuf);
- guchar *cairo_pixels;
- cairo_format_t format;
- cairo_surface_t *surface;
- static const cairo_user_data_key_t key;
- int j;
-
- if (n_channels == 3)
- format = CAIRO_FORMAT_RGB24;
- else
- format = CAIRO_FORMAT_ARGB32;
-
- cairo_pixels = g_malloc (4 * width * height);
- surface = cairo_image_surface_create_for_data ((unsigned char *)cairo_pixels,
- format,
- width, height, 4 * width);
- cairo_surface_set_user_data (surface, &key,
- cairo_pixels, (cairo_destroy_func_t)g_free);
-
- for (j = height; j; j--)
- {
- guchar *p = gdk_pixels;
- guchar *q = cairo_pixels;
-
- if (n_channels == 3)
- {
- guchar *end = p + 3 * width;
-
- while (p < end)
- {
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
- q[0] = p[2];
- q[1] = p[1];
- q[2] = p[0];
-#else
- q[1] = p[0];
- q[2] = p[1];
- q[3] = p[2];
-#endif
- p += 3;
- q += 4;
- }
- }
- else
- {
- guchar *end = p + 4 * width;
- guint t1,t2,t3;
-
-#define MULT(d,c,a,t) G_STMT_START { t = c * a; d = ((t >> 8) + t) >> 8; } G_STMT_END
-
- while (p < end)
- {
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
- MULT(q[0], p[2], p[3], t1);
- MULT(q[1], p[1], p[3], t2);
- MULT(q[2], p[0], p[3], t3);
- q[3] = p[3];
-#else
- q[0] = p[3];
- MULT(q[1], p[0], p[3], t1);
- MULT(q[2], p[1], p[3], t2);
- MULT(q[3], p[2], p[3], t3);
-#endif
-
- p += 4;
- q += 4;
- }
-
-#undef MULT
- }
-
- gdk_pixels += gdk_rowstride;
- cairo_pixels += 4 * width;
- }
-
- return surface;
-}
-static PyObject*
-_wrap_sugar_hippo_canvas_image_set_image_from_gdk_pixbuf(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "image", "pixbuf", NULL };
- PyGObject *py_pixbuf;
- PyGObject *py_image;
- cairo_surface_t *surface;
- GObject *image;
- GValue val = {0,};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!O!:_sugar.hippo_canvas_image_set_image_from_gdk_pixbuf",
- kwlist, &HippoCanvasImage_Type, &py_image, &PyGdkPixbuf_Type, &py_pixbuf)) {
- return NULL;
- }
-
- surface = _cairo_surface_from_pixbuf(GDK_PIXBUF (py_pixbuf->obj));
- if (surface == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "pixbuf could not be converted");
- return NULL;
- }
-
- /* FIXME: This has to be a GObject (and not a real HippoCanvasImage object)
- * for now until the HippoCanvas includes situation gets sorted out.
- */
- image = G_OBJECT (py_image->obj);
- if (image == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "invalid HippoCanvasImage object");
- return NULL;
- }
-
- g_value_init (&val, G_TYPE_POINTER);
- g_value_set_pointer (&val, surface);
- g_object_set_property (image, "image", &val);
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-%%
-override sugar_cairo_surface_from_gdk_pixbuf kwargs
-static PyObject*
-_wrap_sugar_cairo_surface_from_gdk_pixbuf(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "pixbuf", NULL };
- PyGObject *child;
- cairo_surface_t *surface;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!:sugar.cairo_surface_from_gdk_pixbuf", kwlist, &PyGdkPixbuf_Type, &child))
- return NULL;
-
- surface = _cairo_surface_from_pixbuf(GDK_PIXBUF (child->obj));
- if (surface == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "pixbuf could not be converted");
- return NULL;
- }
-
- return PycairoSurface_FromSurface(surface, NULL);
-}
-%%
-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;
-}
-%%
diff --git a/lib/python/_sugarmodule.c b/lib/python/_sugarmodule.c
deleted file mode 100644
index bceb165..0000000
--- a/lib/python/_sugarmodule.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "xulrunner.h"
-
-/* include this first, before NO_IMPORT_PYGOBJECT is defined */
-#include <pygobject.h>
-
-#include <pycairo.h>
-Pycairo_CAPI_t *Pycairo_CAPI;
-
-void py_sugar_register_classes (PyObject *d);
-
-extern PyMethodDef py_sugar_functions[];
-
-DL_EXPORT(void)
-init_sugar(void)
-{
- PyObject *m, *d;
-
- xulrunner_startup();
-
- init_pygobject ();
-
- Pycairo_IMPORT;
-
- m = Py_InitModule ("_sugar", py_sugar_functions);
- d = PyModule_GetDict (m);
-
- py_sugar_register_classes (d);
- py_sugar_add_constants(m, "GTK_MOZ_EMBED_");
-
- if (PyErr_Occurred ()) {
- Py_FatalError ("can't initialise module _sugar");
- }
-}
diff --git a/shell/view/BuddyMenu.py b/shell/view/BuddyMenu.py
index ad4a5d4..a8224bb 100644
--- a/shell/view/BuddyMenu.py
+++ b/shell/view/BuddyMenu.py
@@ -23,7 +23,6 @@ from sugar.graphics.menu import Menu, MenuItem
from sugar.graphics.canvasicon import CanvasIcon
from sugar.graphics import units
from sugar.presence import PresenceService
-import _sugar
class BuddyMenu(Menu):
ACTION_MAKE_FRIEND = 0
@@ -49,7 +48,7 @@ class BuddyMenu(Menu):
# FIXME: have to set the image _after_ adding the HippoCanvasImage
# to it's parent item, because that sets the HippoCanvasImage's context,
# which resets the object's 'image' property. Grr.
- _sugar.hippo_canvas_image_set_image_from_gdk_pixbuf(icon_item, scaled_pixbuf)
+ #_sugar.hippo_canvas_image_set_image_from_gdk_pixbuf(icon_item, scaled_pixbuf)
self._buddy.connect('icon-changed', self.__buddy_icon_changed_cb)
diff --git a/sugar-emulator b/sugar-emulator
index 3f1df1b..d4005d5 100755
--- a/sugar-emulator
+++ b/sugar-emulator
@@ -26,7 +26,6 @@ import gtk
import gobject
from sugar import env
-import _sugar
def _get_display_number():
"""Find a free display number trying to connect to 6000+ ports"""
diff --git a/sugar/Makefile.am b/sugar/Makefile.am
index b7fb2fe..7ea659a 100644
--- a/sugar/Makefile.am
+++ b/sugar/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = activity clipboard graphics p2p presence datastore
+SUBDIRS = activity browser clipboard graphics p2p presence datastore
sugardir = $(pythondir)/sugar
sugar_PYTHON = \
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py
index fc29104..20e3dcb 100644
--- a/sugar/activity/activity.py
+++ b/sugar/activity/activity.py
@@ -21,7 +21,6 @@ import os
import gtk
import hippo
-import _sugar
from sugar.presence import PresenceService
from sugar.activity.activityservice import ActivityService
from sugar.graphics.window import Window
diff --git a/sugar/browser/Makefile.am b/sugar/browser/Makefile.am
new file mode 100644
index 0000000..5e4a11e
--- /dev/null
+++ b/sugar/browser/Makefile.am
@@ -0,0 +1,47 @@
+sugardir = $(pythondir)/sugar/browser
+sugar_PYTHON = \
+ __init__.py
+
+INCLUDES = \
+ $(PYTHON_INCLUDES) \
+ $(PYGTK_CFLAGS) \
+ $(PYCAIRO_CFLAGS) \
+ $(LIB_CFLAGS) \
+ $(GECKO_CFLAGS) \
+ $(NSPR_CFLAGS) \
+ -I$(MOZILLA_INCLUDE_DIR)/gtkembedmoz \
+ -I$(top_srcdir)/browser
+
+pkgpyexecdir = $(pythondir)/sugar/browser
+
+pkgpyexec_LTLIBRARIES = _sugarbrowser.la
+
+_sugarbrowser_la_LDFLAGS = -module -avoid-version $(GECKO_LDFLAGS)
+_sugarbrowser_la_LIBADD = \
+ $(LIB_LIBS) \
+ $(PYCAIRO_LIBS) \
+ $(GECKO_LIBS) \
+ $(XPCOMGLUE_LIBS) \
+ $(top_builddir)/browser/libsugarbrowser.la
+
+_sugarbrowser_la_SOURCES = \
+ _sugarbrowsermodule.c \
+ xulrunner.cpp \
+ xulrunner.h
+
+nodist__sugarbrowser_la_SOURCES = _sugarbrowser.c
+
+_sugar.c: _sugarbrowser.defs gtkmozembed.defs _sugarbrowser.override gtkmozembed.override
+
+CLEANFILES = _sugar.c
+EXTRA_DIST = _sugarbrowser.override _sugarbrowser.defs gtkmozembed.defs gtkmozembed.override
+
+.defs.c:
+ (cd $(srcdir)\
+ && $(PYGTK_CODEGEN) \
+ --register $(PYGTK_DEFSDIR)/gdk-types.defs \
+ --register $(PYGTK_DEFSDIR)/gtk-types.defs \
+ --override $*.override \
+ --prefix py$* $*.defs) > gen-$*.c \
+ && cp gen-$*.c $*.c \
+ && rm -f gen-$*.c
diff --git a/lib/python/_sugar.defs b/sugar/browser/_sugarbrowser.defs
index e59c985..ed94f74 100644
--- a/lib/python/_sugar.defs
+++ b/sugar/browser/_sugarbrowser.defs
@@ -62,7 +62,7 @@
(return-type "GType")
)
-(define-function browser_startup
+(define-function startup
(c-name "sugar_browser_startup")
(parameters
'("const-char*" "profile_path")
@@ -71,7 +71,7 @@
(return-type "gboolean")
)
-(define-function browser_shutdown
+(define-function shutdown
(c-name "sugar_browser_shutdown")
(return-type "none")
)
@@ -182,21 +182,4 @@
(return-type "gint")
)
-(define-function hippo_canvas_image_set_image_from_gdk_pixbuf
- (c-name "sugar_hippo_canvas_image_set_image_from_gdk_pixbuf")
- (return-type "none")
- (parameters
- '("GObject*" "image")
- '("GdkPixbuf*" "pixbuf")
- )
-)
-
-(define-function cairo_surface_from_gdk_pixbuf
- (c-name "sugar_cairo_surface_from_gdk_pixbuf")
- (return-type "cairo_surface_t*")
- (parameters
- '("GdkPixbuf*" "pixbuf")
- )
-)
-
(include "gtkmozembed.defs")
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;
+}
+%%
diff --git a/sugar/browser/_sugarbrowsermodule.c b/sugar/browser/_sugarbrowsermodule.c
new file mode 100644
index 0000000..653bbfa
--- /dev/null
+++ b/sugar/browser/_sugarbrowsermodule.c
@@ -0,0 +1,32 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "xulrunner.h"
+
+/* include this first, before NO_IMPORT_PYGOBJECT is defined */
+#include <pygobject.h>
+
+void py_sugarbrowser_register_classes (PyObject *d);
+
+extern PyMethodDef py_sugarbrowser_functions[];
+
+DL_EXPORT(void)
+init_sugarbrowser(void)
+{
+ PyObject *m, *d;
+
+ xulrunner_startup();
+
+ init_pygobject ();
+
+ m = Py_InitModule ("_sugarbrowser", py_sugarbrowser_functions);
+ d = PyModule_GetDict (m);
+
+ py_sugarbrowser_register_classes (d);
+ py_sugarbrowser_add_constants(m, "GTK_MOZ_EMBED_");
+
+ if (PyErr_Occurred ()) {
+ Py_FatalError ("can't initialise module _sugarbrowser");
+ }
+}
diff --git a/lib/python/gtkmozembed.defs b/sugar/browser/gtkmozembed.defs
index 5e9dd24..5e9dd24 100644
--- a/lib/python/gtkmozembed.defs
+++ b/sugar/browser/gtkmozembed.defs
diff --git a/lib/python/gtkmozembed.override b/sugar/browser/gtkmozembed.override
index 579af10..579af10 100644
--- a/lib/python/gtkmozembed.override
+++ b/sugar/browser/gtkmozembed.override
diff --git a/lib/python/xulrunner.cpp b/sugar/browser/xulrunner.cpp
index 1880e3b..1880e3b 100644
--- a/lib/python/xulrunner.cpp
+++ b/sugar/browser/xulrunner.cpp
diff --git a/lib/python/xulrunner.h b/sugar/browser/xulrunner.h
index 4998067..4998067 100644
--- a/lib/python/xulrunner.h
+++ b/sugar/browser/xulrunner.h
diff --git a/tests/test-browser.py b/tests/test-browser.py
index 635de5e..12394a6 100755
--- a/tests/test-browser.py
+++ b/tests/test-browser.py
@@ -22,15 +22,15 @@ import pygtk
pygtk.require('2.0')
import gtk
-import _sugar
+import sugar.browser
# Main window
window = gtk.Window()
window.connect("destroy", lambda w: gtk.main_quit())
-_sugar.browser_startup(os.path.expanduser('~/.sugar-browser-test'), 'test')
+sugar.browser.startup(os.path.expanduser('~/.sugar-browser-test'), 'test')
-browser = _sugar.Browser()
+browser = sugar.browser.Browser()
window.add(browser)
browser.show()