all repos — openbox @ 58ff3f35c2b712ec92b093ffd8b96331615f546a

openbox fork - make it a bit more like ryudo

otk_c/rect.c (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// -*- mode: C; indent-tabs-mode: nil; c-basic-offset: 2; -*-

#include "../config.h"
#include "rect.h"

PyObject *OtkRect_New(int x, int y, int width, int height)
{
  OtkRect* 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 */
};