174 METH_VARARGS | METH_KEYWORDS,
"" },
202 TRACE_CALL(__func__);
210 return (PyObject*)
self;
219 PyVarObject_HEAD_INIT(NULL, 0)
220 .tp_name =
"remmina.RemminaProtocolWidget",
221 .tp_doc =
"RemminaProtocolWidget",
224 .tp_flags = Py_TPFLAGS_DEFAULT,
232 TRACE_CALL(__func__);
250 TRACE_CALL(__func__);
253 g_printerr(
"Error initializing remmina.RemminaWidget!\n");
260 TRACE_CALL(__func__);
267 TRACE_CALL(__func__);
275 TRACE_CALL(__func__);
280 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
284 if (PyLong_Check(var_width))
286 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
290 gint width = (gint)PyLong_AsLong(var_width);
298 TRACE_CALL(__func__);
306 TRACE_CALL(__func__);
311 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
315 if (PyLong_Check(var_height))
317 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
321 gint height = (gint)PyLong_AsLong(var_height);
329 TRACE_CALL(__func__);
337 TRACE_CALL(__func__);
345 TRACE_CALL(__func__);
350 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
354 if (PyBool_Check(var_expand))
356 g_printerr(
"[%s:%d@%s]: Argument is not of type Boolean!\n", __FILE__, __LINE__, __func__);
367 TRACE_CALL(__func__);
375 TRACE_CALL(__func__);
380 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
384 if (PyUnicode_Check(var_msg))
386 g_printerr(
"[%s:%d@%s]: Argument is not of type String!\n", __FILE__, __LINE__, __func__);
390 const gchar* msg = PyUnicode_AsUTF8(var_msg);
398 TRACE_CALL(__func__);
406 TRACE_CALL(__func__);
415 TRACE_CALL(__func__);
420 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
424 if (PyUnicode_Check(var_signal))
426 g_printerr(
"[%s:%d@%s]: Argument is not of type String!\n", __FILE__, __LINE__, __func__);
437 TRACE_CALL(__func__);
442 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
453 TRACE_CALL(__func__);
461 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
464 if (PyArg_ParseTuple(args,
"ii", &default_port, &port_plus))
478 TRACE_CALL(__func__);
481 if (!PyLong_Check(var_local_port))
483 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
487 if (!PyLong_Check(var_local_port))
489 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
498 TRACE_CALL(__func__);
500 PyObject* result = PyObject_CallMethod(plugin->
instance,
"xport_tunnel_init",
"Oisi", gp, remotedisplay, server, port);
501 return PyObject_IsTrue(result);
506 TRACE_CALL(__func__);
514 TRACE_CALL(__func__);
519 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
523 if (!PyLong_Check(var_display))
525 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
536 TRACE_CALL(__func__);
545 TRACE_CALL(__func__);
554 TRACE_CALL(__func__);
563 TRACE_CALL(__func__);
572 TRACE_CALL(__func__);
581 TRACE_CALL(__func__);
583 gchar* subject, * issuer, * fingerprint;
585 if (PyArg_ParseTuple(args,
"sss", &subject, &issuer, &fingerprint))
599 TRACE_CALL(__func__);
601 gchar* subject, * issuer, * new_fingerprint, * old_fingerprint;
603 if (PyArg_ParseTuple(args,
"sss", &subject, &issuer, &new_fingerprint, &old_fingerprint))
617 TRACE_CALL(__func__);
625 TRACE_CALL(__func__);
633 TRACE_CALL(__func__);
641 TRACE_CALL(__func__);
649 TRACE_CALL(__func__);
657 TRACE_CALL(__func__);
665 TRACE_CALL(__func__);
673 TRACE_CALL(__func__);
681 TRACE_CALL(__func__);
689 TRACE_CALL(__func__);
698 TRACE_CALL(__func__);
702 if (PyArg_ParseTuple(args,
"i", &port))
716 TRACE_CALL(__func__);
725 TRACE_CALL(__func__);
734 TRACE_CALL(__func__);
743 TRACE_CALL(__func__);
748 if (PyArg_ParseTuple(args,
"ps", &wait, &cmd))
763 PyObject_CallMethod(plugin->
instance,
"on_send",
"Os", gp, text);
769 PyObject_CallMethod(plugin->
instance,
"on_destroy",
"O", gp);
774 TRACE_CALL(__func__);
777 if (!PyUnicode_Check(var_name))
779 g_printerr(
"[%s:%d@%s]: Argument is not of type String!\n", __FILE__, __LINE__, __func__);
783 PyUnicode_AsUTF8(var_name),
792 TRACE_CALL(__func__);
801 TRACE_CALL(__func__);
805 if (PyArg_ParseTuple(args,
"s", &text))
820 TRACE_CALL(__func__);
824 GdkEventType event_type;
827 if (PyArg_ParseTuple(args,
"Osii", &widget, &keyvals, &length, &event_type) && widget && keyvals)
829 if (event_type < GDK_NOTHING || event_type >= GDK_EVENT_LAST)
831 g_printerr(
"[%s:%d@%s]: %d is not a known value for GdkEventType!\n", __FILE__, __LINE__, __func__, event_type);
PyRemminaFile * remmina_plugin_python_remmina_file_to_python(RemminaFile *file)
Converts the instance of RemminaFile to a Python object that can be passed to the Python engine...
void init_pygobject()
Initializes the pygobject library.
Maps an instance of a Python plugin to a Remmina one.
typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile
PyPlugin * remmina_plugin_python_get_plugin(const char *name)
Tries to find the Python plugin matching to the given instance of RemminaPlugin.
GtkWidget * get_pywidget(PyObject *obj)
Extracts a GtkWidget from a PyObject instance.
Contains the specialisation of RemminaPluginFile plugins in Python.
Contains functions and constants that are commonly used throughout the Python plugin implementation...
GtkWidget * new_pywidget(GObject *obj)
Creates a new GtkWidget.