comparison src/gtk/gtkui_transfer.c @ 374:d207b8241e96

2003-1-21 Brian Masney <masneyb@gftp.org> * lib/config_file.c lib/gftp.h - set the character string arguments to const for the following functions: gftp_lookup_global_option(), gftp_lookup_request_option(), gftp_lookup_bookmark_option(), gftp_set_global_option(), gftp_set_request_option(), gftp_set_bookmark_option() * lib/misc.c lib/gftp.h - set the character string arguments to const for the function gftp_match_filespec() * src/gtk/gftp-gtk.c src/gtk/menu-items.c src/uicommon/gftpui.c - moved more UI independant parts to the uicommon directory. Moved some GUI specific functionality into gftp-gtk.c * src/text/gftp-text.c src/gtk/gftp-gtk.c src/uicommon/gftpui.c - pass the local/remote uidata/request structures to process_command(). Removed old function gftpui_common_init(). Added new gftpui_common_init() that sets up common functionality for a port. * src/gtk/gtkui.c src/gtk/gtkui_transfer.c - moved gftpui_add_file_to_transfer() to gtkui_transfer.c * src/gtk/gtkui_transfer.c - cleaned up these functions some and made them more modular * src/uicommon/gftpui.c src/uicommon/gftpui.h - for all of the command line functions, make the command argument a constant
author masneyb
date Wed, 21 Jan 2004 23:35:40 +0000
parents 39b57989c34a
children 14da115b149b
comparison
equal deleted inserted replaced
373:642bc7a87f05 374:d207b8241e96
18 /*****************************************************************************/ 18 /*****************************************************************************/
19 19
20 #include "gftp-gtk.h" 20 #include "gftp-gtk.h"
21 static const char cvsid[] = "$Id$"; 21 static const char cvsid[] = "$Id$";
22 22
23 static void 23
24 trans_selectall (GtkWidget * widget, gpointer data) 24 void
25 gftpui_add_file_to_transfer (gftp_transfer * tdata, GList * curfle,
26 char *filepos)
27 {
28 gftpui_common_curtrans_data * transdata;
29 gftp_file * fle;
30 char *text[2];
31
32 fle = curfle->data;
33 text[0] = filepos;
34 if (fle->transfer_action == GFTP_TRANS_ACTION_SKIP)
35 text[1] = _("Skipped");
36 else
37 text[1] = _("Waiting...");
38
39 fle->user_data = gtk_ctree_insert_node (GTK_CTREE (dlwdw),
40 tdata->user_data, NULL, text, 5,
41 NULL, NULL, NULL, NULL,
42 FALSE, FALSE);
43 transdata = g_malloc (sizeof (*transdata));
44 transdata->transfer = tdata;
45 transdata->curfle = curfle;
46
47 gtk_ctree_node_set_row_data (GTK_CTREE (dlwdw), fle->user_data, transdata);
48 }
49
50
51 static void
52 gftpui_gtk_trans_selectall (GtkWidget * widget, gpointer data)
25 { 53 {
26 gftp_transfer * tdata; 54 gftp_transfer * tdata;
27 tdata = data; 55 tdata = data;
28 56
29 gtk_clist_select_all (GTK_CLIST (tdata->clist)); 57 gtk_clist_select_all (GTK_CLIST (tdata->clist));
30 } 58 }
31 59
32 60
33 static void 61 static void
34 trans_unselectall (GtkWidget * widget, gpointer data) 62 gftpui_gtk_trans_unselectall (GtkWidget * widget, gpointer data)
35 { 63 {
36 gftp_transfer * tdata; 64 gftp_transfer * tdata;
37 tdata = data; 65 tdata = data;
38 66
39 gtk_clist_unselect_all (GTK_CLIST (tdata->clist)); 67 gtk_clist_unselect_all (GTK_CLIST (tdata->clist));
40 } 68 }
41 69
42 70
43 static void 71 static void
44 overwrite (GtkWidget * widget, gpointer data) 72 gftpui_gtk_set_action (gftp_transfer * tdata, char * transfer_str,
73 int transfer_action)
45 { 74 {
46 GList * templist, * filelist; 75 GList * templist, * filelist;
47 gftp_transfer * tdata;
48 gftp_file * tempfle; 76 gftp_file * tempfle;
49 int curpos; 77 int curpos;
50 78
51 tdata = data; 79 g_static_mutex_lock (&tdata->structmutex);
80
52 curpos = 0; 81 curpos = 0;
53 filelist = tdata->files; 82 filelist = tdata->files;
54 templist = GTK_CLIST (tdata->clist)->selection; 83 templist = GTK_CLIST (tdata->clist)->selection;
55 while (templist != NULL) 84 while (templist != NULL)
56 { 85 {
57 templist = get_next_selection (templist, &filelist, &curpos); 86 templist = get_next_selection (templist, &filelist, &curpos);
58 tempfle = filelist->data; 87 tempfle = filelist->data;
59 tempfle->transfer_action = GFTP_TRANS_ACTION_OVERWRITE; 88 tempfle->transfer_action = transfer_action;
60 gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, _("Overwrite")); 89 gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, transfer_str);
61 } 90 }
62 } 91
63 92 g_static_mutex_unlock (&tdata->structmutex);
64 93 }
65 static void 94
66 resume (GtkWidget * widget, gpointer data) 95
67 { 96 static void
68 GList * templist, * filelist; 97 gftpui_gtk_overwrite (GtkWidget * widget, gpointer data)
69 gftp_transfer * tdata; 98 {
70 gftp_file * tempfle; 99 gftpui_gtk_set_action (data, _("Overwrite"), GFTP_TRANS_ACTION_OVERWRITE);
71 int curpos; 100 }
72 101
73 tdata = data; 102
74 curpos = 0; 103 static void
75 filelist = tdata->files; 104 gftpui_gtk_resume (GtkWidget * widget, gpointer data)
76 templist = GTK_CLIST (tdata->clist)->selection; 105 {
77 while (templist != NULL) 106 gftpui_gtk_set_action (data, _("Resume"), GFTP_TRANS_ACTION_RESUME);
78 { 107 }
79 templist = get_next_selection (templist, &filelist, &curpos); 108
80 tempfle = filelist->data; 109
81 tempfle->transfer_action = GFTP_TRANS_ACTION_RESUME; 110 static void
82 gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, _("Resume")); 111 gftpui_gtk_skip (GtkWidget * widget, gpointer data)
83 } 112 {
84 } 113 gftpui_gtk_set_action (data, _("Skip"), GFTP_TRANS_ACTION_SKIP);
85 114 }
86 115
87 static void 116
88 skip (GtkWidget * widget, gpointer data) 117 static void
89 { 118 gftpui_gtk_ok (GtkWidget * widget, gpointer data)
90 GList * templist, * filelist;
91 gftp_transfer * tdata;
92 gftp_file * tempfle;
93 int curpos;
94
95 tdata = data;
96 curpos = 0;
97 filelist = tdata->files;
98 templist = GTK_CLIST (tdata->clist)->selection;
99 while (templist != NULL)
100 {
101 templist = get_next_selection (templist, &filelist, &curpos);
102 tempfle = filelist->data;
103 tempfle->transfer_action = GFTP_TRANS_ACTION_SKIP;
104 gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, _("Skip"));
105 }
106 }
107
108
109 static void
110 ok (GtkWidget * widget, gpointer data)
111 { 119 {
112 gftp_transfer * tdata; 120 gftp_transfer * tdata;
113 gftp_file * tempfle; 121 gftp_file * tempfle;
114 GList * templist; 122 GList * templist;
115 123
120 tempfle = templist->data; 128 tempfle = templist->data;
121 if (tempfle->transfer_action != GFTP_TRANS_ACTION_SKIP) 129 if (tempfle->transfer_action != GFTP_TRANS_ACTION_SKIP)
122 break; 130 break;
123 } 131 }
124 132
133 tdata->ready = 1;
125 if (templist == NULL) 134 if (templist == NULL)
126 { 135 {
127 tdata->show = 0; 136 tdata->show = 0;
128 tdata->ready = tdata->done = 1; 137 tdata->done = 1;
129 } 138 }
130 else 139 else
131 tdata->show = tdata->ready = 1; 140 tdata->show = 1;
141
132 g_static_mutex_unlock (&tdata->structmutex); 142 g_static_mutex_unlock (&tdata->structmutex);
133 } 143 }
134 144
135 145
136 static void 146 static void
137 cancel (GtkWidget * widget, gpointer data) 147 gftpui_gtk_cancel (GtkWidget * widget, gpointer data)
138 { 148 {
139 gftp_transfer * tdata; 149 gftp_transfer * tdata;
140 150
141 tdata = data; 151 tdata = data;
142 g_static_mutex_lock (&tdata->structmutex); 152 g_static_mutex_lock (&tdata->structmutex);
146 } 156 }
147 157
148 158
149 #if GTK_MAJOR_VERSION > 1 159 #if GTK_MAJOR_VERSION > 1
150 static void 160 static void
151 transfer_action (GtkWidget * widget, gint response, gpointer user_data) 161 gftpui_gtk_transfer_action (GtkWidget * widget, gint response,
162 gpointer user_data)
152 { 163 {
153 switch (response) 164 switch (response)
154 { 165 {
155 case GTK_RESPONSE_OK: 166 case GTK_RESPONSE_OK:
156 ok (widget, user_data); 167 gftpui_gtk_ok (widget, user_data);
157 gtk_widget_destroy (widget); 168 gtk_widget_destroy (widget);
158 break; 169 break;
159 case GTK_RESPONSE_CANCEL: 170 case GTK_RESPONSE_CANCEL:
160 cancel (widget, user_data); 171 gftpui_gtk_cancel (widget, user_data);
161 /* no break */ 172 /* no break */
162 default: 173 default:
163 gtk_widget_destroy (widget); 174 gtk_widget_destroy (widget);
164 } 175 }
165 } 176 }
296 gtk_widget_show (hbox); 307 gtk_widget_show (hbox);
297 308
298 tempwid = gtk_button_new_with_label (_("Overwrite")); 309 tempwid = gtk_button_new_with_label (_("Overwrite"));
299 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); 310 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
300 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", 311 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
301 GTK_SIGNAL_FUNC (overwrite), (gpointer) tdata); 312 GTK_SIGNAL_FUNC (gftpui_gtk_overwrite), (gpointer) tdata);
302 gtk_widget_show (tempwid); 313 gtk_widget_show (tempwid);
303 314
304 tempwid = gtk_button_new_with_label (_("Resume")); 315 tempwid = gtk_button_new_with_label (_("Resume"));
305 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); 316 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
306 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", 317 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
307 GTK_SIGNAL_FUNC (resume), (gpointer) tdata); 318 GTK_SIGNAL_FUNC (gftpui_gtk_resume), (gpointer) tdata);
308 gtk_widget_show (tempwid); 319 gtk_widget_show (tempwid);
309 320
310 tempwid = gtk_button_new_with_label (_("Skip File")); 321 tempwid = gtk_button_new_with_label (_("Skip File"));
311 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); 322 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
312 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (skip), 323 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
313 (gpointer) tdata); 324 GTK_SIGNAL_FUNC (gftpui_gtk_skip), (gpointer) tdata);
314 gtk_widget_show (tempwid); 325 gtk_widget_show (tempwid);
315 326
316 hbox = gtk_hbox_new (TRUE, 20); 327 hbox = gtk_hbox_new (TRUE, 20);
317 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, TRUE, TRUE, 0); 328 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, TRUE, TRUE, 0);
318 gtk_widget_show (hbox); 329 gtk_widget_show (hbox);
319 330
320 tempwid = gtk_button_new_with_label (_("Select All")); 331 tempwid = gtk_button_new_with_label (_("Select All"));
321 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); 332 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
322 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", 333 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
323 GTK_SIGNAL_FUNC (trans_selectall), (gpointer) tdata); 334 GTK_SIGNAL_FUNC (gftpui_gtk_trans_selectall), (gpointer) tdata);
324 gtk_widget_show (tempwid); 335 gtk_widget_show (tempwid);
325 336
326 tempwid = gtk_button_new_with_label (_("Deselect All")); 337 tempwid = gtk_button_new_with_label (_("Deselect All"));
327 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); 338 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
328 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", 339 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
329 GTK_SIGNAL_FUNC (trans_unselectall), (gpointer) tdata); 340 GTK_SIGNAL_FUNC (gftpui_gtk_trans_unselectall), (gpointer) tdata);
330 gtk_widget_show (tempwid); 341 gtk_widget_show (tempwid);
331 342
332 #if GTK_MAJOR_VERSION == 1 343 #if GTK_MAJOR_VERSION == 1
333 tempwid = gtk_button_new_with_label (_("OK")); 344 tempwid = gtk_button_new_with_label (_("OK"));
334 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); 345 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
335 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, 346 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
336 TRUE, TRUE, 0); 347 TRUE, TRUE, 0);
337 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (ok), 348 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
338 (gpointer) tdata); 349 GTK_SIGNAL_FUNC (gftpui_gtk_ok), (gpointer) tdata);
339 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", 350 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",
340 GTK_SIGNAL_FUNC (gtk_widget_destroy), 351 GTK_SIGNAL_FUNC (gtk_widget_destroy),
341 GTK_OBJECT (dialog)); 352 GTK_OBJECT (dialog));
342 gtk_widget_grab_default (tempwid); 353 gtk_widget_grab_default (tempwid);
343 gtk_widget_show (tempwid); 354 gtk_widget_show (tempwid);
345 tempwid = gtk_button_new_with_label (_(" Cancel ")); 356 tempwid = gtk_button_new_with_label (_(" Cancel "));
346 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); 357 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
347 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, 358 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
348 TRUE, TRUE, 0); 359 TRUE, TRUE, 0);
349 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", 360 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
350 GTK_SIGNAL_FUNC (cancel), (gpointer) tdata); 361 GTK_SIGNAL_FUNC (gftpui_gtk_cancel), (gpointer) tdata);
351 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", 362 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",
352 GTK_SIGNAL_FUNC (gtk_widget_destroy), 363 GTK_SIGNAL_FUNC (gtk_widget_destroy),
353 GTK_OBJECT (dialog)); 364 GTK_OBJECT (dialog));
354 gtk_widget_show (tempwid); 365 gtk_widget_show (tempwid);
355 #else 366 #else
356 g_signal_connect (GTK_OBJECT (dialog), "response", 367 g_signal_connect (GTK_OBJECT (dialog), "response",
357 G_CALLBACK (transfer_action), (gpointer) tdata); 368 G_CALLBACK (gftpui_gtk_transfer_action),(gpointer) tdata);
358 #endif 369 #endif
359 370
360 gtk_widget_show (dialog); 371 gtk_widget_show (dialog);
361 dialog = NULL; 372 dialog = NULL;
362 } 373 }