X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=wrap%2Fob.i;h=fa2d020e506fcd1ec0695eafba47a50d0421e70d;hb=0dd7ebcba90752d3ad832586f0c1745660078a03;hp=0ba9a90e75be4a6da8ad2ecce6ac0d5ed72ab7c0;hpb=115fedf432d73f17ade48eaa2fa12dfd333bfcaa;p=chaz%2Fopenbox diff --git a/wrap/ob.i b/wrap/ob.i index 0ba9a90e..fa2d020e 100644 --- a/wrap/ob.i +++ b/wrap/ob.i @@ -16,8 +16,6 @@ %} %include "stl.i" -//%include std_list.i -//%template(ClientList) std::list; %include "callback.i" %immutable ob::openbox; @@ -28,22 +26,24 @@ %}; */ -%ignore ob::Screen::clients; -%{ - #include -%} -%extend ob::Screen { - Client *client(int i) { - if (i < 0 || i >= (int)self->clients.size()) - return NULL; - ob::Client::List::iterator it = self->clients.begin(); - std::advance(it,i); - return *it; - } - int clientCount() const { - return (int) self->clients.size(); - } -}; +%typemap(python,out) std::list { + unsigned int s = $1.size(); + PyObject *l = PyList_New(s); + + std::list::const_iterator it = $1.begin(), end = $1.end(); + for (unsigned int i = 0; i < s; ++i, ++it) { + PyObject *pdata = SWIG_NewPointerObj((void *) *it, + SWIGTYPE_p_ob__Client, 0); + PyList_SET_ITEM(l, i, pdata); + } + $result = l; +} + +// do this through events +%ignore ob::Screen::showDesktop(bool); + +%ignore ob::Screen::managed; +%ignore ob::Screen::config; %import "otk.i"