diff options
Diffstat (limited to 'bindings/swig/package/swmgr.i')
-rw-r--r-- | bindings/swig/package/swmgr.i | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/bindings/swig/package/swmgr.i b/bindings/swig/package/swmgr.i new file mode 100644 index 0000000..d914be0 --- /dev/null +++ b/bindings/swig/package/swmgr.i @@ -0,0 +1,40 @@ +%{ +#include <swmgr.h> +%} + +%ignore sword::SWMgr::Modules; +%ignore sword::SWMgr::findConfig; +%include "swmgr.h" + +%extend sword::SWMgr { + std::vector < sword::SWBuf > getGlobalOptionsVector() { + std::list<sword::SWBuf> l(self->getGlobalOptions()); + return std::vector< sword::SWBuf >(l.begin(), l.end()); + } + + std::vector < sword::SWBuf > getGlobalOptionValuesVector(const char *option) { + std::list<sword::SWBuf> l(self->getGlobalOptionValues(option)); + return std::vector< sword::SWBuf >(l.begin(), l.end()); + } + + std::map<sword::SWBuf, sword::SWModule*> &getModules() { + return self->Modules; + } + + SWModule* getModuleAt( const int pos ) { + if (pos < 0 || pos > (int)self->Modules.size() ) + return 0; + + sword::ModMap::iterator it = self->Modules.begin(); + + for (int i = 0; i < pos; ++i) { + it++; + } + + if ( it != self->Modules.end() ) { + return (*it).second; + } + + return 0; + } +} |