summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJeff Armstrong <jeffrey.armstrong@approximatrix.com>2011-07-22 19:05:15 -0400
committerJeff Armstrong <jeffrey.armstrong@approximatrix.com>2011-07-22 19:05:15 -0400
commit6a51839ca252a993fee42c9e1b7c7079e74d652e (patch)
tree7deeb95ec14c10bf243d268cc2fdff4f1ebfa22e /lib
parent4887bfbc732ff6ffe456a980874c65219ca08674 (diff)
downloadgempy-6a51839ca252a993fee42c9e1b7c7079e74d652e.tar.gz
gempy-6a51839ca252a993fee42c9e1b7c7079e74d652e.zip
Various fixes to get the example running.
Diffstat (limited to 'lib')
-rw-r--r--lib/gem.c6
-rw-r--r--lib/ldg_Python.h5
-rw-r--r--lib/py_aes.c37
-rw-r--r--lib/py_aes.h3
4 files changed, 35 insertions, 16 deletions
diff --git a/lib/gem.c b/lib/gem.c
index d06f65b..9ffe5aa 100644
--- a/lib/gem.c
+++ b/lib/gem.c
@@ -45,9 +45,10 @@ GemMethods[] = {
{"wind_delete", py_wind_delete, METH_VARARGS, "Delete a window (after closing...)"},
{"wind_close", py_wind_close, METH_VARARGS, "Close a window"},
{"wind_set", py_wind_set, METH_VARARGS, "Set a window parameter"},
+ {"wind_set_string", py_wind_set_string, METH_VARARGS, "Set a string window parameter"},
{"wind_update", py_wind_update, METH_VARARGS, "Lock window redraw for updates"},
- {"evnt_multi", py_evnt_multi, METH_VARARGS, "Process multiple GEM events."},
+ {"evnt_multi", py_evnt_multi, METH_VARARGS | METH_KEYWORDS, "Process multiple GEM events."},
{NULL,NULL,0,NULL}
};
@@ -111,6 +112,7 @@ PROC LibFunc[] = {
"py_wind_close", "Internal\n", py_wind_close,
"py_wind_update", "Internal\n", py_wind_update,
"py_wind_set", "Internal\n", py_wind_set,
+ "py_wind_set_string", "Internal\n", py_wind_set_string,
/* AES Event Library */
"py_evnt_multi", "Internal\n", py_evnt_multi,
@@ -119,7 +121,7 @@ PROC LibFunc[] = {
};
LDGLIB LibLdg[] = {
- 0x0001, 22, LibFunc, "GEM Extensions for Python", 0
+ 0x0001, 23, LibFunc, "GEM Extensions for Python", 0
};
int main( void)
diff --git a/lib/ldg_Python.h b/lib/ldg_Python.h
index e4538b4..5bb03c6 100644
--- a/lib/ldg_Python.h
+++ b/lib/ldg_Python.h
@@ -4,7 +4,7 @@
#include <Python.h>
#include <ldg.h>
-#define PY_API_FCOUNT 12
+#define PY_API_FCOUNT 14
#ifndef LDG_INTERNAL
extern void *pycallbacks[PY_API_FCOUNT];
@@ -26,6 +26,9 @@ PyObject *GEMError;
#define Py_DecRef(obj) ldg_callback(pycallbacks[9],obj)
#define Py_None ((PyObject *)pycallbacks[10])
#define PyArg_ParseTupleAndKeywords(tpl,...) ldg_callback(pycallbacks[11],tpl,##__VA_ARGS__)
+#define PyString_Check(obj) (Py_TYPE(obj) == pycallbacks[12])
+#define PyString_AsString(obj) (const char *)ldg_callback(pycallbacks[13],obj)
+
#define Py_INCREF(obj) ldg_callback(pycallbacks[8],obj)
#define Py_DECREF(obj) ldg_callback(pycallbacks[9],obj)
diff --git a/lib/py_aes.c b/lib/py_aes.c
index ede4788..b112876 100644
--- a/lib/py_aes.c
+++ b/lib/py_aes.c
@@ -349,13 +349,28 @@ int ret;
return Py_None;
}
+PyObject* __CDECL py_wind_set_string(PyObject *self, PyObject *args)
+{
+int id, sp;
+char *str;
+short w1, w2;
+
+ if(!PyArg_ParseTuple(args,"iiz",&id,&sp,&str))
+ return NULL;
+
+ wind_set_str(id,sp,str);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
PyObject* __CDECL py_wind_set(PyObject *self, PyObject *args)
{
int id, sp;
int w1, w2, w3, w4;
int ret;
PyObject *tpl;
-
+
if(!PyArg_ParseTuple(args,"ii|O",&id,&sp,&tpl))
return NULL;
@@ -410,7 +425,7 @@ PyObject *tpl;
/* --- Event Library --- */
-PyObject* __CDECL py_evnt_multi(PyObject self, PyObject *args, PyObject *kwargs)
+PyObject* __CDECL py_evnt_multi(PyObject *self, PyObject *args, PyObject *kwargs)
{
EVMULT_IN em_in;
@@ -438,15 +453,13 @@ static char *kwlist[] = {"mouse_buttons","mouse_movement","timer",NULL};
mmovement = NULL;
timer = 0l;
-
- form_alert(0,"[3][Start evnt_multi][Ok]");
- //if(!PyArg_ParseTupleAndKeywords(args, kwargs, "i|OOl", kwlist,
- // &ev_mflags, &mbuttons, &mmovement, &timer))
- if(!PyArg_ParseTuple(args,"i",&ev_mflags))
+ if(!PyArg_ParseTupleAndKeywords(args, kwargs, "i|OOl", kwlist,
+ &ev_mflags, &mbuttons, &mmovement, &timer))
+ //if(!PyArg_ParseTuple(args,"i",&ev_mflags))
return NULL;
-
- form_alert(0,"[3][Args parsed][Ok]");
- em_in.emi_flags = ev_mflags;
+
+ //form_alert(0,"[3][Args parsed][Ok]");
+ em_in.emi_flags = (short)ev_mflags;
/* Timer handling */
em_in.emi_tlow = loword(timer);
@@ -462,7 +475,7 @@ static char *kwlist[] = {"mouse_buttons","mouse_movement","timer",NULL};
/* Mouse movement handling */
if(mmovement != NULL) {
- PyArg_ParseTuple(mmovement,"(iiiii)(iiiii)",&ev_mm1flags,&ev_mm1x,&ev_mm1y,&ev_mm1width,ev_mm1height,
+ PyArg_ParseTuple(mmovement,"iiiiiiiiii)",&ev_mm1flags,&ev_mm1x,&ev_mm1y,&ev_mm1width,ev_mm1height,
&ev_mm2flags,&ev_mm2x,&ev_mm2y,&ev_mm2width,ev_mm2height);
em_in.emi_m1leave = (short)ev_mm1flags;
em_in.emi_m1.g_x = (short)ev_mm1x;
@@ -479,7 +492,7 @@ static char *kwlist[] = {"mouse_buttons","mouse_movement","timer",NULL};
/* Use the not-so-portable fast multi call */
ret = evnt_multi_fast(&em_in, message, &em_out);
- form_alert(0,"[3][Args parsed][Ok]");
+ //form_alert(0,"[3][Args parsed][Ok]");
//#ifdef PYTHON_3_API
//return Py_BuildValue("{s:i,s:y#,s:(ii),s:(ii),s:(ii)}",
//#else
diff --git a/lib/py_aes.h b/lib/py_aes.h
index 81beb50..e9bf132 100644
--- a/lib/py_aes.h
+++ b/lib/py_aes.h
@@ -25,8 +25,9 @@
PyObject* __CDECL py_wind_delete(PyObject *self, PyObject *args);
PyObject* __CDECL py_wind_close(PyObject *self, PyObject *args);
PyObject* __CDECL py_wind_set(PyObject *self, PyObject *args);
+ PyObject* __CDECL py_wind_set_string(PyObject *self, PyObject *args);
PyObject* __CDECL py_wind_update(PyObject *self, PyObject *args);
- PyObject* __CDECL py_evnt_multi(PyObject self, PyObject *args);
+ PyObject* __CDECL py_evnt_multi(PyObject *self, PyObject *args, PyObject *kwargs);
#endif /* __PY_AES_HEADERS */