File: gdkimlibmain.i

package info (click to toggle)
python-gtk 0.5.3-2
  • links: PTS
  • area: main
  • in suites: slink
  • size: 1,604 kB
  • ctags: 4,295
  • sloc: ansic: 19,390; python: 8,220; makefile: 91; sh: 26
file content (44 lines) | stat: -rw-r--r-- 1,019 bytes parent folder | download
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
%{

typedef struct {
  PyObject_HEAD
  GtkObject *go;
} PyGtk_Object;
PyTypeObject *PyGtk_Type;
#define PyGtk_Check(op) ((op)->ob_type == PyGtk_Type)

static PyObject *(*PyGtk_New)(GtkObject *go);

static PyObject * gdk__imlib_init(PyObject *self, PyObject *args) {
  static called = 0;
  PyObject *gtkbase, *dict;

  if (called) {
    Py_INCREF(Py_None);
    return Py_None;
  }
  called = 1;
  if (!PyArg_ParseTuple(args, ":gdk_imlib_init"))
    return NULL;

  
  gtkbase = PyImport_ImportModule("_gtkbase");
  dict = PyModule_GetDict(gtkbase);
  Py_DECREF(gtkbase);
  /* make sure gtk_init was called */
  PyGtk_Type = (PyTypeObject *)PyDict_GetItemString(dict, "GtkObjectType");
  Py_INCREF(PyGtk_Type);

  dict = PyDict_GetItemString(dict, "_private");
  PyGtk_New = PyCObject_AsVoidPtr(PyDict_GetItemString(dict, "PyGtk_New"));

  /* now actually initialise imlib */
  gdk_imlib_init();

  Py_INCREF(Py_None);
  return Py_None;
}

%}

%native(gdk_imlib_init) PyObject *gdk__imlib_init(PyObject *s, PyObject *a);