%module ob
%{
-#include "config.h"
-
-#include "frame.hh"
-#include "openbox.hh"
-#include "screen.hh"
-#include "client.hh"
-#include "bindings.hh"
-#include "actions.hh"
-#include "python.hh"
-#include "otk/otk.hh"
-%}
-
-%include "stl.i"
-//%include std_list.i
-//%template(ClientList) std::list<Client*>;
-%include "callback.i"
-
-%immutable ob::openbox;
-/*
-%ignore ob::openbox;
-%inline %{
- ob::Openbox *Openbox_instance() { return ob::openbox; }
-%};
-*/
-
-%ignore ob::Screen::clients;
-%{
- #include <iterator>
-%}
-%extend ob::Screen {
- Client *client(int i) {
- if (i < 0 || i >= (int)self->clients.size())
- return NULL;
- ob::Client::List::iterator it = self->clients.begin();
- std::advance(it,i);
- return *it;
- }
- int clientCount() const {
- return (int) self->clients.size();
- }
-};
-
-%import "otk.i"
-
-%import "actions.hh"
-
-%include "openbox.hh"
-%include "screen.hh"
-%include "client.hh"
-%include "frame.hh"
-%include "python.hh"
-
-// for Window etc
-%import "X11/X.h"
-
-%inline %{
-void set_reset_key(const std::string &key)
-{
- ob::openbox->bindings()->setResetKey(key);
-}
-
+#include <X11/Xlib.h>
+#include "otk/display.hh"
void send_client_msg(Window target, Atom type, Window about,
long data=0, long data1=0, long data2=0,
long data3=0, long data4=0)
&e);
}
+%}
+
+%include "ob_openbox.i"
+%include "ob_screen.i"
+%include "ob_client.i"
+%include "ob_frame.i"
+%include "ob_python.i"
+%include "ob_callback.i"
+
+// for Window etc
+%import "X11/X.h"
+
+%inline %{
+#include <string>
+#include "bindings.hh"
+#include "otk/display.hh"
+#include "otk/screeninfo.hh"
+#include "otk/util.hh"
+
+void set_reset_key(const std::string &key)
+{
+ ob::openbox->bindings()->setResetKey(key);
+}
+
void execute(const std::string &bin, int screen=0)
{
if (screen >= ScreenCount(**otk::display))