summaryrefslogtreecommitdiffstats
path: root/gtk/spice-client-gtk.override
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2010-11-14 20:53:18 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2010-11-24 02:34:55 +0100
commit1272206528e7a1e90c22ee92d347ed7dbe0560e6 (patch)
treef7e97b150db940bd547e98eabd36c5b32c15692c /gtk/spice-client-gtk.override
parent946b686e90cf0674c44fae2284235fcb089caf73 (diff)
downloadspice-gtk-1272206528e7a1e90c22ee92d347ed7dbe0560e6.tar.gz
spice-gtk-1272206528e7a1e90c22ee92d347ed7dbe0560e6.tar.xz
spice-gtk-1272206528e7a1e90c22ee92d347ed7dbe0560e6.zip
gtk: add display_send_keys() again, adapted from gtk-vnc..
Diffstat (limited to 'gtk/spice-client-gtk.override')
-rw-r--r--gtk/spice-client-gtk.override67
1 files changed, 66 insertions, 1 deletions
diff --git a/gtk/spice-client-gtk.override b/gtk/spice-client-gtk.override
index 265e1af..08f1d7b 100644
--- a/gtk/spice-client-gtk.override
+++ b/gtk/spice-client-gtk.override
@@ -3,7 +3,6 @@ headers
#include <Python.h>
#include "pygobject.h"
#include "spice-widget.h"
-#include "spice-channel-enums.h"
%%
modulename spice_client_gtk
%%
@@ -15,6 +14,46 @@ ignore-glob
*_get_type
%%
%%
+override spice_display_send_keys kwargs
+static PyObject*
+_wrap_spice_display_send_keys(PyGObject *self,
+ PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = {"keys", "kind", NULL};
+ PyObject *keyList;
+ int kind = SPICE_DISPLAY_KEY_EVENT_CLICK;
+ int ret, i, len;
+ guint *keys;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O|I:SpiceDisplay.send_keys", kwlist,
+ &keyList, &kind))
+ return NULL;
+
+ if (!PyList_Check(keyList))
+ return NULL;
+
+ len = PyList_Size(keyList);
+ keys = malloc(sizeof(guint)*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);
+ }
+
+ spice_display_send_keys(SPICE_DISPLAY(self->obj), keys, len, kind);
+ free(keys);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+%%
override spice_display_get_grab_keys kwargs
static PyObject*
_wrap_spice_display_get_grab_keys(PyGObject *self,
@@ -71,3 +110,29 @@ _wrap_spice_display_set_grab_keys(PyGObject *self,
Py_INCREF(Py_None);
return Py_None;
}
+%%
+override spice_session_get_channels
+static PyObject*
+_wrap_spice_session_get_channels(PyGObject *self,
+ PyObject *args, PyObject *kwargs)
+{
+ PyObject *py_list;
+ GList *list, *tmp;
+ PyObject *chann;
+
+ list = spice_session_get_channels(SPICE_SESSION(self->obj));
+
+ if ((py_list = PyList_New(0)) == NULL) {
+ return NULL;
+ }
+ for (tmp = list; tmp != NULL; tmp = tmp->next) {
+ chann = pygobject_new(G_OBJECT(tmp->data));
+ if (chann == NULL) {
+ Py_DECREF(py_list);
+ return NULL;
+ }
+ PyList_Append(py_list, chann);
+ Py_DECREF(chann);
+ }
+ return py_list;
+}