r4719 - in trunk/src/host/pye17: ecore_evas examples/ecore_evas
marek at docs.openmoko.org
marek at docs.openmoko.org
Fri Oct 17 09:34:57 CEST 2008
Author: marek
Date: 2008-10-17 09:34:57 +0200 (Fri, 17 Oct 2008)
New Revision: 4719
Modified:
trunk/src/host/pye17/ecore_evas/ecore_evas.override
trunk/src/host/pye17/examples/ecore_evas/simple_window.py
Log:
[pye17] fix segfault on exit, add software_x11_16 support, and more functionality to sample script
Modified: trunk/src/host/pye17/ecore_evas/ecore_evas.override
===================================================================
--- trunk/src/host/pye17/ecore_evas/ecore_evas.override 2008-10-16 10:28:24 UTC (rev 4718)
+++ trunk/src/host/pye17/ecore_evas/ecore_evas.override 2008-10-17 07:34:57 UTC (rev 4719)
@@ -36,13 +36,51 @@
if(new_self->obj == NULL) {
Py_DECREF(new_self);
- PyErr_SetString(PyExc_TypeError, "Can't create ecore_evas object. Check your DISPLAY variable!");
+ PyErr_SetString(PyExc_RuntimeError, "Can't create ecore_evas object. Check your DISPLAY variable!");
return NULL;
}
//g_object_ref(new_self->obj);
//pygobject_register_wrapper_full(new_self, FALSE);
- PyObject_GC_Track((PyObject *)new_self);
+ // makes python segfault on exit - probably necessary for the garbage collector ?!
+ //PyObject_GC_Track((PyObject *)new_self);
+
return (PyObject*)new_self;
}
+%%
+define software_x11_16_new kwargs
+static Ecore_Evas *
+_wrap_software_x11_16_new(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "w", "h", NULL };
+ PyGObject *new_self;
+ int w, h;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"ii:software_x11_16_new.__new__", kwlist, &w, &h))
+ return NULL;
+
+ new_self = PyObject_GC_New(PyGObject, &PyEcore_Evas_Type);
+
+ if (new_self == NULL)
+ return NULL;
+
+ new_self->inst_dict = NULL;
+ new_self->weakreflist = NULL;
+ new_self->private_flags.flags = 0;
+ new_self->obj = ecore_evas_software_x11_16_new(NULL, 0, 0, 0, w, h);
+
+ if(new_self->obj == NULL) {
+ Py_DECREF(new_self);
+ PyErr_SetString(PyExc_RuntimeError, "Can't create ecore_evas object. Check your DISPLAY variable!");
+ return NULL;
+ }
+
+ //g_object_ref(new_self->obj);
+ //pygobject_register_wrapper_full(new_self, FALSE);
+
+ // makes python segfault on exit - probably necessary for the garbage collector ?!
+ //PyObject_GC_Track((PyObject *)new_self);
+
+ return (PyObject*)new_self;
+}
Modified: trunk/src/host/pye17/examples/ecore_evas/simple_window.py
===================================================================
--- trunk/src/host/pye17/examples/ecore_evas/simple_window.py 2008-10-16 10:28:24 UTC (rev 4718)
+++ trunk/src/host/pye17/examples/ecore_evas/simple_window.py 2008-10-17 07:34:57 UTC (rev 4719)
@@ -1,8 +1,14 @@
#!/usr/bin/python
-import ecore
-import ecore_evas
+import ecore
+import ecore_evas
-window = ecore_evas.software_x11_new(500,500)
-window.show()
+try:
+ window = ecore_evas.software_x11_16_new(500,500)
+except:
+ window = ecore_evas.software_x11_new(500,500)
+
+window.title_set("TestWindow")
+window.show()
+
ecore.ecore_main_loop_begin()
More information about the commitlog
mailing list