%%
headers
#include <Python.h>
#include "pygobject.h"
#include "vncdisplay.h"
#include "vncdisplayenums.h"
%%
modulename gtkvnc
%%
import gtk.DrawingArea as PyGtkDrawingArea_Type
%%
ignore-glob
*_get_type
vnc_display_send_keys_ex
%%
override vnc_display_send_keys kwargs
static PyObject*
_wrap_vnc_display_send_keys(PyGObject *self,
PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = {"keys", "kind", NULL};
PyObject *keyList;
int kind = VNC_DISPLAY_KEY_EVENT_CLICK;
int ret, i, len;
guint *keys;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O|I:VncDisplay.send_keys", kwlist,
&keyList, &kind))
return NULL;
if (!PyList_Check(keyList))
return NULL;
len = PyList_Size(keyList);
keys = g_new0(uint, len);
for (i = 0 ; i < len ; i++) {
PyObject *val;
char *sym;
val = PyList_GetItem(keyList, i);
sym = PyString_AsString(val);
if (!sym) {
free(keys);
return NULL;
}
keys[i] = gdk_keyval_from_name(sym);
}
vnc_display_send_keys_ex(VNC_DISPLAY(self->obj), keys, len, kind);
g_free(keys);
Py_INCREF(Py_None);
return Py_None;
}
%%
override vnc_display_get_grab_keys kwargs
static PyObject*
_wrap_vnc_display_get_grab_keys(PyGObject *self,
PyObject *args, PyObject *kwargs)
{
VncGrabSequence *seq;
PyObject *keyList;
int i;
seq = vnc_display_get_grab_keys(VNC_DISPLAY(self->obj));
keyList = PyList_New(0);
for (i = 0 ; i < seq->nkeysyms ; i++)
PyList_Append(keyList, PyInt_FromLong(seq->keysyms[i]));
return keyList;
}
%%
override vnc_display_set_grab_keys kwargs
static PyObject*
_wrap_vnc_display_set_grab_keys(PyGObject *self,
PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = {"keys", NULL};
PyObject *keyList;
int i;
guint nkeysyms;
guint *keysyms;
VncGrabSequence *seq;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O|I:VncDisplay.set_grab_keys", kwlist,
&keyList))
return NULL;
if (!PyList_Check(keyList))
return NULL;
nkeysyms = PyList_Size(keyList);
keysyms = g_new0(guint, nkeysyms);
for (i = 0 ; i < nkeysyms ; i++) {
PyObject *val = PyList_GetItem(keyList, i);
keysyms[i] = (guint)PyInt_AsLong(val);
}
seq = vnc_grab_sequence_new(nkeysyms, keysyms);
g_free(keysyms);
vnc_display_set_grab_keys(VNC_DISPLAY(self->obj), seq);
vnc_grab_sequence_free(seq);
Py_INCREF(Py_None);
return Py_None;
}