[Ocemp-CVS] papi/doc/examples capi.c,NONE,1.1
Status: Beta
Brought to you by:
marcusva
From: Marcus v. A. <mar...@us...> - 2008-04-21 10:40:13
|
Update of /cvsroot/ocemp/papi/doc/examples In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv25674/doc/examples Added Files: capi.c Log Message: Added C API example. --- NEW FILE: capi.c --- /* C API example and test file. Use something like the following in your setup.py file. ***************** from distutils.core import setup, Extension capi = Extension ("capi", sources=["capi.c"], language="c", include_dirs=["/usr/local/include/atk-1.0", "/usr/local/include/glib-2.0"]) setupdata = { "name" : "capi", "version" : "test", "ext_modules" : [capi], } setup (**setupdata) */ #include <Python.h> #include <papi/papi.h> static PyObject* _test_atkobj (void) { PyObject *atkobj = PyAtkObject_New (IFACE_INVALID); if (PyAtkObject_Check (atkobj)) return atkobj; Py_DECREF (atkobj); return NULL; } static PyObject* _test_atkattr (void) { PyObject *atkattr = PyAtkAttribute_New (); if (PyAtkAttribute_Check (atkattr)) return atkattr; Py_DECREF (atkattr); return NULL; } static PyObject* _test_atkhyperlink (void) { PyObject *atklink = PyAtkHyperlink_New (); if (PyAtkHyperlink_Check (atklink)) return atklink; Py_DECREF (atklink); return NULL; } static PyObject* _test_atkrelation (void) { PyObject *atkrel = PyAtkRelation_New (); if (PyAtkRelation_Check (atkrel)) return atkrel; Py_DECREF (atkrel); return NULL; } static PyObject* _test_atkrelationset (void) { PyObject *atkrel = PyAtkRelationSet_New (); if (PyAtkRelationSet_Check (atkrel)) return atkrel; Py_DECREF (atkrel); return NULL; } static PyObject* _test_atkstateset (void) { PyObject *atks = PyAtkStateSet_New (); if (PyAtkStateSet_Check (atks)) return atks; Py_DECREF (atks); return NULL; } static PyObject* _test_atktextrange (void) { PyObject *atktrange = PyAtkTextRange_New (); if (PyAtkTextRange_Check (atktrange)) return atktrange; Py_DECREF (atktrange); return NULL; } static PyObject* _test_atktextrectangle (void) { PyObject *atktrect = PyAtkTextRectangle_New (); if (PyAtkTextRectangle_Check (atktrect)) return atktrect; Py_DECREF (atktrect); return NULL; } PyMODINIT_FUNC initcapi (void) { int i = 0; PyObject *module, *func; static PyMethodDef methods[] = { { "test_atkobject", (PyCFunction) _test_atkobj, METH_NOARGS, "" }, { "test_atkattribute", (PyCFunction) _test_atkattr, METH_NOARGS, "" }, { "test_atkrelation", (PyCFunction) _test_atkrelation, METH_NOARGS, "" }, { "test_atkrelationset", (PyCFunction) _test_atkrelationset, METH_NOARGS, "" }, { "test_atkstateset", (PyCFunction) _test_atkstateset, METH_NOARGS, "" }, { "test_atktextrange", (PyCFunction) _test_atktextrange, METH_NOARGS, "" }, { "test_atktextrectangle", (PyCFunction) _test_atktextrectangle, METH_NOARGS, "" }, { NULL, NULL, 0, NULL } }; module = Py_InitModule3 ("capi", NULL, "PAPI testing module."); while (methods[i].ml_name != NULL) { func = PyCFunction_New (&methods[i], NULL); PyObject_SetAttrString (module, methods[i].ml_name, func); i++; } /* First test :-) */ import_papi (); } |