Commit 4a81c5c92cbbe34a9e3c18e2f81a462b62760aa1

Authored by perry.werneck@gmail.com
1 parent 438e78f7
Exists in master and in 1 other branch develop

Iniciando implementação da função "recortar"

Showing 1 changed file with 25 additions and 9 deletions   Show diff stats
@@ -103,7 +103,7 @@ gchar * v3270_get_text(GtkWidget *widget, int offset, int len) @@ -103,7 +103,7 @@ gchar * v3270_get_text(GtkWidget *widget, int offset, int len)
103 * 103 *
104 * @return NULL if error, otherwise the selected buffer contents (release with g_free). 104 * @return NULL if error, otherwise the selected buffer contents (release with g_free).
105 * 105 *
106 - */ 106 + */ /*
107 static gchar * v3270_get_selected(v3270 *widget) 107 static gchar * v3270_get_selected(v3270 *widget)
108 { 108 {
109 gchar *text = lib3270_get_selected(widget->host); 109 gchar *text = lib3270_get_selected(widget->host);
@@ -116,10 +116,23 @@ static gchar * v3270_get_selected(v3270 *widget) @@ -116,10 +116,23 @@ static gchar * v3270_get_selected(v3270 *widget)
116 return NULL; 116 return NULL;
117 } 117 }
118 118
119 -const gchar * v3270_get_selected_text(GtkWidget *widget) 119 +static gchar * v3270_cut_selected(v3270 *widget)
120 { 120 {
121 - v3270 *terminal;  
122 - gchar *text; 121 + gchar *text = lib3270_cut_selected(widget->host);
  122 + if(text)
  123 + {
  124 + gchar *str = g_strdup(text);
  125 + lib3270_free(text);
  126 + return str;
  127 + }
  128 + return NULL;
  129 +}
  130 +*/
  131 +
  132 +const gchar * v3270_get_selected_text(GtkWidget *widget, gboolean cut)
  133 +{
  134 + v3270 * terminal;
  135 + char * text;
123 136
124 g_return_val_if_fail(GTK_IS_V3270(widget),NULL); 137 g_return_val_if_fail(GTK_IS_V3270(widget),NULL);
125 138
@@ -131,7 +144,10 @@ const gchar * v3270_get_selected_text(GtkWidget *widget) @@ -131,7 +144,10 @@ const gchar * v3270_get_selected_text(GtkWidget *widget)
131 terminal->clipboard = NULL; 144 terminal->clipboard = NULL;
132 } 145 }
133 146
134 - text = v3270_get_selected(terminal); 147 + if(cut)
  148 + text = lib3270_cut_selected(terminal->host);
  149 + else
  150 + text = lib3270_get_selected(terminal->host);
135 151
136 if(!text) 152 if(!text)
137 { 153 {
@@ -217,7 +233,7 @@ const gchar * v3270_get_selected_text(GtkWidget *widget) @@ -217,7 +233,7 @@ const gchar * v3270_get_selected_text(GtkWidget *widget)
217 233
218 terminal->clipboard = g_convert(text, -1, "UTF-8", lib3270_get_charset(terminal->host), NULL, NULL, NULL); 234 terminal->clipboard = g_convert(text, -1, "UTF-8", lib3270_get_charset(terminal->host), NULL, NULL, NULL);
219 235
220 - g_free(text); 236 + lib3270_free(text);
221 237
222 238
223 return terminal->clipboard; 239 return terminal->clipboard;
@@ -246,7 +262,7 @@ const gchar * v3270_copy_append(GtkWidget *widget) @@ -246,7 +262,7 @@ const gchar * v3270_copy_append(GtkWidget *widget)
246 terminal = GTK_V3270(widget); 262 terminal = GTK_V3270(widget);
247 263
248 if(!terminal->clipboard) 264 if(!terminal->clipboard)
249 - return v3270_get_selected_text(widget); 265 + return v3270_get_selected_text(widget,FALSE);
250 266
251 str = lib3270_get_selected(terminal->host); 267 str = lib3270_get_selected(terminal->host);
252 268
@@ -271,7 +287,7 @@ const gchar * v3270_copy_append(GtkWidget *widget) @@ -271,7 +287,7 @@ const gchar * v3270_copy_append(GtkWidget *widget)
271 return terminal->clipboard; 287 return terminal->clipboard;
272 } 288 }
273 289
274 -const gchar * v3270_copy(GtkWidget *widget, V3270_SELECT_FORMAT mode) 290 +const gchar * v3270_copy(GtkWidget *widget, V3270_SELECT_FORMAT mode, gboolean cut)
275 { 291 {
276 const gchar * text; 292 const gchar * text;
277 GtkClipboard * clipboard = gtk_widget_get_clipboard(widget,GDK_SELECTION_CLIPBOARD); 293 GtkClipboard * clipboard = gtk_widget_get_clipboard(widget,GDK_SELECTION_CLIPBOARD);
@@ -280,7 +296,7 @@ const gchar * v3270_copy(GtkWidget *widget, V3270_SELECT_FORMAT mode) @@ -280,7 +296,7 @@ const gchar * v3270_copy(GtkWidget *widget, V3270_SELECT_FORMAT mode)
280 296
281 GTK_V3270(widget)->table = (mode == V3270_SELECT_TABLE ? 1 : 0); 297 GTK_V3270(widget)->table = (mode == V3270_SELECT_TABLE ? 1 : 0);
282 298
283 - text = v3270_get_selected_text(widget); 299 + text = v3270_get_selected_text(widget,cut);
284 300
285 if(text) 301 if(text)
286 { 302 {