diff options
| author | Jeff Armstrong <jeffrey.armstrong@approximatrix.com> | 2011-07-24 22:26:32 -0400 |
|---|---|---|
| committer | Jeff Armstrong <jeffrey.armstrong@approximatrix.com> | 2011-07-24 22:26:32 -0400 |
| commit | 5eaecae93f7ba32b6bec9515dfa465130bc8b808 (patch) | |
| tree | 8eccbc1aafdbffc2684b43e77cffa0f9dbe7ecbd /lib/py_aes.c | |
| parent | fce2b435d228d240e24656d6baf47f7d6022b730 (diff) | |
| download | gempy-5eaecae93f7ba32b6bec9515dfa465130bc8b808.tar.gz gempy-5eaecae93f7ba32b6bec9515dfa465130bc8b808.zip | |
Added VDI routines. Added proper resource handling, some menu library code, and object library code.
Diffstat (limited to 'lib/py_aes.c')
| -rw-r--r-- | lib/py_aes.c | 54 |
1 files changed, 50 insertions, 4 deletions
diff --git a/lib/py_aes.c b/lib/py_aes.c index b112876..e221ba8 100644 --- a/lib/py_aes.c +++ b/lib/py_aes.c @@ -26,11 +26,17 @@ PyObject* __CDECL py_appl_write(PyObject *self, PyObject *args) int ret; int app_id; char *message; +int buflen; int msg_length; - if(!PyArg_ParseTuple(args,"iiy*",&app_id,&msg_length,&message)) + if(!PyArg_ParseTuple(args,"iis#",&app_id,&msg_length,&message,&buflen)) return NULL; + if(buflen < msg_length) { + PyErr_SetString(GEMError,"Data length's are dangerously inconsistent in appl_write"); + return NULL; + } + ret = appl_write(app_id,msg_length,message); return Py_BuildValue("i",ret); } @@ -122,13 +128,12 @@ PyObject *obj; short x,y,w,h; int ret; - if(!PyArg_ParseTuple(args,"O(hhhh)",&obj,&x,&y,&w,&h)) + if(!PyArg_ParseTuple(args,"O",&obj)) return NULL; form_center(PyCapsule_GetPointer(obj,NULL),&x,&y,&w,&h); - Py_INCREF(Py_None); - return Py_None; + return Py_BuildValue("(iiii)",(int)x,(int)y,(int)w,(int)h); } /* --- Graphics Library --- */ @@ -505,3 +510,44 @@ static char *kwlist[] = {"mouse_buttons","mouse_movement","timer",NULL}; "key", (int)em_out.emo_kreturn,(int)em_out.emo_kmeta); } +/* Menu Library */ +PyObject* __CDECL py_menu_bar(PyObject *self, PyObject *args) +{ +PyObject *object; +int action; +int ret; + + if(!PyArg_ParseTuple(args,"Oi",&object, &action)) + return NULL; + + ret = menu_bar(PyCapsule_GetPointer(object,NULL),action); + + if(ret == 0) { + PyErr_SetString(GEMError,"Menu bar failed to set properly"); + return NULL; + } + Py_INCREF(Py_None); + return Py_None; +} + +/* Object Library */ +PyObject* __CDECL py_objc_draw(PyObject *self, PyObject *args) +{ +PyObject *object; +int id,depth; +int cx, cy, cw, ch; +int ret; + + if(!PyArg_ParseTuple(args,"Oii(iiii)",&object,&id,&depth,&cx,&cy,&cw,&ch)) + return NULL; + + ret = objc_draw(PyCapsule_GetPointer(object,NULL),id,depth,cx,cy,cw,ch); + + if(ret == 0) { + PyErr_SetString(GEMError,"Object draw call failed"); + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +}
\ No newline at end of file |
