Commit dc08a8f5f3e8a174f02b9e117466fdf96bf00030
1 parent
b37993db
Exists in
master
and in
1 other branch
Updating windows clipboard module.
Showing
2 changed files
with
53 additions
and
0 deletions
Show diff stats
src/include/v3270/settings.h
src/selection/windows/paste.c
@@ -28,6 +28,7 @@ | @@ -28,6 +28,7 @@ | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <clipboard.h> | 30 | #include <clipboard.h> |
31 | + #include <v3270/dialogs.h> | ||
31 | 32 | ||
32 | /*--[ Implement ]------------------------------------------------------------------------------------*/ | 33 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
33 | 34 | ||
@@ -172,6 +173,7 @@ static void targets_received(GtkClipboard *clipboard, GdkAtom *atoms, gint n_ato | @@ -172,6 +173,7 @@ static void targets_received(GtkClipboard *clipboard, GdkAtom *atoms, gint n_ato | ||
172 | 173 | ||
173 | } | 174 | } |
174 | 175 | ||
176 | +/* | ||
175 | LIB3270_EXPORT void v3270_paste(GtkWidget *widget) | 177 | LIB3270_EXPORT void v3270_paste(GtkWidget *widget) |
176 | { | 178 | { |
177 | g_return_if_fail(GTK_IS_V3270(widget)); | 179 | g_return_if_fail(GTK_IS_V3270(widget)); |
@@ -194,4 +196,51 @@ LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget) | @@ -194,4 +196,51 @@ LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget) | ||
194 | ); | 196 | ); |
195 | 197 | ||
196 | } | 198 | } |
199 | +*/ | ||
200 | + | ||
201 | +LIB3270_EXPORT void v3270_clipboard_get_from_url(GtkWidget *widget, const gchar *url) | ||
202 | +{ | ||
203 | + g_return_if_fail(GTK_IS_V3270(widget)); | ||
204 | + | ||
205 | + GtkClipboard * clipboard = gtk_widget_get_clipboard(widget,GTK_V3270(widget)->selection.target); | ||
206 | + | ||
207 | + if(!url || !*url || g_str_has_prefix(url,"clipboard://") || g_str_has_prefix(url,"tn3270://")) | ||
208 | + { | ||
209 | + gtk_clipboard_request_targets( | ||
210 | + clipboard, | ||
211 | + (GtkClipboardTargetsReceivedFunc) targets_received, | ||
212 | + (gpointer) widget | ||
213 | + ); | ||
214 | + } | ||
215 | + else if(g_str_has_prefix(url,"text://")) | ||
216 | + { | ||
217 | + gtk_clipboard_request_text( | ||
218 | + clipboard, | ||
219 | + (GtkClipboardTextReceivedFunc) text_received, | ||
220 | + (gpointer) widget | ||
221 | + ); | ||
222 | + | ||
223 | + } | ||
224 | + else if(g_str_has_prefix(url,"file://")) | ||
225 | + { | ||
226 | + GtkWidget * dialog = v3270_load_dialog_new(widget, url+7); | ||
227 | + gtk_widget_show_all(dialog); | ||
228 | + v3270_load_dialog_run(dialog); | ||
229 | + gtk_widget_destroy(dialog); | ||
230 | + } | ||
231 | + | ||
232 | +} | ||
233 | + | ||
234 | + | ||
235 | +LIB3270_EXPORT void v3270_paste(GtkWidget *widget) | ||
236 | +{ | ||
237 | + v3270_clipboard_get_from_url(widget,NULL); | ||
238 | +} | ||
239 | + | ||
240 | +LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget) | ||
241 | +{ | ||
242 | + v3270_clipboard_get_from_url(widget,"text://"); | ||
243 | +} | ||
244 | + | ||
245 | + | ||
197 | 246 |