diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-02-17 21:25:52 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-02-17 21:25:52 +0000 |
| commit | 4534151926c4f3887ba9e37ae67df16f1eb039ef (patch) | |
| tree | b375f8ce60754639795ae99d59e1be44d52f9b0b /wrap/ob_screen.i | |
| parent | 1741bddecb23bfc401397222c9961233bb30a87a (diff) | |
split up the otk stuff into separate files.
wrap otk::Property properly with typemaps so that it is usable.
wrap otk::Timer properly so that you can use it with a python callback
Diffstat (limited to 'wrap/ob_screen.i')
| -rw-r--r-- | wrap/ob_screen.i | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/wrap/ob_screen.i b/wrap/ob_screen.i index bbf7b57c..b182d2d7 100644 --- a/wrap/ob_screen.i +++ b/wrap/ob_screen.i @@ -10,8 +10,23 @@ %} %include "ob_client.i" -%include "otk.i" // XXX otk_rect.i!!! -%include "ustring.i" +%include "otk_rect.i" +%include "otk_ustring.i" +%include "otk_size.i" +%include "std_vector.i" + +%typemap(python,out) const otk::Property::StringVect& { + otk::Property::StringVect *v = $1; + unsigned int s = v->size(); + PyObject *l = PyList_New(s); + + otk::Property::StringVect::const_iterator it = v->begin(), end = v->end(); + for (unsigned int i = 0; i < s; ++i, ++it) { + PyObject *pdata = PyString_FromString(it->c_str()); + PyList_SET_ITEM(l, i, pdata); + } + $result = l; +} %typemap(python,out) std::list<ob::Client*> { unsigned int s = $1.size(); @@ -25,14 +40,14 @@ $result = l; } -%typemap(python,out) const otk::Property::StringVect& { - otk::Property::StringVect *v = $1; +%typemap(python,out) const std::vector<otk::Rect>& { + std::vector<otk::Rect> *v = $1; unsigned int s = v->size(); PyObject *l = PyList_New(s); - otk::Property::StringVect::const_iterator it = v->begin(), end = v->end(); + std::vector<otk::Rect>::const_iterator it = v->begin(), end = v->end(); for (unsigned int i = 0; i < s; ++i, ++it) { - PyObject *pdata = PyString_FromString(it->c_str()); + PyObject *pdata = SWIG_NewPointerObj((void*)&(*it),SWIGTYPE_p_otk__Rect,0); PyList_SET_ITEM(l, i, pdata); } $result = l; @@ -52,6 +67,18 @@ namespace ob { send_client_msg(root, otk::Property::atoms.net_current_desktop, root, desktop); } + + const otk::Size& size() { + return otk::display->screenInfo(self->number())->size(); + } + + const std::vector<otk::Rect> &xineramaAreas() { + return otk::display->screenInfo(self->number())->xineramaAreas(); + } + + Window rootWindow() { + return otk::display->screenInfo(self->number())->rootWindow(); + } } %immutable Screen::clients; |
