Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-10-16 16:43:04 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-10-16 16:43:04 (GMT)
commit5e503f77d12baee7c8d97e4641d982da1c77c0ac (patch)
tree33e6ba0d965cafc2302bbbfc5dad845957697df4 /lib
parent0d2caab8a1037fc477ba213d87794ba3c053f9a5 (diff)
Get the tray icon to sort of work.
Diffstat (limited to 'lib')
-rw-r--r--lib/python/Makefile.am1
-rw-r--r--lib/python/_sugar.c70
-rw-r--r--lib/python/_sugar.defs20
-rw-r--r--lib/python/_sugar.override4
4 files changed, 62 insertions, 33 deletions
diff --git a/lib/python/Makefile.am b/lib/python/Makefile.am
index c687e9b..be712d7 100644
--- a/lib/python/Makefile.am
+++ b/lib/python/Makefile.am
@@ -26,6 +26,7 @@ EXTRA_DIST = _sugar.override _sugar.defs
.defs.c:
(cd $(srcdir)\
&& $(PYGTK_CODEGEN) \
+ --register $(PYGTK_DEFSDIR)/gdk-types.defs \
--register $(PYGTK_DEFSDIR)/gtk-types.defs \
--register $(GNOMEPYTHONEXTRAS_DEFSDIR)/gtkmozembed.defs \
--override $*.override \
diff --git a/lib/python/_sugar.c b/lib/python/_sugar.c
index 4db0f7c..c9ddef2 100644
--- a/lib/python/_sugar.c
+++ b/lib/python/_sugar.c
@@ -23,6 +23,8 @@ static PyTypeObject *_PyGtkEntry_Type;
#define PyGtkEntry_Type (*_PyGtkEntry_Type)
static PyTypeObject *_PyGtkMozEmbed_Type;
#define PyGtkMozEmbed_Type (*_PyGtkMozEmbed_Type)
+static PyTypeObject *_PyGdkScreen_Type;
+#define PyGdkScreen_Type (*_PyGdkScreen_Type)
/* ---------- forward type declarations ---------- */
@@ -31,7 +33,7 @@ PyTypeObject G_GNUC_INTERNAL PySugarBrowser_Type;
PyTypeObject G_GNUC_INTERNAL PySugarKeyGrabber_Type;
PyTypeObject G_GNUC_INTERNAL PySugarTrayManager_Type;
-#line 35 "_sugar.c"
+#line 37 "_sugar.c"
@@ -223,24 +225,20 @@ PyTypeObject G_GNUC_INTERNAL PySugarKeyGrabber_Type = {
/* ----------- SugarTrayManager ----------- */
-static int
-_wrap_sugar_tray_manager_new(PyGObject *self, PyObject *args, PyObject *kwargs)
+static PyObject *
+_wrap_sugar_tray_manager_manage_screen(PyGObject *self, PyObject *args, PyObject *kwargs)
{
- static char* kwlist[] = { NULL };
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- ":gecko.TrayManager.__init__",
- kwlist))
- return -1;
-
- pygobject_constructv(self, 0, NULL);
- if (!self->obj) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "could not create gecko.TrayManager object");
- return -1;
- }
- return 0;
+ static char *kwlist[] = { "screen", NULL };
+ PyGObject *screen;
+ int ret;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!:SugarTrayManager.manage_screen", kwlist, &PyGdkScreen_Type, &screen))
+ return NULL;
+
+ ret = sugar_tray_manager_manage_screen(SUGAR_TRAY_MANAGER(self->obj), GDK_SCREEN(screen->obj));
+
+ return PyBool_FromLong(ret);
+
}
static PyObject *
@@ -273,6 +271,8 @@ _wrap_sugar_tray_manager_get_orientation(PyGObject *self)
}
static const PyMethodDef _PySugarTrayManager_methods[] = {
+ { "manage_screen", (PyCFunction)_wrap_sugar_tray_manager_manage_screen, METH_VARARGS|METH_KEYWORDS,
+ NULL },
{ "set_orientation", (PyCFunction)_wrap_sugar_tray_manager_set_orientation, METH_VARARGS|METH_KEYWORDS,
NULL },
{ "get_orientation", (PyCFunction)_wrap_sugar_tray_manager_get_orientation, METH_NOARGS,
@@ -318,7 +318,7 @@ PyTypeObject G_GNUC_INTERNAL PySugarTrayManager_Type = {
(descrgetfunc)0, /* tp_descr_get */
(descrsetfunc)0, /* tp_descr_set */
offsetof(PyGObject, inst_dict), /* tp_dictoffset */
- (initproc)_wrap_sugar_tray_manager_new, /* tp_init */
+ (initproc)0, /* tp_init */
(allocfunc)0, /* tp_alloc */
(newfunc)0, /* tp_new */
(freefunc)0, /* tp_free */
@@ -339,9 +339,27 @@ _wrap_sugar_browser_startup(PyObject *self)
return Py_None;
}
+static PyObject *
+_wrap_sugar_tray_manager_check_running(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "screen", NULL };
+ PyGObject *screen;
+ int ret;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!:tray_manager_check_running", kwlist, &PyGdkScreen_Type, &screen))
+ return NULL;
+
+ ret = sugar_tray_manager_check_running(GDK_SCREEN(screen->obj));
+
+ return PyBool_FromLong(ret);
+
+}
+
const PyMethodDef py_sugar_functions[] = {
{ "startup_browser", (PyCFunction)_wrap_sugar_browser_startup, METH_NOARGS,
NULL },
+ { "tray_manager_check_running", (PyCFunction)_wrap_sugar_tray_manager_check_running, METH_VARARGS|METH_KEYWORDS,
+ NULL },
{ NULL, NULL, 0, NULL }
};
@@ -387,9 +405,21 @@ py_sugar_register_classes(PyObject *d)
"could not import gtk");
return ;
}
+ if ((module = PyImport_ImportModule("gtk.gdk")) != NULL) {
+ _PyGdkScreen_Type = (PyTypeObject *)PyObject_GetAttrString(module, "Screen");
+ if (_PyGdkScreen_Type == NULL) {
+ PyErr_SetString(PyExc_ImportError,
+ "cannot import name Screen from gtk.gdk");
+ return ;
+ }
+ } else {
+ PyErr_SetString(PyExc_ImportError,
+ "could not import gtk.gdk");
+ return ;
+ }
-#line 393 "_sugar.c"
+#line 423 "_sugar.c"
pygobject_register_class(d, "SugarAddressEntry", SUGAR_TYPE_ADDRESS_ENTRY, &PySugarAddressEntry_Type, Py_BuildValue("(O)", &PyGtkEntry_Type));
pygobject_register_class(d, "SugarBrowser", SUGAR_TYPE_BROWSER, &PySugarBrowser_Type, Py_BuildValue("(O)", &PyGtkMozEmbed_Type));
pygobject_register_class(d, "SugarKeyGrabber", SUGAR_TYPE_KEY_GRABBER, &PySugarKeyGrabber_Type, Py_BuildValue("(O)", &PyGObject_Type));
diff --git a/lib/python/_sugar.defs b/lib/python/_sugar.defs
index 1029438..2829f2a 100644
--- a/lib/python/_sugar.defs
+++ b/lib/python/_sugar.defs
@@ -21,6 +21,13 @@
(gtype-id "SUGAR_TYPE_KEY_GRABBER")
)
+(define-object TrayManager
+ (in-module "Sugar")
+ (parent "GObject")
+ (c-name "SugarTrayManager")
+ (gtype-id "SUGAR_TYPE_TRAY_MANAGER")
+)
+
;; Enumerations and flags ...
@@ -69,19 +76,6 @@
)
)
-
-;; -*- scheme -*-
-; object definitions ...
-(define-object TrayManager
- (in-module "Sugar")
- (parent "GObject")
- (c-name "SugarTrayManager")
- (gtype-id "SUGAR_TYPE_TRAY_MANAGER")
-)
-
-;; Enumerations and flags ...
-
-
;; From sugar-tray-manager.h
(define-function tray_manager_get_type
diff --git a/lib/python/_sugar.override b/lib/python/_sugar.override
index a80eb1b..b27d853 100644
--- a/lib/python/_sugar.override
+++ b/lib/python/_sugar.override
@@ -12,9 +12,13 @@ headers
%%
modulename gecko
%%
+ignore
+sugar_tray_manager_new
+%%
import gobject.GObject as PyGObject_Type
import gtk.Entry as PyGtkEntry_Type
import gtkmozembed.MozEmbed as PyGtkMozEmbed_Type
+import gtk.gdk.Screen as PyGdkScreen_Type
%%
ignore-glob
*_get_type