Commit 37e8f615dafbae5c52b0f22efe092a5079453514
1 parent
39c215e0
Exists in
master
and in
1 other branch
Implementando métodos para que um script rexx possa alterar o clipboard salvo
Showing
1 changed file
with
35 additions
and
0 deletions
Show diff stats
selection.c
@@ -244,6 +244,41 @@ gchar * v3270_get_copy(GtkWidget *widget) | @@ -244,6 +244,41 @@ gchar * v3270_get_copy(GtkWidget *widget) | ||
244 | return NULL; | 244 | return NULL; |
245 | } | 245 | } |
246 | 246 | ||
247 | +void v3270_set_copy(GtkWidget *widget, const gchar *text) | ||
248 | +{ | ||
249 | + v3270 * terminal; | ||
250 | + gchar * isotext; | ||
251 | + | ||
252 | + g_return_if_fail(GTK_IS_V3270(widget)); | ||
253 | + | ||
254 | + terminal = GTK_V3270(widget); | ||
255 | + v3270_clear_clipboard(terminal); | ||
256 | + | ||
257 | + if(!text) | ||
258 | + { | ||
259 | + /* No string, signal clipboard clear and return */ | ||
260 | + g_signal_emit(widget,v3270_widget_signal[SIGNAL_CLIPBOARD], 0, FALSE); | ||
261 | + return; | ||
262 | + } | ||
263 | + | ||
264 | + /* Received text, replace the selection buffer */ | ||
265 | + terminal->table = 0; | ||
266 | + isotext = g_convert(text, -1, lib3270_get_charset(terminal->host), "UTF-8", NULL, NULL, NULL); | ||
267 | + | ||
268 | + if(!isotext) | ||
269 | + { | ||
270 | + /* No string, signal clipboard clear and return */ | ||
271 | + g_signal_emit(widget,v3270_widget_signal[SIGNAL_CLIPBOARD], 0, FALSE); | ||
272 | + return; | ||
273 | + } | ||
274 | + | ||
275 | + terminal->selection.text = lib3270_strdup(isotext); | ||
276 | + | ||
277 | + g_free(isotext); | ||
278 | + | ||
279 | + g_signal_emit(widget,v3270_widget_signal[SIGNAL_CLIPBOARD], 0, TRUE); | ||
280 | +} | ||
281 | + | ||
247 | static void update_system_clipboard(GtkWidget *widget) | 282 | static void update_system_clipboard(GtkWidget *widget) |
248 | { | 283 | { |
249 | if(GTK_V3270(widget)->selection.text) | 284 | if(GTK_V3270(widget)->selection.text) |