// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
+%include "std_string.i"
+
%{
/*
Calls a python callback for the MouseCallback function type
*/
static void PythonMouseCallback(ob::MouseData *data, void *pyfunc)
{
- PyObject *func, *arglist, *pdata;
- PyObject *result;
- double dres = 0;
-
- func = (PyObject*) pyfunc;
+ PyObject *arglist, *pdata, *result;
pdata = SWIG_NewPointerObj((void *) data, SWIGTYPE_p_ob__MouseData, 0);
arglist = Py_BuildValue("(O)", pdata);
Py_DECREF(pdata);
// call the callback
- result = PyEval_CallObject(func, arglist);
+ result = PyEval_CallObject((PyObject*)pyfunc, arglist);
if (!result || PyErr_Occurred()) {
// an exception occured in the script, display it
PyErr_Print();
*/
static void PythonKeyCallback(ob::KeyData *data, void *pyfunc)
{
- PyObject *func, *arglist, *pdata;
- PyObject *result;
- double dres = 0;
-
- func = (PyObject*) pyfunc;
+ PyObject *arglist, *pdata, *result;
pdata = SWIG_NewPointerObj((void *) data, SWIGTYPE_p_ob__KeyData, 0);
arglist = Py_BuildValue("(O)", pdata);
Py_DECREF(pdata);
// call the callback
- result = PyEval_CallObject(func, arglist);
+ result = PyEval_CallObject((PyObject*)pyfunc, arglist);
if (!result || PyErr_Occurred()) {
// an exception occured in the script, display it
PyErr_Print();
*/
static void PythonEventCallback(ob::EventData *data, void *pyfunc)
{
- PyObject *func, *arglist, *pdata;
- PyObject *result;
- double dres = 0;
-
- func = (PyObject*) pyfunc;
+ PyObject *arglist, *pdata, *result;
pdata = SWIG_NewPointerObj((void *) data, SWIGTYPE_p_ob__EventData, 0);
arglist = Py_BuildValue("(O)", pdata);
Py_DECREF(pdata);
// call the callback
- result = PyEval_CallObject(func, arglist);
+ result = PyEval_CallObject((PyObject*)pyfunc, arglist);
if (!result || PyErr_Occurred()) {
// an exception occured in the script, display it
PyErr_Print();
}
%inline %{
+#include "bindings.hh"
+
bool mbind(const std::string &button, ob::MouseContext::MC context,
ob::MouseAction::MA action, PyObject *func)
{
PyErr_SetString(PyExc_RuntimeError,"Unable to add binding.");
return false;
}
+ Py_INCREF(func);
return true;
}
PyErr_SetString(PyExc_RuntimeError,"Unable to add binding.");
return false;
}
+ Py_INCREF(func);
return true;
}
PyErr_SetString(PyExc_RuntimeError,"Unable to grab keybaord.");
return false;
}
+ Py_INCREF(func);
return true;
}
PyErr_SetString(PyExc_RuntimeError,"Unable to add binding.");
return false;
}
+ Py_INCREF(func);
return true;
}