As the README used to say, it was a unfinished work. If someone
wants to finish it after all these years it can be recovered
from the logs. Meanwhile, let's not carry dead code around.
---
 WINGs/python/Makefile |   17 --
 WINGs/python/README   |   20 --
 WINGs/python/WINGs.i  |  699 -------------------------------------------------
 WINGs/python/WINGs.py |  643 ---------------------------------------------
 WINGs/python/setup.py |   71 -----
 WINGs/python/test.py  |  159 -----------
 6 files changed, 0 insertions(+), 1609 deletions(-)
 delete mode 100644 WINGs/python/Makefile
 delete mode 100644 WINGs/python/README
 delete mode 100644 WINGs/python/WINGs.i
 delete mode 100644 WINGs/python/WINGs.py
 delete mode 100755 WINGs/python/setup.py
 delete mode 100755 WINGs/python/test.py

diff --git a/WINGs/python/Makefile b/WINGs/python/Makefile
deleted file mode 100644
index 95f4636..0000000
--- a/WINGs/python/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-
-all: WINGs.c
-       python setup.py build
-       ln -sf `find build/ -name wings.so` .
-
-install: WINGs.c
-       python setup.py install
-
-clean:
-       rm -rf build dist WINGs.c *.o *~ *.so MANIFEST wings.py *.pyc *.pyo core
-
-dist:
-       python setup.py sdist
-
-WINGs.c: WINGs.i
-       swig -python -noproxy `get-wings-flags --cflags` -I.. -o WINGs.c WINGs.i
-
diff --git a/WINGs/python/README b/WINGs/python/README
deleted file mode 100644
index 957dedf..0000000
--- a/WINGs/python/README
+++ /dev/null
@@ -1,20 +0,0 @@
-
-This is a python wrapper for the WINGs library, that can be used to write 
python
-based programs with WINGs-based graphic interfaces.
-
-This module in not built by default. To build it you need python2.1 or later
-and swig-1.3.14 or later.
-
-To build it, first compile and install WINGs. after that run 'make' in this
-directory. 'make install' will install the python module into the python tree.
-
-run test.py or WINGs.py for an example.
-
-the code is not finished yet and may fail to work as expected in some cases.
-
-Note: currently the module expects WINGs installed to build. it won't take
-the WINGs libraries and header files from the source tree. You need to
-install WINGs first. Even if an old version of WINGs is already installed,
-you still need to install the newly built WINGs, else the python module will
-be built against the old version.
-
diff --git a/WINGs/python/WINGs.i b/WINGs/python/WINGs.i
deleted file mode 100644
index 2c73935..0000000
--- a/WINGs/python/WINGs.i
+++ /dev/null
@@ -1,699 +0,0 @@
-%module wings
-%{
-#include "WINGs/WINGsP.h"
-%}
-
-%include typemaps.i
-
-// This tells SWIG to treat char ** as a special case
-%typemap(python, in) char ** {
-    /* Check if is a list */
-    if (PyList_Check($input)) {
-        int size = PyList_Size($input);
-        int i = 0;
-        $1 = (char **) wmalloc((size+1)*sizeof(char *));
-        for (i = 0; i < size; i++) {
-            PyObject *o = PyList_GetItem($input, i);
-            if (PyString_Check(o))
-                $1[i] = PyString_AsString(PyList_GetItem($input, i));
-            else {
-                PyErr_SetString(PyExc_TypeError, "list must contain strings");
-                wfree($1);
-                return NULL;
-            }
-        }
-        $1[i] = 0;
-    } else {
-        PyErr_SetString(PyExc_TypeError, "not a list");
-        return NULL;
-    }
-}
-// This cleans up the char ** array we malloc-ed before the function call
-%typemap(python, freearg) char ** {
-    wfree($1);
-}
-// This allows a C function to return a char ** as a Python list
-%typemap(python, out) char ** {
-    int len,i;
-    len = 0;
-    while ($1[len]) len++;
-    $result = PyList_New(len);
-    for (i = 0; i < len; i++) {
-        PyList_SetItem($result, i, PyString_FromString($1[i]));
-    }
-}
-
-// Now for some callbacks
-%typemap(python, in) PyObject *pyacArgs {
-    if (PyTuple_Check($input)) {
-        if (PyTuple_Size($input) != 3) {
-            PyErr_SetString(PyExc_ValueError,
-                            "wrong number of parameters in tuple. should be 
3.");
-            return NULL;
-        } else {
-            PyObject *func = PyTuple_GetItem($input, 1);
-            if (func!=Py_None && !PyCallable_Check(func)) {
-                PyErr_SetString(PyExc_TypeError,
-                                "'action' needs to be a callable object!");
-                return NULL;
-            }
-        }
-    } else {
-        PyErr_SetString(PyExc_TypeError, "2nd argument not a tuple!");
-        return NULL;
-    }
-    $1 = $input;
-}
-
-%typemap(python, in) PyObject *pycArgs {
-    if (PyTuple_Check($input)) {
-        if (PyTuple_Size($input) != 2) {
-            PyErr_SetString(PyExc_ValueError,
-                            "wrong number of parameters in tuple. should be 
2.");
-            return NULL;
-        } else {
-            PyObject *func = PyTuple_GetItem($input, 0);
-            if (func!=Py_None && !PyCallable_Check(func)) {
-                PyErr_SetString(PyExc_TypeError,
-                                "'action' needs to be a callable object!");
-                return NULL;
-            }
-        }
-    } else {
-        PyErr_SetString(PyExc_TypeError, "2nd argument not a tuple!");
-        return NULL;
-    }
-    $1 = $input;
-}
-
-// Type mapping for grabbing a FILE * from Python
-%typemap(python, in) FILE * {
-    if (!PyFile_Check($input)) {
-        PyErr_SetString(PyExc_TypeError, "Need a file!");
-        return NULL;
-    }
-    $1 = PyFile_AsFile($input);
-}
-
-/* These are for free-ing the return of functions that need to be freed
- * before returning control to python. */
-%typemap(python, ret) char* WMGetTextFieldText { wfree($1); };
-
-
-%include exception.i
-
-%exception pyWMScreenMainLoop {
-    $function
-    if (PyErr_Occurred())
-        return NULL;
-}
-
-%exception pyWMRunModalLoop {
-    $function
-    if (PyErr_Occurred())
-        return NULL;
-}
-
-%{
-    static int mainLoopDone = 0;
-%}
-
-
-%inline %{
-    WMScreen *pyWMOpenScreen(const char *display, int simpleapp)
-    {
-        Display *dpy = XOpenDisplay(display);
-
-        if (!dpy) {
-            wwarning("WINGs: could not open display %s", 
XDisplayName(display));
-            return NULL;
-        }
-
-        if (simpleapp) {
-            return WMCreateSimpleApplicationScreen(dpy);
-        } else {
-            return WMCreateScreen(dpy, DefaultScreen(dpy));
-        }
-    }
-
-    void pyWMScreenMainLoop(WMScreen *scr)
-    {
-        XEvent event;
-
-        while (!PyErr_Occurred() && !mainLoopDone) {
-            WMNextEvent(((W_Screen*)scr)->display, &event);
-            WMHandleEvent(&event);
-        }
-    }
-
-    void pyWMBreakScreenMainLoop(WMScreen *scr)
-    {
-        mainLoopDone = 1;
-    }
-
-    void pyWMRunModalLoop(WMScreen *scr, WMView *view)
-    {
-        int oldModalLoop = scr->modalLoop;
-        WMView *oldModalView = scr->modalView;
-
-        scr->modalView = view;
-
-        scr->modalLoop = 1;
-        while (!PyErr_Occurred() && scr->modalLoop) {
-            XEvent event;
-
-            WMNextEvent(scr->display, &event);
-            WMHandleEvent(&event);
-        }
-
-        scr->modalView = oldModalView;
-        scr->modalLoop = oldModalLoop;
-    }
-%}
-
-
-//%rename WMScreenMainLoop _WMScreenMainLoop;
-//%rename(_WMScreenMainLoop) WMScreenMainLoop;
-//%rename WMRunModalLoop _WMRunModalLoop;
-
-
-%{
-    /* These functions match the prototypes of the normal C callback
-     * functions. However, we use the clientdata pointer for holding a
-     * reference to a Python tuple containing (object, funct, clientData).
-     */
-    static void PythonWMActionCallback(WMWidget *widget, void *cdata)
-    {
-        PyObject *pyobj, *func, *pydata, *arglist, *tuple, *result;
-
-        tuple = (PyObject*) cdata;
-        pyobj = PyTuple_GetItem(tuple, 0);
-        func = PyTuple_GetItem(tuple, 1);
-        if (func && func!=Py_None) {
-            pydata = PyTuple_GetItem(tuple, 2);
-            arglist = Py_BuildValue("(OO)", pyobj, pydata);
-            result = PyEval_CallObject(func, arglist);
-            Py_DECREF(arglist);
-            Py_XDECREF(result);
-        }
-    }
-
-    static void PythonWMCallback(void *data)
-    {
-        PyObject *func, *pydata, *arglist, *tuple, *result;
-
-        tuple = (PyObject*) data;
-        func = PyTuple_GetItem(tuple, 0);
-        if (func && func!=Py_None) {
-            pydata = PyTuple_GetItem(tuple, 1);
-            arglist = Py_BuildValue("(O)", pydata);
-            result = PyEval_CallObject(func, arglist);
-            Py_DECREF(arglist);
-            Py_XDECREF(result);
-        }
-    }
-
-    static void
-    pyTextFieldDidBeginEditing(WMTextFieldDelegate *self, WMNotification 
*notif)
-    {
-        PyObject *pyobj, *delegate, *func, *pydata, *arglist, *tuple, *result;
-        int action;
-
-        tuple = (PyObject*) self->data;
-        pyobj = PyTuple_GetItem(tuple, 0);
-        delegate = PyTuple_GetItem(tuple, 1);
-        if (delegate != Py_None) {
-            // should we call PyObject_HasAttrString()?? rather not and let
-            // python raise an exception because the object doesn't has the
-            // attribute
-            func = PyObject_GetAttrString(delegate, "didBeginEditing");
-            if (func!=NULL && func!=Py_None) {
-                pydata = PyObject_GetAttrString(delegate, "data");
-                if (!pydata) {
-                    Py_INCREF(Py_None);
-                    pydata = Py_None;
-                }
-                action = (int)WMGetNotificationClientData(notif);
-                arglist = Py_BuildValue("(OOi)", pyobj, pydata, action);
-                result = PyEval_CallObject(func, arglist);
-                Py_DECREF(pydata);
-                Py_DECREF(arglist);
-                Py_XDECREF(result);
-            }
-            Py_XDECREF(func);
-        }
-    }
-
-    static void
-    pyTextFieldDidChange(WMTextFieldDelegate *self, WMNotification *notif)
-    {
-        PyObject *pyobj, *delegate, *func, *pydata, *arglist, *tuple, *result;
-        int action;
-
-        tuple = (PyObject*) self->data;
-        pyobj = PyTuple_GetItem(tuple, 0);
-        delegate = PyTuple_GetItem(tuple, 1);
-        if (delegate != Py_None) {
-            func = PyObject_GetAttrString(delegate, "didChange");
-            if (func!=NULL && func!=Py_None) {
-                pydata = PyObject_GetAttrString(delegate, "data");
-                if (!pydata) {
-                    Py_INCREF(Py_None);
-                    pydata = Py_None;
-                }
-                action = (int)WMGetNotificationClientData(notif);
-                arglist = Py_BuildValue("(OOi)", pyobj, pydata, action);
-                result = PyEval_CallObject(func, arglist);
-                Py_DECREF(pydata);
-                Py_DECREF(arglist);
-                Py_XDECREF(result);
-            }
-            Py_XDECREF(func);
-        }
-    }
-
-    static void
-    pyTextFieldDidEndEditing(WMTextFieldDelegate *self, WMNotification *notif)
-    {
-        PyObject *pyobj, *delegate, *func, *pydata, *arglist, *tuple, *result;
-        int action;
-
-        tuple = (PyObject*) self->data;
-        pyobj = PyTuple_GetItem(tuple, 0);
-        delegate = PyTuple_GetItem(tuple, 1);
-        if (delegate != Py_None) {
-            func = PyObject_GetAttrString(delegate, "didEndEditing");
-            if (func!=NULL && func!=Py_None) {
-                pydata = PyObject_GetAttrString(delegate, "data");
-                if (!pydata) {
-                    Py_INCREF(Py_None);
-                    pydata = Py_None;
-                }
-                action = (int)WMGetNotificationClientData(notif);
-                arglist = Py_BuildValue("(OOi)", pyobj, pydata, action);
-                result = PyEval_CallObject(func, arglist);
-                Py_DECREF(pydata);
-                Py_DECREF(arglist);
-                Py_XDECREF(result);
-            }
-            Py_XDECREF(func);
-        }
-    }
-
-    static Bool
-    pyTextFieldShouldBeginEditing(WMTextFieldDelegate *self, WMTextField *tPtr)
-    {
-        PyObject *pyobj, *delegate, *func, *pydata, *arglist, *tuple, *result;
-        Bool retval = False;
-
-        tuple = (PyObject*) self->data;
-        pyobj = PyTuple_GetItem(tuple, 0);
-        delegate = PyTuple_GetItem(tuple, 1);
-        if (delegate != Py_None) {
-            func = PyObject_GetAttrString(delegate, "shouldBeginEditing");
-            if (func!=NULL && func!=Py_None) {
-                pydata = PyObject_GetAttrString(delegate, "data");
-                if (!pydata) {
-                    Py_INCREF(Py_None);
-                    pydata = Py_None;
-                }
-                arglist = Py_BuildValue("(OO)", pyobj, pydata);
-                result = PyEval_CallObject(func, arglist);
-                if (result!=Py_None && PyInt_AsLong(result)!=0) {
-                    retval = True;
-                }
-                Py_DECREF(pydata);
-                Py_DECREF(arglist);
-                Py_XDECREF(result);
-            }
-            Py_XDECREF(func);
-        }
-
-        return retval;
-    }
-
-    static Bool
-    pyTextFieldShouldEndEditing(WMTextFieldDelegate *self, WMTextField *tPtr)
-    {
-        PyObject *pyobj, *delegate, *func, *pydata, *arglist, *tuple, *result;
-        Bool retval = False;
-
-        tuple = (PyObject*) self->data;
-        pyobj = PyTuple_GetItem(tuple, 0);
-        delegate = PyTuple_GetItem(tuple, 1);
-        if (delegate != Py_None) {
-            func = PyObject_GetAttrString(delegate, "shouldEndEditing");
-            if (func!=NULL && func!=Py_None) {
-                pydata = PyObject_GetAttrString(delegate, "data");
-                if (!pydata) {
-                    Py_INCREF(Py_None);
-                    pydata = Py_None;
-                }
-                arglist = Py_BuildValue("(OO)", pyobj, pydata);
-                result = PyEval_CallObject(func, arglist);
-                if (result!=Py_None && PyInt_AsLong(result)!=0) {
-                    retval = True;
-                }
-                Py_DECREF(pydata);
-                Py_DECREF(arglist);
-                Py_XDECREF(result);
-            }
-            Py_XDECREF(func);
-        }
-
-        return retval;
-    }
-%}
-
-%inline %{
-    void pyWMSetWindowCloseAction(WMWindow *win, PyObject *pyacArgs) {
-        WMSetWindowCloseAction(win, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetButtonAction(WMButton *bPtr, PyObject *pyacArgs) {
-        WMSetButtonAction(bPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetScrollerAction(WMScroller *sPtr, PyObject *pyacArgs) {
-        WMSetScrollerAction(sPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetListAction(WMList *lPtr, PyObject *pyacArgs) {
-        WMSetListAction(lPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetListDoubleAction(WMList *lPtr, PyObject *pyacArgs) {
-        WMSetListDoubleAction(lPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetBrowserAction(WMBrowser *bPtr, PyObject *pyacArgs) {
-        WMSetBrowserAction(bPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetBrowserDoubleAction(WMBrowser *bPtr, PyObject *pyacArgs) {
-        WMSetBrowserDoubleAction(bPtr, PythonWMActionCallback, 
(void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetMenuItemAction(WMMenuItem *miPtr, PyObject *pyacArgs) {
-        WMSetMenuItemAction(miPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetPopUpButtonAction(WMPopUpButton *pPtr, PyObject *pyacArgs) {
-        WMSetPopUpButtonAction(pPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetSliderAction(WMSlider *sPtr, PyObject *pyacArgs) {
-        WMSetSliderAction(sPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetRulerMoveAction(WMRuler *rPtr, PyObject *pyacArgs) {
-        WMSetRulerMoveAction(rPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetRulerReleaseAction(WMRuler *rPtr, PyObject *pyacArgs) {
-        WMSetRulerReleaseAction(rPtr, PythonWMActionCallback, (void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void pyWMSetColorPanelAction(WMColorPanel *panel, PyObject *pyacArgs) {
-        WMSetColorPanelAction(panel, (WMAction2*)PythonWMActionCallback, 
(void*)pyacArgs);
-        Py_INCREF(pyacArgs);
-    }
-
-    void* pyWMAddTimerHandler(int miliseconds, PyObject *pycArgs) {
-        Py_INCREF(pycArgs);
-        return (void*)WMAddTimerHandler(miliseconds, PythonWMCallback,
-                                        (void*)pycArgs);
-    }
-
-    void* pyWMAddPersistentTimerHandler(int miliseconds, PyObject *pycArgs) {
-        Py_INCREF(pycArgs);
-        return (void*)WMAddPersistentTimerHandler(miliseconds, 
PythonWMCallback,
-                                                  (void*)pycArgs);
-    }
-
-    /* this doesn't work. we pass (func, data) as cdata at creation time, but
-     * only data at destruction, so it won't find it unless we change
-     * WMDeleteTimerWithClientData() to extract data from the tuple, and this
-     * requires access to the internals of WINGs
-    void pyWMDeleteTimerWithClientData(PyObject *pycData) {
-        WMDeleteTimerWithClientData((void*)pycData);
-    }*/
-
-    void pyWMDeleteTimerHandler(void *handlerID) {
-        WMDeleteTimerHandler((WMHandlerID)handlerID);
-    }
-
-    void* pyWMAddIdleHandler(PyObject *pycArgs) {
-        Py_INCREF(pycArgs);
-        return (void*)WMAddIdleHandler(PythonWMCallback, (void*)pycArgs);
-    }
-
-    void pyWMDeleteIdleHandler(void *handlerID) {
-        WMDeleteIdleHandler((WMHandlerID)handlerID);
-    }
-
-%}
-
-
-%exception pyWMSetTextFieldDelegate {
-    $function
-    if (PyErr_Occurred()) {
-        return NULL;
-    }
-}
-
-%inline %{
-    void pyWMSetTextFieldDelegate(WMTextField *tPtr, PyObject *txtArgs) {
-        WMTextFieldDelegate *td;
-
-        if (!txtArgs || !PyTuple_Check(txtArgs) || PyTuple_Size(txtArgs)!=2) {
-            PyErr_SetString(PyExc_TypeError, "invalid setting of WMTextField "
-                            "delegate. Should be '(self, delegate)'");
-            return;
-        }
-        // how do I check if txtArgs[1] is an instance of WMTextFieldDelegate?
-        td = WMGetTextFieldDelegate(tPtr);
-        if (!td) {
-            td = (WMTextFieldDelegate*)wmalloc(sizeof(WMTextFieldDelegate));
-            td->didBeginEditing    = pyTextFieldDidBeginEditing;
-            td->didChange          = pyTextFieldDidChange;
-            td->didEndEditing      = pyTextFieldDidEndEditing;
-            td->shouldBeginEditing = pyTextFieldShouldBeginEditing;
-            td->shouldEndEditing   = pyTextFieldShouldEndEditing;
-        } else {
-            Py_XDECREF((PyObject*)td->data);
-        }
-        Py_INCREF(txtArgs);
-        td->data = txtArgs;
-        WMSetTextFieldDelegate(tPtr, td);
-    }
-%}
-
-
-%inline %{
-    PyObject* pyWMGetTextFieldDelegate(WMTextField *tPtr) {
-        WMTextFieldDelegate *td;
-        PyObject *result, *tuple;
-
-        td = WMGetTextFieldDelegate(tPtr);
-        if (!td) {
-            Py_INCREF(Py_None);
-            return Py_None;
-        }
-
-        tuple = (PyObject*)td->data;
-        if (!tuple || !PyTuple_Check(tuple) || PyTuple_Size(tuple)!=2) {
-            PyErr_SetString(PyExc_TypeError, "invalid TextField delegate");
-            return NULL;
-        }
-
-        result = PyTuple_GetItem(tuple, 1);
-        if (!result)
-            result = Py_None;
-
-        Py_INCREF(result);
-
-        return result;
-    }
-%}
-
-
-/* ignore structures we will not use */
-%ignore ConnectionDelegate;
-
-/* ignore functions we don't need */
-// should we ignore vararg functions, or just convert them to functions with
-// a fixed number of parameters?
-%varargs(char*) wmessage;
-//%ignore wmessage;
-%ignore wwarning;
-%ignore wfatal;
-%ignore wsyserror;
-%ignore wsyserrorwithcode;
-%ignore WMCreatePLArray;
-%ignore WMCreatePLDictionary;
-
-%apply int *INPUT { int *argc };
-
-#define Bool int
-
-%include "WINGs/WUtil.h"
-
-/* ignore structures we will not use */
-
-/* ignore functions we don't need */
-
-%include "WINGs/WINGs.h"
-
-
-%{
-void
-WHandleEvents()
-{
-    /* Check any expired timers */
-    W_CheckTimerHandlers();
-
-    /* Do idle and timer stuff while there are no input events */
-    /* Do not wait for input here. just peek to se if input is available */
-    while (!W_HandleInputEvents(False, -1) && W_CheckIdleHandlers()) {
-        /* dispatch timer events */
-        W_CheckTimerHandlers();
-    }
-
-    W_HandleInputEvents(True, -1);
-
-    /* Check any expired timers */
-    W_CheckTimerHandlers();
-}
-%}
-
-
-/* rewrite functions originally defined as macros */
-%inline %{
-#undef WMDuplicateArray
-WMArray* WMDuplicateArray(WMArray* array) {
-    return WMCreateArrayWithArray(array);
-}
-
-#undef WMPushInArray
-void WMPushInArray(WMArray *array, void *item) {
-    WMAddToArray(array, item);
-}
-
-#undef WMSetInArray
-void* WMSetInArray(WMArray *array, int index, void *item) {
-    return WMReplaceInArray(array, index, item);
-}
-
-#undef WMRemoveFromArray
-int WMRemoveFromArray(WMArray *array, void *item) {
-    return WMRemoveFromArrayMatching(array, NULL, item);
-}
-
-#undef WMGetFirstInArray
-int WMGetFirstInArray(WMArray *array, void *item) {
-    return WMFindInArray(array, NULL, item);
-}
-
-#undef WMCreateBag
-WMBag* WMCreateBag(int size) {
-    return WMCreateTreeBag();
-}
-
-#undef WMCreateBagWithDestructor
-WMBag* WMCreateBagWithDestructor(int size, WMFreeDataProc *destructor) {
-    return WMCreateTreeBagWithDestructor(destructor);
-}
-
-#undef WMSetInBag
-void* WMSetInBag(WMBag *bag, int index, void *item) {
-    return WMReplaceInBag(bag, index, item);
-}
-
-#undef WMAddItemToTree
-WMTreeNode* WMAddItemToTree(WMTreeNode *parent, void *item) {
-    return WMInsertItemInTree(parent, -1, item);
-}
-
-#undef WMAddNodeToTree
-WMTreeNode* WMAddNodeToTree(WMTreeNode *parent, WMTreeNode *aNode) {
-    return WMInsertNodeInTree(parent, -1, aNode);
-}
-
-#undef WMGetFirstInTree
-/* Returns first tree node that has data == cdata */
-WMTreeNode* WMGetFirstInTree(WMTreeNode *aTree, void *cdata) {
-    return WMFindInTree(aTree, NULL, cdata);
-}
-
-#undef WMFlushConnection
-int WMFlushConnection(WMConnection *cPtr) {
-    return WMSendConnectionData(cPtr, NULL);
-}
-
-#undef WMGetConnectionQueuedData
-WMArray* WMGetConnectionQueuedData(WMConnection *cPtr) {
-    return WMGetConnectionUnsentData(cPtr);
-}
-
-#undef WMWidgetClass
-W_Class WMWidgetClass(WMWidget *widget) {
-    return (((W_WidgetType*)(widget))->widgetClass);
-}
-
-#undef WMWidgetView
-WMView* WMWidgetView(WMWidget *widget) {
-    return (((W_WidgetType*)(widget))->view);
-}
-
-#undef WMCreateCommandButton
-WMButton* WMCreateCommandButton(WMWidget *parent) {
-    return WMCreateCustomButton(parent, WBBSpringLoadedMask|WBBPushInMask
-                                |WBBPushLightMask|WBBPushChangeMask);
-}
-
-#undef WMCreateRadioButton
-WMButton* WMCreateRadioButton(WMWidget *parent) {
-    return WMCreateButton(parent, WBTRadio);
-}
-
-#undef WMCreateSwitchButton
-WMButton* WMCreateSwitchButton(WMWidget *parent) {
-    return WMCreateButton(parent, WBTSwitch);
-}
-
-#undef WMAddListItem
-WMListItem* WMAddListItem(WMList *lPtr, char *text)
-{
-    return WMInsertListItem(lPtr, -1, text);
-}
-
-#undef WMCreateText
-WMText* WMCreateText(WMWidget *parent) {
-    return WMCreateTextForDocumentType(parent, NULL, NULL);
-}
-
-#undef WMRefreshText
-void WMRefreshText(WMText *tPtr) {
-    return WMThawText(tPtr);
-}
-
-#undef WMClearText
-void WMClearText(WMText *tPtr) {
-    return WMAppendTextStream(tPtr, NULL);
-}
-%}
-
-
diff --git a/WINGs/python/WINGs.py b/WINGs/python/WINGs.py
deleted file mode 100644
index dbdccde..0000000
--- a/WINGs/python/WINGs.py
+++ /dev/null
@@ -1,643 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import wings
-
-# Some useful constants
-
-False = 0
-True = 1
-
-# check about None as action for buttonAction/windowCloseAction ...
-
-################################################################################
-# Exceptions
-################################################################################
-from exceptions import Exception, StandardError
-
-class Error(StandardError):
-    pass
-
-del Exception, StandardError
-
-class WMTimer:
-    def __init__(self, milliseconds, callback, cdata=None, persistent=False):
-        if persistent:
-            self._o = wings.pyWMAddPersistentTimerHandler(milliseconds, 
(callback, cdata))
-        else:
-            self._o = wings.pyWMAddTimerHandler(milliseconds, (callback, 
cdata))
-        self.__WMDeleteTimerHandler = wings.pyWMDeleteTimerHandler
-
-    def __del__(self):
-        self.__WMDeleteTimerHandler(self._o)
-
-
-class WMPersistentTimer(WMTimer):
-    def __init__(self, milliseconds, callback, cdata=None):
-        WMTimer.__init__(self, milliseconds, callback, cdata, persistent=True)
-
-
-class WMScreen:
-    __readonly = ('display', 'width', 'height', 'depth')
-
-    def __init__(self, appname, display="", simpleapp=False):
-        wings.WMInitializeApplication(appname, len(sys.argv), sys.argv)        
-        self._o = wings.pyWMOpenScreen(display, simpleapp)
-        if not self._o:
-            raise Error, "Cannot open display %s" % display
-        self.__dict__['display'] = wings.WMScreenDisplay(self._o)
-        self.__dict__['width'] = wings.WMScreenWidth(self._o)
-        self.__dict__['height'] = wings.WMScreenHeight(self._o)
-        self.__dict__['depth'] = wings.WMScreenDepth(self._o)
-
-    def __setattr__(self, name ,value):
-        if name in self.__readonly:
-            #raise AttributeError, "'%s' is a read-only WMScreen attribute" % 
name
-            raise Error, "'%s' is a read-only WMScreen attribute" % name
-        self.__dict__[name] = value
-
-    def __delattr__(self, name):
-        if name in self.__readonly:
-            #raise AttributeError, "'%s' attribute cannot be deleted from 
WMScreen instance" % name
-            raise Error, "'%s' attribute cannot be deleted from WMScreen 
instance" % name
-        try:
-            del(self.__dict__[name])
-        except KeyError:
-            raise AttributeError, "%s instance has no attribute '%s'" % \
-                                  (self.__class__.__name__, name)
-
-    def mainLoop(self):
-        wings.pyWMScreenMainLoop(self._o)
-
-    def breakMainLoop(self):
-        wings.pyWMBreakScreenMainLoop(self._o)
-
-    def runModalLoop(self, view):
-        wings.pyWMRunModalLoop(self._o, view)
-
-    def breakModalLoop(self):
-        wings.WMBreakModalLoop(self._o)
-
-    def size(self):
-        return (self.width, self.height)
-
-
-class WMView:
-    pass
-
-
-class WMWidget(WMView):
-    def __init__(self):
-        if self.__class__ == WMWidget:
-            raise Error, "a WMWidget can't be instantiated directly"
-        self._o = None
-        self.__WMDestroyWidget = wings.WMDestroyWidget
-
-    def __del__(self):
-        if self._o is not None:
-            self.__WMDestroyWidget(self._o)
-
-    def resize(self, width, height):
-        wings.WMResizeWidget(self._o, width, height)
-
-    def move(self, x, y):
-        wings.WMMoveWidget(self._o, x, y)
-
-    def realize(self):
-        wings.WMRealizeWidget(self._o)
-
-    def show(self):
-        wings.WMMapWidget(self._o)
-
-    def hide(self):
-        wings.WMUnmapWidget(self._o)
-
-    def redisplay(self):
-        wings.WMRedisplayWidget(self._o)
-    
-    def width(self):
-        return wings.WMWidgetWidth(self._o)
-    
-    def height(self):
-        return wings.WMWidgetHeight(self._o)
-
-    def screen(self):
-        return wings.WMWidgetScreen(self._o)
-
-    def view(self):
-        return wings.WMWidgetView(self._o)
-
-    def setFocusTo(self, other):
-        wings.WMSetFocusToWidget(other._o)
-
-
-class WMWindow(WMWidget):
-    def __init__(self, screen, name, style=wings.WMTitledWindowMask
-                 |wings.WMClosableWindowMask|wings.WMMiniaturizableWindowMask
-                 |wings.WMResizableWindowMask):
-        WMWidget.__init__(self)
-        self._o = wings.WMCreateWindowWithStyle(screen._o, name, style)
-    
-    def setMinSize(self, minWidth, minHeight):
-        wings.WMSetWindowMinSize(self._o, minWidth, minHeight)
-    
-    def setMaxSize(self, maxWidth, maxHeight):
-        wings.WMSetWindowMaxSize(self._o, maxWidth, maxHeight)
-    
-    def setInitialPosition(self, x, y):
-        wings.WMSetWindowInitialPosition(self._o, x, y)
-    
-    def setTitle(self, title):
-        wings.WMSetWindowTitle(self._o, title)
-
-    def setCloseAction(self, action, data=None):
-        if action!=None and (not callable(action)):
-            raise Error, "action needs to be a callable object or None"
-        wings.pyWMSetWindowCloseAction(self._o, (self, action, data))
-
-
-class WMPanel(WMWindow):
-    def __init__(self, owner, name, style=wings.WMTitledWindowMask
-                 |wings.WMClosableWindowMask|wings.WMResizableWindowMask):
-        WMWidget.__init__(self)
-        self._o = wings.WMCreatePanelWithStyleForWindow(owner._o, name, style)
-
-class WMFrame(WMWidget):
-    def __init__(self, parent, title=None):
-        WMWidget.__init__(self)
-        self._o = wings.WMCreateFrame(parent._o)
-        self.setTitle(title)
-
-    def setRelief(self, relief):
-        wings.WMSetFrameRelief(self._o, relief)
-
-    def setTitle(self, title=""):
-        wings.WMSetFrameTitle(self._o, title)
-
-    def setTitlePosition(self, position):
-        wings.WMSetFrameTitlePosition(self._o, position)
-
-class WMLabel(WMWidget):
-    def __init__(self, parent, text=None):
-        WMWidget.__init__(self)
-        self._o = wings.WMCreateLabel(parent._o)
-        self.setText(text)
-
-    def setWraps(self, flag):
-        # bool(flag) for python2.2
-        wings.WMSetLabelWraps(self._o, flag)
-
-    def setRelief(self, relief):
-        wings.WMSetLabelRelief(self._o, relief)
-
-    def setText(self, text=""):
-        wings.WMSetLabelText(self._o, text)
-
-    def setTextColor(self, color):
-        wings.WMSetLabelTextColor(self._o, color)
-
-    def setFont(self, font):
-        wings.WMSetLabelFont(self._o, font)
-
-    def setTextAlignment(self, alignment):
-        wings.WMSetLabelTextAlignment(self._o, alignment)
-
-    def setImage(self, image):
-        wings.WMSetLabelImage(self._o, image)
-
-    def setImagePosition(self, position):
-        wings.WMSetLabelImagePosition(self._o, position)
-
-    def text(self):
-        return wings.WMGetLabelText(self._o)
-
-    def font(self):
-        return wings.WMGetLabelFont(self._o)
-
-    def image(self):
-        return wings.WMGetLabelImage(self._o)
-
-
-class WMBox(WMWidget):
-    def __init__(self, parent):
-        WMWidget.__init__(self)
-        self._o = wings.WMCreateBox(parent._o)
-
-    def setHorizontal(self, flag):
-        # bool(flag) for python2.2
-        wings.WMSetBoxHorizontal(self._o, flag)
-
-    def setBorderWidth(self, width):
-        wings.WMSetBoxBorderWidth(self._o, width)
-
-    def addSubview(self, view, expand, fill, minSize, maxSize, space):
-        wings.WMAddBoxSubview(self._o, view, expand, fill, minSize, maxSixe, 
space)
-
-    def addSubviewAtEnd(self, view, expand, fill, minSize, maxSize, space):
-        wings.WMAddBoxSubviewAtEnd(self._o, view, expand, fill, minSize, 
maxSixe, space)
-
-    def removeSubview(self, view):
-        wings.WMRemoveBoxSubview(self._o, view)
-
-
-class WMButton(WMWidget): # not for user instantiation
-    def __init__(self, parent):
-        WMWidget.__init__(self)
-        if self.__class__ == WMButton:
-            raise Error, "a WMButton can't be instantiated directly"
-
-
-    def setText(self, text=""):
-        wings.WMSetButtonText(self._o, text)
-
-    def setAction(self, action, data=None):
-        if action!=None and (not callable(action)):
-            raise Error, "action needs to be a callable object or None"
-        wings.pyWMSetButtonAction(self._o, (self, action, data))
-
-    def performClick(self):
-        wings.WMPerformButtonClick(self._o)
-
-    def setEnabled(self, flag):
-        # bool(flag) for python2.2
-        wings.WMSetButtonEnabled(self._o, flag)
-
-    def isEnabled(self):
-        return wings.WMGetButtonEnabled(self._o)
-
-    def setImageDimsWhenDisabled(self, flag):
-        # bool(flag)
-        wings.WMSetButtonImageDimsWhenDisabled(self._o, flag)
-    
-    def setImage(self, image):
-        wings.WMSetButtonImage(self_.o, image)
-    
-    def setAlternateImage(self, image):
-        wings.WMSetButtonAltImage(self._o, image)
-    
-    def setImagePosition(self, position):
-        wings.WMSetButtonImagePosition(self._o, position)
-    
-    def setImageDefault(self):
-        wings.WMSetButtonImageDefault(self._o)
-    
-
-class WMCommandButton(WMButton):
-    def __init__(self, parent):
-        WMButton.__init__(self, parent)
-        self._o = wings.WMCreateCommandButton(parent._o)
-
-
-class WMSwitchButton(WMButton):
-    def __init__(self, parent):
-        WMButton.__init__(self, parent)
-        self._o = wings.WMCreateSwitchButton(parent._o)
-
-
-class WMRadioButton(WMButton):
-    def __init__(self, parent, group=None):
-        WMButton.__init__(self, parent)
-        self._o = wings.WMCreateRadioButton(parent._o)
-        if group:
-            wings.WMGroupButtons(group._o, self._o)
-
-
-class WMListItem:
-    pass
-
-
-class WMList(WMWidget):
-    def __init__(self, parent):
-        WMWidget.__init__(self)
-        self._o = wings.WMCreateList(parent._o)
-
-    def allowEmptySelection(self, flag):
-        # bool(flag)
-        wings.WMSetListAllowEmptySelection(self._o, flag)
-
-    def allowMultipleSelection(self, flag):
-        # bool(flag)
-        wings.WMSetListAllowMultipleSelection(self._o, flag)
-
-    def addItem(self, item):
-        wings.WMAddListItem(self._o, item)
-
-    def insertItem(self, row, item):
-        wings.WMInsertListItem(self._o, row, item)
-
-    def sortItems(self):
-        wings.WMSortListItems(self._o)
-
-    def rowWithTitle(self, title):
-        return wings.WMFindRowOfListItemWithTitle(self._o, title)
-
-    def selectedItemRow(self):
-        return wings.WMGetListSelectedItemRow(self._o)
-
-    def selectedItem(self):
-        return wings.WMGetListSelectedItem(self._o)
-
-    def removeItem(self, index):
-        wings.WMRemoveListItem(self._o, index)
-
-    def selectItem(self, index):
-        wings.WMSelectListItem(self._o, index)
-
-    def unselectItem(self, index):
-        wings.WMUnselectListItem(self._o, index)
-
-
-class WMTextFieldDelegate:
-    __callbacks = ('didBeginEditing', 'didChange', 'didEndEditing',
-                   'shouldBeginEditing', 'shouldEndEditing')
-
-    def __init__(self):
-        self.__dict__['data'] = None
-        self.__dict__['didBeginEditing'] = None
-        self.__dict__['didChange'] = None
-        self.__dict__['didEndEditing'] = None
-        self.__dict__['shouldBeginEditing'] = None
-        self.__dict__['shouldEndEditing'] = None
- 
-    def __setattr__(self, name ,value):
-        if name in self.__callbacks and value!=None and (not callable(value)):
-            #raise AttributeError, "%s.%s needs to be a callable object or 
None" % (self.__class__.__name__, name)
-            raise Error, "%s.%s needs to be a callable object or None" % 
(self.__class__.__name__, name)
-        else:
-            self.__dict__[name] = value
-
-
-class WMTextField(WMWidget):
-    def __init__(self, parent, text=""):
-        WMWidget.__init__(self)
-        self._o = wings.WMCreateTextField(parent._o)
-        wings.WMSetTextFieldText(self._o, text)
-
-    def setDelegate(self, delegate):
-        if delegate.__class__ != WMTextFieldDelegate:
-            raise Error, "textfield delegate must be of type 
'WMTextFieldDelegate'"
-        wings.pyWMSetTextFieldDelegate(self._o, (self, delegate))
-
-    def delegate(self):
-        return wings.pyWMGetTextFieldDelegate(self._o)
-
-    def text(self):
-        return wings.WMGetTextFieldText(self._o)
-
-    def setEditable(self, flag):
-        # bool(flag)
-        wings.WMSetTextFieldEditable(self._o, flag)
-
-    def setBordered(self, flag):
-        # bool(flag)
-        wings.WMSetTextFieldBordered(self._o, flag)
-
-    def setBeveled(self, flag):
-        # bool(flag)
-        wings.WMSetTextFieldBeveled(self._o, flag)
-
-    def setSecure(self, flag):
-        # bool(flag)
-        wings.WMSetTextFieldSecure(self._o, flag)
-
-    def setCursorPosition(self, position):
-        wings.WMSetTextFieldCursorPosition(self._o, position)
-
-    def setNextText(self, next):
-        wings.WMSetTextFieldNextTextField(self._o, next._o)
-
-    def setPreviousText(self, previous):
-        wings.WMSetTextFieldPrevTextField(self._o, previous._o)
-
-    def setTextAlignment(self, alignment):
-        wings.WMSetTextFieldAlignment(self._o, alignment)
-
-    def isEditable(self):
-        return wings.WMGetTextFieldEditable(self._o)
-
-    def insertText(self, text, position):
-        wings.WMInsertTextFieldText(self._o, text, position)
-
-    def deleteText(self, start, count):
-        wings.WMDeleteTextFieldRange(self._o, wings.wmkrange(start, count))
-
-    def selectText(self, start, count):
-        wings.WMSelectTextFieldRange(self._o, wings.wmkrange(start, count))
-
-    def setFont(self, font):
-        wings.WMSetTextFieldFont(self._o, font)
-
-    def font(self):
-        return wings.WMGetTextFieldFont(self._o)
-
-
-################################################################################
-# wrap the WINGs constants so we don't need wings.constant_name
-################################################################################
-
-# WMWindow title style
-WMTitledWindowMask         = wings.WMTitledWindowMask
-WMClosableWindowMask       = wings.WMClosableWindowMask
-WMMiniaturizableWindowMask = wings.WMMiniaturizableWindowMask
-WMResizableWindowMask      = wings.WMResizableWindowMask
-
-# WMFrame title positions
-WTPNoTitle     = wings.WTPNoTitle
-WTPAboveTop    = wings.WTPAboveTop
-WTPAtTop       = wings.WTPAtTop
-WTPBelowTop    = wings.WTPBelowTop
-WTPAboveBottom = wings.WTPAboveBottom
-WTPAtBottom    = wings.WTPAtBottom
-WTPBelowBottom = wings.WTPBelowBottom
-
-# Alingments
-WALeft      = wings.WALeft
-WACenter    = wings.WACenter
-WARight     = wings.WARight
-WAJustified = wings.WAJustified        # not valid for textfields
-
-# Image positions
-WIPNoImage   = wings.WIPNoImage
-WIPImageOnly = wings.WIPImageOnly
-WIPLeft      = wings.WIPLeft
-WIPRight     = wings.WIPRight
-WIPBelow     = wings.WIPBelow
-WIPAbove     = wings.WIPAbove
-WIPOverlaps  = wings.WIPOverlaps
-
-# Relief types
-WRFlat   = wings.WRFlat
-WRSimple = wings.WRSimple
-WRRaised = wings.WRRaised
-WRSunken = wings.WRSunken
-WRGroove = wings.WRGroove
-WRRidge  = wings.WRRidge
-WRPushed = wings.WRPushed
-
-
-# TextField events
-WMReturnTextMovement  = wings.WMReturnTextMovement
-WMEscapeTextMovement  = wings.WMEscapeTextMovement
-WMIllegalTextMovement = wings.WMIllegalTextMovement
-WMTabTextMovement     = wings.WMTabTextMovement
-WMBacktabTextMovement = wings.WMBacktabTextMovement
-WMLeftTextMovement    = wings.WMLeftTextMovement
-WMRightTextMovement   = wings.WMRightTextMovement
-WMUpTextMovement      = wings.WMUpTextMovement
-WMDownTextMovement    = wings.WMDownTextMovement
-
-
-if __name__ == "__main__":
-    def quit(obj, data):
-        #sys.exit()
-        scr.breakMainLoop()
-
-    def click(btn, list):
-        print win.width(), win.height()
-        print list.selectedItemRow()
-        win2.show()
-        scr.runModalLoop(win2.view())
-        print txt2.text()
-
-    def sayhi(btn, data):
-        print "hi"
-
-    def breakLoop(btn, data):
-        #sys.exit()
-        scr.breakModalLoop()
-        win2.hide()
-
-    def dc(object, data, action):
-        print "didChange:", object, data, action
-
-    def dbe(object, data, action):
-        print "didBeginEditing:", object, data, action
-
-    def dee(object, data, action):
-        if action == wings.WMReturnTextMovement:
-            if object == txt:
-                object.setFocusTo(txt2)
-            else:
-                object.setFocusTo(txt)
-        print "didEndEditing:", object, data, action, object.text()
-
-    def tcb(one):
-        old = list.selectedItemRow()
-        list.selectItem(list.index)
-        list.unselectItem(old)
-        list.index = (list.index+1) % 3
-        #print one
-
-    scr = WMScreen("foobar")
-    win = WMWindow(scr, "aWindow")
-    win.setCloseAction(quit)
-    win.setTitle("test window")
-    win.resize(400, 180)
-    win.setInitialPosition((scr.width-win.width())/2, 
(scr.height-win.height())/2)
-
-    btn = WMCommandButton(win)
-    btn.setText("Click Me")
-    btn.resize(100, 25)
-    btn.move(20, 20)
-    btn.show()
-
-    sw = WMSwitchButton(win)
-    sw.setText("Some option")
-    sw.resize(100, 25)
-    sw.move(20, 50)
-    sw.show()
-
-    radios = []
-    r = None
-    j = 0
-    for i in ["One", "Two", "Four"]:
-        r = WMRadioButton(win, r)
-        radios.append(r)
-        r.show()
-        r.setText(i)
-        r.move(20, 70+j*25)
-        r.resize(100, 25)
-        j=j+1
-
-    sw.setAction(sayhi)
-
-    list = WMList(win)
-    list.resize(100,100)
-    list.move(130, 20)
-    list.addItem("one")
-    list.addItem("two")
-    list.addItem("three")
-    list.allowMultipleSelection(1)
-    list.show()
-    list.index = 0
-
-    txtdel = WMTextFieldDelegate()
-    txtdel.data = 'mydata'
-    txtdel.didBeginEditing = dbe
-    txtdel.didEndEditing = dee
-    txtdel.didChange = dc
-
-    txt = WMTextField(win, "abc")
-    txt.resize(95, 20)
-    txt.move(295, 20)
-    txt.setDelegate(txtdel)
-    txt.show()
-    txt2 = WMTextField(win, "01234567890")
-    txt2.resize(95, 20)
-    txt2.move(295, 45)
-    txt2.setDelegate(txtdel)
-    txt2.show()
-
-    txt.setNextText(txt2)
-    txt2.setNextText(txt)
-
-    label = WMLabel(win, "Text1:")
-    label.setTextAlignment(WARight)
-    label.move(240, 20)
-    label.resize(55, 20)
-    label.show()
-
-    label2 = WMLabel(win, "mytext2:")
-    label2.setTextAlignment(WARight)
-    label2.move(240, 45)
-    label2.resize(55, 20)
-    label2.show()
-    
-    btn.setAction(click, list)
-    
-    frame = WMFrame(win, "My Frame")
-    frame.resize(150, 50)
-    frame.move(240, 70)
-    #frame.setRelief(WRPushed)
-    frame.show()
-    
-    ebtn = WMCommandButton(win)
-    ebtn.setText("Exit")
-    ebtn.resize(100, 25)
-    ebtn.move(290, 147)
-    ebtn.setAction(quit)
-    ebtn.show()
-
-    win.realize()
-    win.show()
-
-    timer = WMPersistentTimer(1000, tcb, win)
-    #del(timer)
-    #timer.delete()
-
-    win2 = WMPanel(win, "anotherWindow", WMTitledWindowMask)
-    win2.setTitle("transient test window")
-    win2.resize(150, 50)
-    win2.setInitialPosition((scr.width-win2.width())/2, 
(scr.height-win2.height())/2)
-
-    btn7 = WMCommandButton(win2)
-    btn7.setText("Dismiss")
-    btn7.resize(100, 25)
-    btn7.move(27, 10)
-    btn7.show()
-    btn7.setAction(breakLoop)
-
-    win2.realize()
-    
-    scr.mainLoop()
-
diff --git a/WINGs/python/setup.py b/WINGs/python/setup.py
deleted file mode 100755
index 0659887..0000000
--- a/WINGs/python/setup.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-
-"""Setup script for the WINGs module distribution."""
-
-import os, sys
-from distutils.core import setup
-from distutils.extension import Extension
-
-## Get the include dirs
-wings = os.popen("get-wings-flags --cflags", "r")
-flags = wings.read().split()
-include_dirs = [x[2:] for x in flags]
-#include_dirs += [".."]
-wings.close()
-
-## Get the library dirs
-wings = os.popen("get-wings-flags --ldflags", "r")
-flags = wings.read().split()
-library_dirs = [x[2:] for x in flags]
-#library_dirs += [".."]
-wings.close()
-
-## Get the libraries
-wings = os.popen("get-wings-flags --libs", "r")
-flags = wings.read().split()
-libraries = [x[2:] for x in flags]
-wings.close()
-
-runtime_library_dirs = []
-extra_objects = []
-extra_compile_args = ['-Wno-strict-prototypes', '-Wno-unused']
-
-long_description = \
-"""Python interface to the WINGs library
-
-Python WINGs is an interface to WINGs, a small widget set with the
-N*XTSTEP look and feel. It's API is inspired in OpenStep and it's
-implementation borrows some ideas from Tk. It has a reasonable set of
-widgets, sufficient for building small applications (like a CDPlayer
-or hacking something like rxvt). It also has other functions that are
-usefull for applications, like a User Defaults alike configuration
-manager and a notification system.
-
-"""
-
-setup (# Distribution meta-data
-        name = "Python-WINGs",
-        version = "0.81.0",
-        description = "A python interface to WINGs",
-        long_description=long_description,
-        author = "Dan Pascu",
-        author_email = "[email protected]",
-        license = "GPL",
-        platforms = "ALL",
-        url = "http://windowmaker.info/";,
-
-        # Description of the modules and packages in the distribution
-
-        py_modules = ["WINGs"],
-
-        ext_modules = [Extension(
-                name='wings',
-                sources=['WINGs.c'],
-                include_dirs=include_dirs,
-                library_dirs=library_dirs,
-                runtime_library_dirs=runtime_library_dirs,
-                libraries=libraries,
-                extra_objects=extra_objects,
-                extra_compile_args=extra_compile_args,
-                )],
-)
diff --git a/WINGs/python/test.py b/WINGs/python/test.py
deleted file mode 100755
index de98188..0000000
--- a/WINGs/python/test.py
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-from WINGs import *
-
-if __name__ == "__main__":
-    def quit(obj, data):
-        #sys.exit()
-        scr.breakMainLoop()
-
-    def click(btn, list):
-        print win.width(), win.height()
-        print list.selectedItemRow()
-        win2.show()
-        scr.runModalLoop(win2.view())
-        print txt2.text()
-
-    def sayhi(btn, data):
-        print "hi"
-
-    def breakLoop(btn, data):
-        #sys.exit()
-        scr.breakModalLoop()
-        win2.hide()
-
-    def dc(object, data, action):
-        print "didChange:", object, data, action
-
-    def dbe(object, data, action):
-        print "didBeginEditing:", object, data, action
-
-    def dee(object, data, action):
-        if action == wings.WMReturnTextMovement:
-            if object == txt:
-                object.setFocusTo(txt2)
-            else:
-                object.setFocusTo(txt)
-        print "didEndEditing:", object, data, action, object.text()
-
-    def tcb(one):
-        old = list.selectedItemRow()
-        list.selectItem(list.index)
-        list.unselectItem(old)
-        list.index = (list.index+1) % 3
-        #print one
-
-    scr = WMScreen("foobar")
-    win = WMWindow(scr, "aWindow")
-    win.setCloseAction(quit)
-    win.setTitle("test window")
-    win.resize(400, 180)
-    win.setInitialPosition((scr.width-win.width())/2, 
(scr.height-win.height())/2)
-
-    btn = WMCommandButton(win)
-    btn.setText("Click Me")
-    btn.resize(100, 25)
-    btn.move(20, 20)
-    btn.show()
-
-    sw = WMSwitchButton(win)
-    sw.setText("Some option")
-    sw.resize(100, 25)
-    sw.move(20, 50)
-    sw.show()
-
-    radios = []
-    r = None
-    j = 0
-    for i in ["One", "Two", "Four"]:
-        r = WMRadioButton(win, r)
-        radios.append(r)
-        r.show()
-        r.setText(i)
-        r.move(20, 70+j*25)
-        r.resize(100, 25)
-        j=j+1
-
-    sw.setAction(sayhi)
-
-    list = WMList(win)
-    list.resize(100,100)
-    list.move(130, 20)
-    list.addItem("one")
-    list.addItem("two")
-    list.addItem("three")
-    list.allowMultipleSelection(1)
-    list.show()
-    list.index = 0
-
-    txtdel = WMTextFieldDelegate()
-    txtdel.data = 'mydata'
-    txtdel.didBeginEditing = dbe
-    txtdel.didEndEditing = dee
-    txtdel.didChange = dc
-
-    txt = WMTextField(win)
-    txt.resize(95, 20)
-    txt.move(295, 20)
-    txt.setDelegate(txtdel)
-    txt.show()
-    txt2 = WMTextField(win, "01234567890")
-    txt2.resize(95, 20)
-    txt2.move(295, 45)
-    txt2.setDelegate(txtdel)
-    txt2.show()
-
-    txt.setNextText(txt2)
-    txt2.setNextText(txt)
-
-    label = WMLabel(win, "Text1:")
-    label.setTextAlignment(WARight)
-    label.move(240, 20)
-    label.resize(55, 20)
-    label.show()
-
-    label2 = WMLabel(win, "mytext2:")
-    label2.setTextAlignment(WARight)
-    label2.move(240, 45)
-    label2.resize(55, 20)
-    label2.show()
-    
-    btn.setAction(click, list)
-    
-    frame = WMFrame(win, "My Frame")
-    frame.resize(150, 50)
-    frame.move(240, 70)
-    #frame.setRelief(WRPushed)
-    frame.show()
-    
-    ebtn = WMCommandButton(win)
-    ebtn.setText("Exit")
-    ebtn.resize(100, 25)
-    ebtn.move(290, 147)
-    ebtn.setAction(quit)
-    ebtn.show()
-
-    win.realize()
-    win.show()
-
-    timer = WMPersistentTimer(1000, tcb, win)
-    #del(timer)
-    #timer.delete()
-    
-    win2 = WMPanel(win, "anotherWindow", WMTitledWindowMask)
-    win2.setTitle("transient test window")
-    win2.resize(150, 50)
-    win2.setInitialPosition((scr.width-win2.width())/2, 
(scr.height-win2.height())/2)
-
-    btn7 = WMCommandButton(win2)
-    btn7.setText("Dismiss")
-    btn7.resize(100, 25)
-    btn7.move(27, 10)
-    btn7.show()
-    btn7.setAction(breakLoop)
-
-    win2.realize()
-    
-    scr.mainLoop()
-
-- 
1.7.0.2.276.g60daf


-- 
To unsubscribe, send mail to [email protected].

Reply via email to