diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-02-05 10:48:37 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-02-05 10:48:37 +0000 |
| commit | 67fbe8354f27386235e0c8dc57bd036e34a4fe5e (patch) | |
| tree | 607f56f0b6284db691a2efeeffb8676f26f909fb /wrap | |
| parent | 7d94983b2e0c55e9d6fa9bc39c102c5b8b8dd468 (diff) | |
dont make wrap a subdir of otk
Diffstat (limited to 'wrap')
| -rw-r--r-- | wrap/.cvsignore | 9 | ||||
| -rw-r--r-- | wrap/Makefile.am | 35 | ||||
| -rw-r--r-- | wrap/otk.i | 81 | ||||
| -rw-r--r-- | wrap/ustring.i | 40 |
4 files changed, 165 insertions, 0 deletions
diff --git a/wrap/.cvsignore b/wrap/.cvsignore new file mode 100644 index 00000000..63aba835 --- /dev/null +++ b/wrap/.cvsignore @@ -0,0 +1,9 @@ +Makefile +Makefile.in +otk.py +.deps +.libs +otkpy.la +otkpy_la-wrap_otk.lo +otkpy_la-wrap_otk.o +wrap_otk.cc diff --git a/wrap/Makefile.am b/wrap/Makefile.am new file mode 100644 index 00000000..7c8e603a --- /dev/null +++ b/wrap/Makefile.am @@ -0,0 +1,35 @@ +# XXX - INSTALL THIS GLOBALLY!#&@(!!! +pythondir = $(libdir)/openbox/python + +CXXFLAGS = $(XFT_CFLAGS) $(filter-out -W -Wall,@CXXFLAGS@) + +INCLUDES = -I.. -I../swig + +python_LTLIBRARIES = otkpy.la + +otkpy_la_CXXFLAGS = $(PYTHON_CFLAGS) +otkpy_la_LDFLAGS = -module +otkpy_la_SOURCES = wrap_otk.cc +otkpy_la_LIBADD = ../otk/libotk.la + +CLEANFILES = wrap_* otk.py +MAINTAINERCLEANFILES = Makefile.in + +python_PYTHON = otk.py + +install-exec-hook: + $(mkinstalldirs) "$(DESTDIR)$(pythondir)" + cd "$(DESTDIR)$(pythondir)" && \ + $(RM) -f _otk.so && $(LN_S) otkpy.so _otk.so + +uninstall-local: + rm -f "$(DESTDIR)$(pythondir)/_otk.so" + +%.py: wrap_%.cc + +otk.i: $(wildcard ../otk/*.hh) + @touch $@ + +wrap_%.cc: %.i + swig $(INCLUDES) $(filter -I%,$(CXXFLAGS)) -python -shadow -c++ -nodefault -o $@ $< + diff --git a/wrap/otk.i b/wrap/otk.i new file mode 100644 index 00000000..5bf17a21 --- /dev/null +++ b/wrap/otk.i @@ -0,0 +1,81 @@ +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- + +%module otk + +%{ +#include "otk.hh" +%} + +%include "stl.i" +//%include std_list.i +%include "ustring.i" + +%ignore otk::display; +%inline %{ + otk::Display *Display_instance() { return otk::display; } +%}; + +%ignore otk::Property::atoms; +%inline %{ + const otk::Atoms& Property_atoms() { return otk::Property::atoms; } +%}; + +namespace otk { +/*%rename(setValue_bool) Configuration::setValue(std::string const &,bool); +%rename(setValue_unsigned) Configuration::setValue(const std::string &, unsigned int); +%rename(setValue_long) Configuration::setValue(const std::string &, long); +%rename(setValue_unsignedlong) Configuration::setValue(const std::string &, unsigned long); +%rename(setValue_string) Configuration::setValue(const std::string &, const std::string &); +%rename(setValue_charptr) Configuration::setValue(const std::string &, const char *);*/ + +%rename(itostring_unsigned) itostring(unsigned int); +%rename(itostring_long) itostring(long); +%rename(itostring_unsigned_long) itostring(unsigned long); + +// these are needed for guile, but not needed for python! +//%rename(equals) BColor::operator==; +//%rename(equals) Rect::operator==; +//%rename(equals) BTexture::operator==; +//%ignore BColor::operator!=; +//%ignore BTexture::operator!=; +%ignore Rect::operator!=; +%ignore Rect::operator|; +%ignore Rect::operator|=; +%ignore Rect::operator&; +%ignore Rect::operator&=; +//%ignore OBTimer::operator<; +%ignore TimerLessThan; + +/* +%rename(set_multi) OtkProperty::set(Window, Atoms, Atoms, unsigned long[], int); +%rename(set_string) OtkProperty::set(Window, Atoms, StringType, const std::string &); +%rename(set_string_multi) OtkProperty::set(Window, Atoms, StringType, const StringVect &); +*/ +} + +%include "eventhandler.hh" +%include "eventdispatcher.hh" +%include "point.hh" +%include "rect.hh" +%include "rendercolor.hh" +%include "rendertexture.hh" +%include "font.hh" +%include "renderstyle.hh" +%include "widget.hh" +%include "label.hh" +%include "focuswidget.hh" +%include "focuslabel.hh" +%include "appwidget.hh" +%include "application.hh" +%include "assassin.hh" +%include "button.hh" +%include "display.hh" +%include "rendercontrol.hh" +%include "property.hh" +%include "screeninfo.hh" +%include "strut.hh" +%include "timer.hh" +%include "util.hh" + +// for Mod1Mask etc +%include "X11/X.h" diff --git a/wrap/ustring.i b/wrap/ustring.i new file mode 100644 index 00000000..d693e7dc --- /dev/null +++ b/wrap/ustring.i @@ -0,0 +1,40 @@ +// SWIG typemaps for otk::ustring + +%{ +#include "otk/ustring.hh" +%} + +namespace otk { + + class ustring; + + /* Overloading check */ + + %typemap(typecheck) ustring = char *; + %typemap(typecheck) const ustring & = char *; + + %typemap(in) ustring { + if (PyString_Check($input)) + $1 = otk::ustring(PyString_AsString($input)); + else + SWIG_exception(SWIG_TypeError, "ustring expected"); + } + + %typemap(in) const ustring & (otk::ustring temp) { + if (PyString_Check($input)) { + temp = otk::ustring(PyString_AsString($input)); + $1 = &temp; + } else { + SWIG_exception(SWIG_TypeError, "ustring expected"); + } + } + + %typemap(out) ustring { + $result = PyString_FromString($1.c_str()); + } + + %typemap(out) const ustring & { + $result = PyString_FromString($1->c_str()); + } + +} |
