2002-12-23 00:04:32 +00:00
|
|
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
|
|
|
|
|
|
|
%module openbox
|
|
|
|
|
|
|
|
%{
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "../config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "openbox.hh"
|
|
|
|
#include "screen.hh"
|
|
|
|
#include "client.hh"
|
2002-12-31 06:59:46 +00:00
|
|
|
#include "bindings.hh"
|
2003-01-02 20:36:14 +00:00
|
|
|
#include "actions.hh"
|
2003-01-09 22:54:31 +00:00
|
|
|
#include "python.hh"
|
|
|
|
#include "otk/display.hh"
|
2002-12-23 00:04:32 +00:00
|
|
|
%}
|
|
|
|
|
2003-01-03 00:26:36 +00:00
|
|
|
%include "stl.i"
|
2002-12-24 19:16:38 +00:00
|
|
|
//%include std_list.i
|
|
|
|
//%template(ClientList) std::list<OBClient*>;
|
|
|
|
|
|
|
|
%ignore ob::Openbox::instance;
|
|
|
|
%inline %{
|
|
|
|
ob::Openbox *Openbox_instance() { return ob::Openbox::instance; }
|
|
|
|
%};
|
2002-12-23 00:04:32 +00:00
|
|
|
|
2003-01-09 22:54:31 +00:00
|
|
|
%{
|
|
|
|
namespace ob {
|
2003-01-10 03:10:18 +00:00
|
|
|
void python_callback(PyObject *func, MouseData *data)
|
2003-01-09 22:54:31 +00:00
|
|
|
{
|
|
|
|
PyObject *arglist;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
arglist = Py_BuildValue("(O)", SWIG_NewPointerObj((void *) data,
|
2003-01-10 03:10:18 +00:00
|
|
|
SWIGTYPE_p_ob__MouseData,
|
2003-01-09 22:54:31 +00:00
|
|
|
0));
|
|
|
|
|
|
|
|
// call the callback
|
|
|
|
result = PyEval_CallObject(func, arglist);
|
|
|
|
if (!result || PyErr_Occurred()) {
|
|
|
|
// an exception occured in the script, display it
|
|
|
|
PyErr_Print();
|
|
|
|
}
|
|
|
|
|
|
|
|
Py_XDECREF(result);
|
|
|
|
Py_DECREF(arglist);
|
|
|
|
}
|
|
|
|
|
|
|
|
void python_callback(PyObject *func, EventData *data)
|
|
|
|
{
|
|
|
|
PyObject *arglist;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
arglist = Py_BuildValue("(O)", SWIG_NewPointerObj((void *) data,
|
|
|
|
SWIGTYPE_p_ob__EventData,
|
|
|
|
0));
|
|
|
|
|
|
|
|
// call the callback
|
|
|
|
result = PyEval_CallObject(func, arglist);
|
|
|
|
if (!result || PyErr_Occurred()) {
|
|
|
|
// an exception occured in the script, display it
|
|
|
|
PyErr_Print();
|
|
|
|
}
|
|
|
|
|
|
|
|
Py_XDECREF(result);
|
|
|
|
Py_DECREF(arglist);
|
|
|
|
}
|
|
|
|
|
|
|
|
void python_callback(PyObject *func, KeyData *data)
|
|
|
|
{
|
|
|
|
PyObject *arglist;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
arglist = Py_BuildValue("(O)", SWIG_NewPointerObj((void *) data,
|
|
|
|
SWIGTYPE_p_ob__KeyData,
|
|
|
|
0));
|
|
|
|
|
|
|
|
// call the callback
|
|
|
|
result = PyEval_CallObject(func, arglist);
|
|
|
|
if (!result || PyErr_Occurred()) {
|
|
|
|
// an exception occured in the script, display it
|
|
|
|
PyErr_Print();
|
|
|
|
}
|
|
|
|
|
|
|
|
Py_XDECREF(result);
|
|
|
|
Py_DECREF(arglist);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
%}
|
|
|
|
|
2002-12-25 02:19:49 +00:00
|
|
|
%ignore ob::OBScreen::clients;
|
2002-12-23 00:04:32 +00:00
|
|
|
%{
|
2002-12-24 19:16:38 +00:00
|
|
|
#include <iterator>
|
2002-12-23 00:04:32 +00:00
|
|
|
%}
|
2002-12-24 19:16:38 +00:00
|
|
|
%extend ob::OBScreen {
|
|
|
|
OBClient *client(int i) {
|
2002-12-25 00:27:10 +00:00
|
|
|
if (i >= (int)self->clients.size())
|
|
|
|
return NULL;
|
2003-01-05 01:40:38 +00:00
|
|
|
ob::OBClient::List::iterator it = self->clients.begin();
|
2002-12-24 19:16:38 +00:00
|
|
|
std::advance(it,i);
|
|
|
|
return *it;
|
|
|
|
}
|
|
|
|
int clientCount() const {
|
|
|
|
return (int) self->clients.size();
|
|
|
|
}
|
|
|
|
};
|
2002-12-25 02:19:49 +00:00
|
|
|
|
2003-01-10 06:16:42 +00:00
|
|
|
%include "../otk/otk.i"
|
2002-12-25 02:19:49 +00:00
|
|
|
|
2003-01-10 06:16:42 +00:00
|
|
|
%import "widgetbase.hh"
|
|
|
|
%import "actions.hh"
|
2003-01-10 03:10:18 +00:00
|
|
|
|
2002-12-25 02:19:49 +00:00
|
|
|
%include "openbox.hh"
|
|
|
|
%include "screen.hh"
|
|
|
|
%include "client.hh"
|
2003-01-03 00:26:36 +00:00
|
|
|
%include "python.hh"
|
2002-12-25 02:19:49 +00:00
|
|
|
|
|
|
|
// for Mod1Mask etc
|
|
|
|
%include "X11/X.h"
|