Renamed Xedit -> Xed (avoid name clash with x11-apps's xedit)
This commit is contained in:
122
plugin-loaders/python/bindings/xedcommands.override
Normal file
122
plugin-loaders/python/bindings/xedcommands.override
Normal file
@@ -0,0 +1,122 @@
|
||||
%%
|
||||
headers
|
||||
#define NO_IMPORT_PYGOBJECT
|
||||
#define NO_IMPORT_PYGTK
|
||||
#include <pygobject.h>
|
||||
#include <pygtk/pygtk.h>
|
||||
|
||||
#include "xed-commands.h"
|
||||
#include "xed-window.h"
|
||||
|
||||
void pyxedcommands_register_classes (PyObject *d);
|
||||
void pyxedcommands_add_constants (PyObject *module, const gchar *strip_prefix);
|
||||
|
||||
%%
|
||||
modulename xed.commands
|
||||
%%
|
||||
import xed.Window as PyXedWindow_Type
|
||||
import xed.Document as PyXedDocument_Type
|
||||
%%
|
||||
ignore-glob
|
||||
_*
|
||||
%%
|
||||
override xed_commands_load_uri kwargs
|
||||
static PyObject *
|
||||
_wrap_xed_commands_load_uri (PyObject *self, PyObject *args, PyObject *kwargs)
|
||||
{
|
||||
static char *kwlist[] = { "window", "uri", "encoding", "line_pos", NULL };
|
||||
PyGObject *window;
|
||||
char *uri;
|
||||
int line_pos = 0;
|
||||
PyObject *py_encoding = NULL;
|
||||
XedEncoding *encoding = NULL;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords (args, kwargs, "O!s|Oi:load_uri",
|
||||
kwlist, &PyXedWindow_Type,
|
||||
&window, &uri, &py_encoding,
|
||||
&line_pos))
|
||||
return NULL;
|
||||
|
||||
if (py_encoding != NULL && py_encoding != Py_None)
|
||||
{
|
||||
if (pyg_boxed_check (py_encoding, XED_TYPE_ENCODING))
|
||||
encoding = pyg_boxed_get (py_encoding, XedEncoding);
|
||||
else
|
||||
{
|
||||
PyErr_SetString (PyExc_TypeError,
|
||||
"encoding should be a XedEncoding");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
xed_commands_load_uri (XED_WINDOW (window->obj), uri, encoding,
|
||||
line_pos);
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
%%
|
||||
override xed_commands_load_uris kwargs
|
||||
static PyObject *
|
||||
_wrap_xed_commands_load_uris (PyObject *self, PyObject *args, PyObject *kwargs)
|
||||
{
|
||||
static char *kwlist[] = { "window", "uris", "encoding", "line_pos", NULL };
|
||||
PyGObject *window;
|
||||
GSList *uris = NULL;
|
||||
int line_pos = 0;
|
||||
PyObject *py_encoding = NULL;
|
||||
PyObject *list;
|
||||
PyObject *item;
|
||||
XedEncoding *encoding = NULL;
|
||||
int len;
|
||||
int i;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords (args, kwargs, "O!O|Oi:load_uri",
|
||||
kwlist, &PyXedWindow_Type,
|
||||
&window, &list, &py_encoding,
|
||||
&line_pos))
|
||||
return NULL;
|
||||
|
||||
if (py_encoding != NULL && py_encoding != Py_None)
|
||||
{
|
||||
if (pyg_boxed_check (py_encoding, XED_TYPE_ENCODING))
|
||||
encoding = pyg_boxed_get (py_encoding, XedEncoding);
|
||||
else {
|
||||
PyErr_SetString (PyExc_TypeError,
|
||||
"encoding should be a XedEncoding");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (!PySequence_Check (list))
|
||||
{
|
||||
PyErr_SetString (PyExc_TypeError,
|
||||
"second argument must be a sequence");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
len = PySequence_Length (list);
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
item = PySequence_GetItem (list, i);
|
||||
Py_DECREF (item);
|
||||
|
||||
if (!PyString_Check (item))
|
||||
{
|
||||
PyErr_SetString (PyExc_TypeError,
|
||||
"sequence item not a string");
|
||||
g_slist_free (uris);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
uris = g_slist_prepend (uris, PyString_AsString (item));
|
||||
}
|
||||
|
||||
uris = g_slist_reverse (uris);
|
||||
xed_commands_load_uris (XED_WINDOW (window->obj), uris,
|
||||
encoding, line_pos);
|
||||
g_slist_free (uris);
|
||||
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
Reference in New Issue
Block a user