Ejemplo n.º 1
0
static PyObject *
python_api_win_create(PyObject *self, PyObject *args)
{
    PyObject *tag = NULL;
    PyObject *p_callback = NULL;

    if (!PyArg_ParseTuple(args, "OO", &tag, &p_callback)) {
        Py_RETURN_NONE;
    }

    char *tag_str = python_str_or_unicode_to_string(tag);

    char *plugin_name = _python_plugin_name();

    if (p_callback && PyCallable_Check(p_callback)) {
        allow_python_threads();
        api_win_create(plugin_name, tag_str, p_callback, python_window_callback, NULL);
        free(tag_str);
        disable_python_threads();
    }

    free(plugin_name);

    Py_RETURN_NONE;
}
Ejemplo n.º 2
0
static void
c_api_win_create(const char *filename, char *tag, void(*callback)(char *tag, char *line))
{
    char *plugin_name = _c_plugin_name(filename);

    WindowWrapper *wrapper = malloc(sizeof(WindowWrapper));
    wrapper->func = callback;
    api_win_create(plugin_name, tag, wrapper, c_window_callback, free);

    free(plugin_name);
}