all repos — openbox @ 8d3d9ae75c3b023288af18492713b00ca8244fe1

openbox fork - make it a bit more like ryudo

add rect
Dana Jansens danakj@orodu.net
commit

8d3d9ae75c3b023288af18492713b00ca8244fe1

parent

e5c5b4bf700f9bf00dd88bd4b6a471ac1ccefaff

3 files changed, 104 insertions(+), 2 deletions(-)

jump to
M otk_c/Makefileotk_c/Makefile

@@ -3,8 +3,8 @@ exec_prefix=$(prefix)

libdir=$(exec_prefix)/lib targets = libotk.so libotk.a -sources = display.c screeninfo.c -headers = display.h screeninfo.h +sources = display.c screeninfo.c rect.c +headers = display.h screeninfo.h rect.h CFLAGS+=-I/usr/gwar/include/python2.2
A otk_c/rect.c

@@ -0,0 +1,94 @@

+// -*- mode: C; indent-tabs-mode: nil; -*- + +#include "../config.h" +#include "rect.h" + +extern PyTypeObject OtkRect_Type; + +PyObject *OtkRect_New(int x, int y, int width, int height) +{ + OtkRect* self; + + self = PyObject_New(OtkRect, &OtkRect_Type); + + self->x = x; + self->y = y; + self->width = width; + self->height = height; + + return (PyObject*)self; +} + + + +static PyObject *otkrect_getx(OtkRect* self, PyObject* args) +{ + if (!PyArg_ParseTuple(args, ":getX")) + return NULL; + return PyInt_FromLong(self->x); +} + +static PyObject *otkrect_gety(OtkRect* self, PyObject* args) +{ + if (!PyArg_ParseTuple(args, ":getY")) + return NULL; + return PyInt_FromLong(self->y); +} + +static PyObject *otkrect_getwidth(OtkRect* self, PyObject* args) +{ + if (!PyArg_ParseTuple(args, ":getWidth")) + return NULL; + return PyInt_FromLong(self->width); +} + +static PyObject *otkrect_getheight(OtkRect* self, PyObject* args) +{ + if (!PyArg_ParseTuple(args, ":getHeight")) + return NULL; + return PyInt_FromLong(self->height); +} + + +static PyMethodDef get_methods[] = { + {"getX", (PyCFunction)otkrect_getx, METH_VARARGS, + "Get the X coordinate."}, + {"getY", (PyCFunction)otkrect_gety, METH_VARARGS, + "Get the Y coordinate."}, + {"getWidth", (PyCFunction)otkrect_getwidth, METH_VARARGS, + "Get the width."}, + {"getHeight", (PyCFunction)otkrect_getheight, METH_VARARGS, + "Get the height."}, + {NULL, NULL, 0, NULL} +}; + + + +static void otkrect_dealloc(PyObject* self) +{ + PyObject_Del(self); +} + +static PyObject *otkrect_getattr(PyObject *obj, char *name) +{ + return Py_FindMethod(get_methods, obj, name); +} + + +PyTypeObject OtkRect_Type = { + PyObject_HEAD_INIT(NULL) + 0, + "OtkRect", + sizeof(OtkRect), + 0, + otkrect_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + otkrect_getattr, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ +};
M otk_c/rect.hotk_c/rect.h

@@ -1,5 +1,13 @@

+// -*- mode: C; indent-tabs-mode: nil; -*- +#ifndef __rect_h +#define __rect_h + +#include <Python.h> + typedef struct { int x, y, width, height; } OtkRect; PyObject *OtkRect_New(int x, int y, int width, int height); + +#endif // __rect_h