[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Windstille-devel] rev 318 - trunk/src
From: |
Ingo Ruhnke |
Subject: |
[Windstille-devel] rev 318 - trunk/src |
Date: |
Fri, 14 May 2004 03:25:51 +0200 |
Author: grumbel
Date: 2004-05-14 03:25:50 +0200 (Fri, 14 May 2004)
New Revision: 318
Modified:
trunk/src/flexlay_python.cxx
trunk/src/python_functor.cxx
trunk/src/python_functor.hxx
Log:
some python changes
Modified: trunk/src/flexlay_python.cxx
===================================================================
--- trunk/src/flexlay_python.cxx 2004-05-14 00:04:06 UTC (rev 317)
+++ trunk/src/flexlay_python.cxx 2004-05-14 01:25:50 UTC (rev 318)
@@ -28,12 +28,17 @@
void flexlay_init() { flexlay.init(); }
void flexlay_deinit() { flexlay.deinit(); }
-void sig_connect(CL_Signal_v0& sig, PyObject* obj)
+void sig_connect(CL_Signal_v0& sig, boost::python::object obj)
{
std::cout << "Connecting functor: " << std::endl;
- new CL_Slot(sig.connect_functor(PythonFunctor(obj)));
+ new CL_Slot(sig.connect_functor(PythonFunctor(boost::python::object(obj))));
}
+void foobar(CL_Menu* menu)
+{
+ std::cout << "Do foobar" << menu << std::endl;
+}
+
BOOST_PYTHON_MODULE(flexlay)
{
using namespace boost::python;
@@ -81,6 +86,14 @@
.def("sig_clicked", &CL_Button::sig_clicked,
return_value_policy<reference_existing_object>());
+ class_<CL_MenuNode, boost::noncopyable>("MenuNode", no_init);
+
+ class_<CL_Menu, bases<CL_Component>, CL_Menu, boost::noncopyable>
+ ("Menu", init<CL_Component*>())
+ .def("add_item", &CL_Menu::create_item,
+ return_value_policy<reference_existing_object>())
+ .def("foobar", &foobar);
+
class_<Workspace, bases<>, Workspace, boost::noncopyable>
("Workspace", init<int, int>())
.def("set_map", &Workspace::set_current_map);
Modified: trunk/src/python_functor.cxx
===================================================================
--- trunk/src/python_functor.cxx 2004-05-14 00:04:06 UTC (rev 317)
+++ trunk/src/python_functor.cxx 2004-05-14 01:25:50 UTC (rev 318)
@@ -17,6 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#include <boost/python.hpp>
#include "python_functor.hxx"
PythonFunctor::PythonFunctor()
@@ -24,21 +25,18 @@
{
}
-PythonFunctor::PythonFunctor(PyObject* o)
+PythonFunctor::PythonFunctor(boost::python::object o)
{
obj = o;
- Py_XINCREF(obj);
}
PythonFunctor::PythonFunctor(const PythonFunctor& copy)
{
obj = copy.obj;
- Py_XINCREF(obj);
}
PythonFunctor::~PythonFunctor()
{
- Py_XDECREF(obj);
}
PythonFunctor&
@@ -46,9 +44,7 @@
{
if (this != ©)
{
- Py_XDECREF(obj);
obj = copy.obj;
- Py_XINCREF(obj);
}
return *this;
}
@@ -57,7 +53,7 @@
PythonFunctor::operator()()
{
PyObject* arglist = PyTuple_New(0);
- PyEval_CallObject(obj, arglist);
+ PyEval_CallObject(obj.ptr(), arglist);
Py_DECREF(arglist);
}
Modified: trunk/src/python_functor.hxx
===================================================================
--- trunk/src/python_functor.hxx 2004-05-14 00:04:06 UTC (rev 317)
+++ trunk/src/python_functor.hxx 2004-05-14 01:25:50 UTC (rev 318)
@@ -26,10 +26,10 @@
class PythonFunctor
{
private:
- PyObject* obj;
+ boost::python::object obj;
public:
PythonFunctor();
- PythonFunctor(PyObject* o);
+ PythonFunctor(boost::python::object o);
~PythonFunctor();
PythonFunctor(const PythonFunctor& copy);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Windstille-devel] rev 318 - trunk/src,
Ingo Ruhnke <=