173 METH_VARARGS | METH_KEYWORDS,
"" },
201 TRACE_CALL(__func__);
209 return (PyObject*)
self;
218 PyVarObject_HEAD_INIT(NULL, 0)
219 .tp_name =
"remmina.RemminaProtocolWidget",
220 .tp_doc =
"RemminaProtocolWidget",
223 .tp_flags = Py_TPFLAGS_DEFAULT,
231 TRACE_CALL(__func__);
249 TRACE_CALL(__func__);
252 g_printerr(
"Error initializing remmina.RemminaWidget!\n");
259 TRACE_CALL(__func__);
266 TRACE_CALL(__func__);
274 TRACE_CALL(__func__);
279 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
283 if (PyLong_Check(var_width))
285 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
289 gint width = (gint)PyLong_AsLong(var_width);
297 TRACE_CALL(__func__);
305 TRACE_CALL(__func__);
310 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
314 if (PyLong_Check(var_height))
316 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
320 gint height = (gint)PyLong_AsLong(var_height);
328 TRACE_CALL(__func__);
336 TRACE_CALL(__func__);
344 TRACE_CALL(__func__);
349 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
353 if (PyBool_Check(var_expand))
355 g_printerr(
"[%s:%d@%s]: Argument is not of type Boolean!\n", __FILE__, __LINE__, __func__);
366 TRACE_CALL(__func__);
374 TRACE_CALL(__func__);
379 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
383 if (PyUnicode_Check(var_msg))
385 g_printerr(
"[%s:%d@%s]: Argument is not of type String!\n", __FILE__, __LINE__, __func__);
389 const gchar* msg = PyUnicode_AsUTF8(var_msg);
397 TRACE_CALL(__func__);
405 TRACE_CALL(__func__);
414 TRACE_CALL(__func__);
419 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
423 if (PyUnicode_Check(var_signal))
425 g_printerr(
"[%s:%d@%s]: Argument is not of type String!\n", __FILE__, __LINE__, __func__);
436 TRACE_CALL(__func__);
441 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
452 TRACE_CALL(__func__);
460 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
463 if (PyArg_ParseTuple(args,
"ii", &default_port, &port_plus))
477 TRACE_CALL(__func__);
480 if (!PyLong_Check(var_local_port))
482 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
486 if (!PyLong_Check(var_local_port))
488 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
497 TRACE_CALL(__func__);
499 PyObject* result = PyObject_CallMethod(plugin->
instance,
"xport_tunnel_init",
"Oisi", gp, remotedisplay, server, port);
500 return PyObject_IsTrue(result);
505 TRACE_CALL(__func__);
513 TRACE_CALL(__func__);
518 g_printerr(
"[%s:%d@%s]: Argument is null!\n", __FILE__, __LINE__, __func__);
522 if (!PyLong_Check(var_display))
524 g_printerr(
"[%s:%d@%s]: Argument is not of type Long!\n", __FILE__, __LINE__, __func__);
535 TRACE_CALL(__func__);
544 TRACE_CALL(__func__);
553 TRACE_CALL(__func__);
562 TRACE_CALL(__func__);
571 TRACE_CALL(__func__);
580 TRACE_CALL(__func__);
582 gchar* subject, * issuer, * fingerprint;
584 if (PyArg_ParseTuple(args,
"sss", &subject, &issuer, &fingerprint))
598 TRACE_CALL(__func__);
600 gchar* subject, * issuer, * new_fingerprint, * old_fingerprint;
602 if (PyArg_ParseTuple(args,
"sss", &subject, &issuer, &new_fingerprint, &old_fingerprint))
616 TRACE_CALL(__func__);
624 TRACE_CALL(__func__);
632 TRACE_CALL(__func__);
640 TRACE_CALL(__func__);
648 TRACE_CALL(__func__);
656 TRACE_CALL(__func__);
664 TRACE_CALL(__func__);
672 TRACE_CALL(__func__);
680 TRACE_CALL(__func__);
688 TRACE_CALL(__func__);
697 TRACE_CALL(__func__);
701 if (PyArg_ParseTuple(args,
"i", &port))
715 TRACE_CALL(__func__);
724 TRACE_CALL(__func__);
733 TRACE_CALL(__func__);
742 TRACE_CALL(__func__);
747 if (PyArg_ParseTuple(args,
"ps", &wait, &cmd))
762 PyObject_CallMethod(plugin->
instance,
"on_send",
"Os", gp, text);
768 PyObject_CallMethod(plugin->
instance,
"on_destroy",
"O", gp);
773 TRACE_CALL(__func__);
776 if (!PyUnicode_Check(var_name))
778 g_printerr(
"[%s:%d@%s]: Argument is not of type String!\n", __FILE__, __LINE__, __func__);
782 PyUnicode_AsUTF8(var_name),
791 TRACE_CALL(__func__);
800 TRACE_CALL(__func__);
804 if (PyArg_ParseTuple(args,
"s", &text))
819 TRACE_CALL(__func__);
823 GdkEventType event_type;
826 if (PyArg_ParseTuple(args,
"Osii", &widget, &keyvals, &length, &event_type) && widget && keyvals)
828 if (event_type < GDK_NOTHING || event_type >= GDK_EVENT_LAST)
830 g_printerr(
"[%s:%d@%s]: %d is not a known value for GdkEventType!\n", __FILE__, __LINE__, __func__, event_type);
gint(* protocol_widget_panel_changed_certificate)(RemminaProtocolWidget *gp, const gchar *subject, const gchar *issuer, const gchar *new_fingerprint, const gchar *old_fingerprint)
void(* protocol_widget_register_hostkey)(RemminaProtocolWidget *gp, GtkWidget *widget)
PyPlugin * python_wrapper_get_plugin_by_protocol_widget(RemminaProtocolWidget *gp)
Tries to find the Python plugin matching to the given instance of RemminaPlugin.
void(* protocol_widget_update_align)(RemminaProtocolWidget *gp)
void(* protocol_widget_chat_open)(RemminaProtocolWidget *gp, const gchar *name, void(*on_send)(RemminaProtocolWidget *gp, const gchar *text), void(*on_destroy)(RemminaProtocolWidget *gp))
gint(* protocol_widget_panel_new_certificate)(RemminaProtocolWidget *gp, const gchar *subject, const gchar *issuer, const gchar *fingerprint)
void(* protocol_widget_panel_show_retry)(RemminaProtocolWidget *gp)
Maps an instance of a Python plugin to a Remmina one.
typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile
void(* protocol_widget_signal_connection_closed)(RemminaProtocolWidget *gp)
void init_pygobject()
Initializes the pygobject library.
GtkWidget * get_pywidget(PyObject *obj)
Extracts a GtkWidget from a PyObject instance.
void(* protocol_widget_set_height)(RemminaProtocolWidget *gp, gint height)
void(* protocol_widget_desktop_resize)(RemminaProtocolWidget *gp)
void(* protocol_widget_signal_connection_opened)(RemminaProtocolWidget *gp)
void(* protocol_widget_panel_show_listen)(RemminaProtocolWidget *gp, gint port)
GtkWidget * new_pywidget(GObject *obj)
Creates a new GtkWidget.
void(* protocol_widget_panel_hide)(RemminaProtocolWidget *gp)
void(* protocol_widget_set_display)(RemminaProtocolWidget *gp, gint display)
Contains functions and constants that are commonly used throughout the Python plugin implementation...
PyRemminaFile * python_wrapper_remmina_file_to_python(RemminaFile *file)
Converts the instance of RemminaFile to a Python object that can be passed to the Python engine...
void(* protocol_widget_unlock_dynres)(RemminaProtocolWidget *gp)
gboolean(* protocol_widget_ssh_exec)(RemminaProtocolWidget *gp, gboolean wait, const gchar *fmt,...)
RemminaFile *(* protocol_widget_get_file)(RemminaProtocolWidget *gp)
void(* protocol_widget_set_error)(RemminaProtocolWidget *gp, const gchar *fmt,...)
RemminaPluginService * python_wrapper_get_service(void)
Gets the pointer to the plugin service of Remmina.
void(* protocol_widget_set_expand)(RemminaProtocolWidget *gp, gboolean expand)
Contains the specialisation of RemminaPluginFile plugins in Python.
void(* protocol_widget_panel_show)(RemminaProtocolWidget *gp)
void(* protocol_widget_save_cred)(RemminaProtocolWidget *gp)
void(* protocol_widget_send_keys_signals)(GtkWidget *widget, const guint *keyvals, int keyvals_length, GdkEventType action)
void(* protocol_widget_chat_receive)(RemminaProtocolWidget *gp, const gchar *text)