summaryrefslogtreecommitdiff
path: root/wrap
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-02-05 10:48:37 +0000
committerDana Jansens <danakj@orodu.net>2003-02-05 10:48:37 +0000
commit67fbe8354f27386235e0c8dc57bd036e34a4fe5e (patch)
tree607f56f0b6284db691a2efeeffb8676f26f909fb /wrap
parent7d94983b2e0c55e9d6fa9bc39c102c5b8b8dd468 (diff)
dont make wrap a subdir of otk
Diffstat (limited to 'wrap')
-rw-r--r--wrap/.cvsignore9
-rw-r--r--wrap/Makefile.am35
-rw-r--r--wrap/otk.i81
-rw-r--r--wrap/ustring.i40
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());
+ }
+
+}