From 5076a548ef127fe540f78ffe5bc87079349eefc2 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Wed, 3 Jul 2013 11:39:35 +0000 Subject: [PATCH] Incluindo mais métodos na interface dbus --- src/plugins/dbus3270/gobject.c | 6 ++++++ src/plugins/dbus3270/pw3270dbus.xml | 4 ++++ src/plugins/dbus3270/service.h | 2 ++ src/plugins/rx3270/remote.cc | 15 +++++++++++++++ 4 files changed, 27 insertions(+), 0 deletions(-) diff --git a/src/plugins/dbus3270/gobject.c b/src/plugins/dbus3270/gobject.c index 83ba239..f3b5d62 100644 --- a/src/plugins/dbus3270/gobject.c +++ b/src/plugins/dbus3270/gobject.c @@ -391,6 +391,12 @@ void pw3270_dbus_get_clipboard(PW3270Dbus *object, int row, int col, int len, DB } } +void pw3270_dbus_set_clipboard(PW3270Dbus *object, const gchar *text, DBusGMethodInvocation *context) +{ + gtk_clipboard_set_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD),(gchar *) text, -1); + dbus_g_method_return(context,0); +} + void pw3270_dbus_set_script(PW3270Dbus *object, const gchar *text, int mode, DBusGMethodInvocation *context) { GtkWidget *widget = pw3270_get_terminal_widget(NULL); diff --git a/src/plugins/dbus3270/pw3270dbus.xml b/src/plugins/dbus3270/pw3270dbus.xml index 3b5b945..80a9cb5 100644 --- a/src/plugins/dbus3270/pw3270dbus.xml +++ b/src/plugins/dbus3270/pw3270dbus.xml @@ -61,6 +61,10 @@ + + + + diff --git a/src/plugins/dbus3270/service.h b/src/plugins/dbus3270/service.h index 4acf99c..247f36c 100644 --- a/src/plugins/dbus3270/service.h +++ b/src/plugins/dbus3270/service.h @@ -99,6 +99,8 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBusGMethodInvocation *context); void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar *text, DBusGMethodInvocation *context); void pw3270_dbus_input(PW3270Dbus *object, const gchar *utftext, DBusGMethodInvocation *context); + + void pw3270_dbus_set_clipboard(PW3270Dbus *object, const gchar *text, DBusGMethodInvocation *context); void pw3270_dbus_get_clipboard(PW3270Dbus *object, int row, int col, int len, DBusGMethodInvocation *context); G_END_DECLS diff --git a/src/plugins/rx3270/remote.cc b/src/plugins/rx3270/remote.cc index 65ad5ea..5307e57 100644 --- a/src/plugins/rx3270/remote.cc +++ b/src/plugins/rx3270/remote.cc @@ -1165,6 +1165,21 @@ int remote::get_next_unprotected(int baddr) int remote::set_clipboard(const char *text) { +#if defined(WIN32) + + return -1; + +#elif defined(HAVE_DBUS) + + DBusMessage * msg = create_message("setClipboard"); + if(msg) + { + dbus_message_append_args(msg, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); + return get_intval(call(msg)); + } + +#endif + return -1; } -- libgit2 0.21.2