Commit 9dff8391aded485a947b251f2d15f8dbda933206

Authored by Perry Werneck
1 parent 5de05634
Exists in master and in 1 other branch develop

Refactoring clipboard methods.

src/include/terminal.h
... ... @@ -131,7 +131,7 @@ G_BEGIN_DECLS
131 131  
132 132 int baddr; ///< @brief Selection address.
133 133 GdkAtom target; ///< @brief A GdkAtom which identifies the clipboard to use. GDK_SELECTION_CLIPBOARD gives the default clipboard.
134   - V3270_SELECT_FORMAT format; ///< @brief Copy format.
  134 + V3270_COPY_MODE format; ///< @brief Copy mode.
135 135 GList * blocks; ///< @brief Selection blocks.
136 136  
137 137 } selection;
... ...
src/include/v3270.h
... ... @@ -197,42 +197,41 @@
197 197 LIB3270_EXPORT gchar * v3270_get_lunames(GtkWidget *widget);
198 198  
199 199 // Clipboard
200   - typedef enum _v3270_select_format
  200 + typedef enum _v3270_copy_mode
201 201 {
202   - V3270_SELECT_NONE, ///< @brief No selected format, use default.
203   - V3270_SELECT_TEXT, ///< @brief Single text format, don't process.
204   - V3270_SELECT_TABLE, ///< @brief Parse contents as table (only for text formats).
  202 + V3270_COPY_FORMATTED, ///< @brief Copy formatted data; keep attributes.
  203 + V3270_COPY_TEXT, ///< @brief Single text format, ignore attributes.
  204 + V3270_COPY_TABLE, ///< @brief Copy as table.
205 205  
206   - V3270_SELECT_MAX
207   - } V3270_SELECT_FORMAT;
  206 + } V3270_COPY_MODE;
  207 +
  208 + LIB3270_EXPORT void v3270_clipboard_set(GtkWidget *widget, V3270_COPY_MODE mode, gboolean cut);
  209 + LIB3270_EXPORT void v3270_clipboard_append(GtkWidget *widget, gboolean cut);
  210 +
  211 + LIB3270_EXPORT void v3270_clipboard_get_from_url(GtkWidget *widget, const gchar *url);
  212 +
  213 + LIB3270_EXPORT void v3270_paste(GtkWidget *widget) G_GNUC_DEPRECATED;
  214 + LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget) G_GNUC_DEPRECATED;
  215 + LIB3270_EXPORT void v3270_paste_from_file(GtkWidget *widget) G_GNUC_DEPRECATED;
  216 + LIB3270_EXPORT void v3270_copy_selection(GtkWidget *widget, V3270_COPY_MODE mode, gboolean cut) G_GNUC_DEPRECATED;
  217 + LIB3270_EXPORT void v3270_append_selection(GtkWidget *widget, gboolean cut) G_GNUC_DEPRECATED;
  218 +
  219 +
  220 + // Selections
208 221  
209 222 LIB3270_EXPORT gchar * v3270_get_selected(GtkWidget *widget, gboolean cut);
210 223 LIB3270_EXPORT gchar * v3270_get_copy(GtkWidget *widget);
211   -// LIB3270_EXPORT void v3270_set_copy(GtkWidget *widget, const gchar *text);
212 224  
213 225 LIB3270_EXPORT gchar * v3270_get_text(GtkWidget *widget,int offset, int len);
214 226 LIB3270_EXPORT gchar * v3270_get_region(GtkWidget *widget, gint start_pos, gint end_pos, gboolean all);
215 227  
216 228 LIB3270_EXPORT void v3270_set_string(GtkWidget *widget, const gchar *str);
217   - LIB3270_EXPORT void v3270_tab(GtkWidget *widget);
218   - LIB3270_EXPORT void v3270_backtab(GtkWidget *widget);
219 229  
220   - // Selections
221 230 LIB3270_EXPORT gboolean v3270_get_selection_bounds(GtkWidget *widget, gint *start, gint *end);
222 231 LIB3270_EXPORT void v3270_unselect(GtkWidget *widget);
223 232 LIB3270_EXPORT void v3270_select_all(GtkWidget *widget);
224 233 LIB3270_EXPORT void v3270_select_region(GtkWidget *widget, gint start, gint end);
225 234  
226   - LIB3270_EXPORT void v3270_copy(GtkWidget *widget, V3270_SELECT_FORMAT mode, gboolean cut);
227   - LIB3270_EXPORT void v3270_copy_selection(GtkWidget *widget, V3270_SELECT_FORMAT mode, gboolean cut);
228   - LIB3270_EXPORT void v3270_append_selection(GtkWidget *widget, gboolean cut);
229   -
230   - LIB3270_EXPORT void v3270_paste_from_url(GtkWidget *widget, const gchar *url);
231   -
232   - LIB3270_EXPORT void v3270_paste(GtkWidget *widget) G_GNUC_DEPRECATED;
233   - LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget) G_GNUC_DEPRECATED;
234   - LIB3270_EXPORT void v3270_paste_from_file(GtkWidget *widget) G_GNUC_DEPRECATED;
235   -
236 235 LIB3270_EXPORT void v3270_input_text(GtkWidget *widget, const gchar *text, const gchar *encoding);
237 236  
238 237 // Colors
... ... @@ -273,8 +272,10 @@
273 272 LIB3270_EXPORT void v3270_set_remap_filename(GtkWidget *widget, const gchar *path);
274 273 LIB3270_EXPORT const gchar * v3270_get_remap_filename(GtkWidget *widget);
275 274  
276   - // Keyboard & Mouse special actions
  275 + // Actions
277 276 LIB3270_EXPORT void v3270_set_scroll_action(GtkWidget *widget, GdkScrollDirection direction, GtkAction *action);
  277 + LIB3270_EXPORT void v3270_tab(GtkWidget *widget);
  278 + LIB3270_EXPORT void v3270_backtab(GtkWidget *widget);
278 279  
279 280 // SSL & Security
280 281 LIB3270_EXPORT const gchar * v3270_get_ssl_state_icon_name(GtkWidget *widget);
... ...
src/selection/copy.c
... ... @@ -41,7 +41,7 @@
41 41  
42 42 }
43 43  
44   - LIB3270_EXPORT void v3270_copy_selection(GtkWidget *widget, V3270_SELECT_FORMAT format, gboolean cut)
  44 + LIB3270_EXPORT void v3270_clipboard_set(GtkWidget *widget, V3270_COPY_MODE mode, gboolean cut)
45 45 {
46 46 g_return_if_fail(GTK_IS_V3270(widget));
47 47  
... ... @@ -50,14 +50,13 @@
50 50 // Have data? Clear it?
51 51 v3270_clear_selection(terminal);
52 52  
53   - terminal->selection.format = format;
  53 + terminal->selection.format = mode;
54 54 do_copy(terminal,cut);
55 55  
56 56 v3270_update_system_clipboard(widget);
57   -
58 57 }
59 58  
60   - LIB3270_EXPORT void v3270_append_selection(GtkWidget *widget, gboolean cut)
  59 + LIB3270_EXPORT void v3270_clipboard_append(GtkWidget *widget, gboolean cut)
61 60 {
62 61 g_return_if_fail(GTK_IS_V3270(widget));
63 62  
... ... @@ -66,6 +65,16 @@
66 65 do_copy(terminal,cut);
67 66  
68 67 v3270_update_system_clipboard(widget);
  68 + }
69 69  
  70 +
  71 + LIB3270_EXPORT void v3270_copy_selection(GtkWidget *widget, V3270_COPY_MODE format, gboolean cut)
  72 + {
  73 + v3270_clipboard_set(widget,format,cut);
  74 + }
  75 +
  76 + LIB3270_EXPORT void v3270_append_selection(GtkWidget *widget, gboolean cut)
  77 + {
  78 + v3270_clipboard_append(widget,cut);
70 79 }
71 80  
... ...
src/selection/html.c
... ... @@ -229,7 +229,7 @@ gchar * v3270_get_selection_as_html_table(v3270 * terminal, const GList *selecti
229 229 gchar * v3270_get_copy_as_html(v3270 * terminal, const gchar *encoding)
230 230 {
231 231  
232   - if(terminal->selection.format == V3270_SELECT_TABLE)
  232 + if(terminal->selection.format == V3270_COPY_TABLE)
233 233 return v3270_get_selection_as_html_table(terminal, terminal->selection.blocks, encoding, FALSE);
234 234  
235 235 return v3270_get_selection_as_html_div(terminal, terminal->selection.blocks, encoding, FALSE);
... ...
src/selection/linux/paste.c
... ... @@ -146,7 +146,6 @@ static void formatted_received(GtkClipboard *clipboard, GtkSelectionData *select
146 146  
147 147 }
148 148  
149   -
150 149 }
151 150  
152 151 static void targets_received(GtkClipboard *clipboard, GdkAtom *atoms, gint n_atoms, GtkWidget *widget)
... ... @@ -177,13 +176,13 @@ static void targets_received(GtkClipboard *clipboard, GdkAtom *atoms, gint n_ato
177 176  
178 177 }
179 178  
180   -LIB3270_EXPORT void v3270_paste_from_url(GtkWidget *widget, const gchar *url)
  179 +LIB3270_EXPORT void v3270_clipboard_get_from_url(GtkWidget *widget, const gchar *url)
181 180 {
182 181 g_return_if_fail(GTK_IS_V3270(widget));
183 182  
184 183 GtkClipboard * clipboard = gtk_widget_get_clipboard(widget,GTK_V3270(widget)->selection.target);
185 184  
186   - if(!url || g_str_has_prefix(url,"clipboard://"))
  185 + if(!url || !*url || g_str_has_prefix(url,"clipboard://") || g_str_has_prefix(url,"tn3270://"))
187 186 {
188 187 gtk_clipboard_request_targets(
189 188 clipboard,
... ... @@ -213,11 +212,11 @@ LIB3270_EXPORT void v3270_paste_from_url(GtkWidget *widget, const gchar *url)
213 212  
214 213 LIB3270_EXPORT void v3270_paste(GtkWidget *widget)
215 214 {
216   - v3270_paste_from_url(widget,NULL);
  215 + v3270_clipboard_get_from_url(widget,NULL);
217 216 }
218 217  
219 218 LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget)
220 219 {
221   - v3270_paste_from_url(widget,"text://");
  220 + v3270_clipboard_get_from_url(widget,"text://");
222 221 }
223 222  
... ...
src/selection/text.c
... ... @@ -67,7 +67,7 @@ gchar * v3270_get_selection_as_text(v3270 * terminal, const GList *selection, co
67 67  
68 68 gchar * v3270_get_copy_as_text(v3270 * terminal, const gchar *encoding)
69 69 {
70   - if(terminal->selection.format == V3270_SELECT_TABLE)
  70 + if(terminal->selection.format == V3270_COPY_TABLE)
71 71 return v3270_get_copy_as_table(terminal,"\t",encoding);
72 72 return v3270_get_selection_as_text(terminal, terminal->selection.blocks, encoding, FALSE);
73 73 }
... ...
src/testprogram/toolbar.c
... ... @@ -157,12 +157,12 @@
157 157  
158 158 static void paste_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal)
159 159 {
160   - v3270_paste_from_url(terminal,NULL);
  160 + v3270_clipboard_get_from_url(terminal,NULL);
161 161 }
162 162  
163 163 static void copy_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal)
164 164 {
165   - v3270_copy_selection(terminal,V3270_SELECT_TEXT,FALSE);
  165 + v3270_copy_selection(terminal,V3270_COPY_TEXT,FALSE);
166 166 }
167 167  
168 168 static void color_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal)
... ...
src/trace/exec.c
... ... @@ -184,15 +184,15 @@
184 184 if(!(*arg && g_ascii_strcasecmp(arg,"text")))
185 185 {
186 186 // No argument or "text" copy text.
187   - v3270_copy_selection(trace->terminal, V3270_SELECT_TEXT, FALSE);
  187 + v3270_clipboard_set(trace->terminal, V3270_COPY_TEXT, FALSE);
188 188 }
189 189 else if(!g_ascii_strcasecmp(arg,"table"))
190 190 {
191   - v3270_copy_selection(trace->terminal, V3270_SELECT_TABLE, FALSE);
  191 + v3270_clipboard_set(trace->terminal, V3270_COPY_TABLE, FALSE);
192 192 }
193 193 else if(!g_ascii_strcasecmp(arg,"append"))
194 194 {
195   - v3270_append_selection(trace->terminal,FALSE);
  195 + v3270_clipboard_append(trace->terminal,FALSE);
196 196 }
197 197 else
198 198 {
... ... @@ -237,7 +237,7 @@
237 237 gchar * arg = cmdline+5;
238 238 g_strstrip(arg);
239 239  
240   - v3270_paste_from_url(trace->terminal,arg);
  240 + v3270_clipboard_get_from_url(trace->terminal,arg);
241 241  
242 242 return 0;
243 243 }
... ...