X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fopenbox.i;h=a3192756eee5aaa8b883cd1c6f13ddfe636a3bf5;hb=375156c1125cfad326642d7b5882746f0b9c3554;hp=bde9a8cb2c48f510611c04056fbd11866c9cf167;hpb=5f78b51429b204f89b654d634bb4cc8cb78b95f6;p=chaz%2Fopenbox diff --git a/src/openbox.i b/src/openbox.i index bde9a8cb..a3192756 100644 --- a/src/openbox.i +++ b/src/openbox.i @@ -12,17 +12,38 @@ #include "client.hh" %} -%immutable ob::Openbox::instance; +%include stl.i +//%include std_list.i +//%template(ClientList) std::list; + + +%ignore ob::Openbox::instance; +%ignore ob::OBScreen::clients; + +%import "../otk/eventdispatcher.hh" +%import "../otk/eventhandler.hh" +%import "widget.hh" %include "openbox.hh" %include "screen.hh" %include "client.hh" - -%include stl.i -%include std_list.i +%inline %{ + ob::Openbox *Openbox_instance() { return ob::Openbox::instance; } +%}; %{ -class OBClient; + #include %} -%template(ClientList) std::list; +%extend ob::OBScreen { + OBClient *client(int i) { + if (i >= (int)self->clients.size()) + return NULL; + ob::OBScreen::ClientList::iterator it = self->clients.begin(); + std::advance(it,i); + return *it; + } + int clientCount() const { + return (int) self->clients.size(); + } +};