annotate src/gtk/misc-gtk.c @ 542:fd9ce7797984

2004-8-21 Brian Masney <masneyb@gftp.org> * lib/gftp.h lib/options.h lib/protocols.c - added gftp_protocol_default_port() that will return the default port for the current protocol * src/gtk/misc-gtk.c (update_window_info) - when updating the toolbar with the connection status, if the current connection is using the default port for it's protocol, then leave the port field blank. This should help users who want to reconnect to the current site using a different protocol * src/gtk/gftp-gtk.c (CreateConnectToolbar) - expanded the size of the Port input box
author masneyb
date Sat, 21 Aug 2004 15:49:34 +0000
parents 739afd9df73c
children 7f54d0c0edbc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
2 /* misc-gtk.c - misc stuff for the gtk+ 1.2 port of gftp */
255
2ad324cf4930 2003-8-11 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
3 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
4 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
5 /* This program is free software; you can redistribute it and/or modify */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
6 /* it under the terms of the GNU General Public License as published by */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
7 /* the Free Software Foundation; either version 2 of the License, or */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
8 /* (at your option) any later version. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
9 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
10 /* This program is distributed in the hope that it will be useful, */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
13 /* GNU General Public License for more details. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
14 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
15 /* You should have received a copy of the GNU General Public License */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
16 /* along with this program; if not, write to the Free Software */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
17 /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
18 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
19
518
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
20 #include "gftp-gtk.h"
33
c8ec7877432e 2002-10-06 Brian Masney <masneyb@gftp.org>
masneyb
parents: 31
diff changeset
21 static const char cvsid[] = "$Id$";
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
22
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
23 static GtkWidget * statuswid;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
24
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
25
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
26 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
27 remove_files_window (gftp_window_data * wdata)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
28 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
29 wdata->show_selected = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
30 gtk_clist_freeze (GTK_CLIST (wdata->listbox));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
31 gtk_clist_clear (GTK_CLIST (wdata->listbox));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
32 free_file_list (wdata->files);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
33 wdata->files = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
34 gtk_clist_thaw (GTK_CLIST (wdata->listbox));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
35 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
36
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
37
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
38 void
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
39 ftp_log (gftp_logging_level level, gftp_request * request,
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
40 const char *string, ...)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
41 {
326
cdabbe5c9a95 2003-12-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 303
diff changeset
42 uintptr_t max_log_window_size;
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
43 int upd, free_logstr;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
44 gftp_log * newlog;
519
c3edcd3e9db9 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 518
diff changeset
45 gint delsize;
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
46 char *logstr;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
47 va_list argp;
519
c3edcd3e9db9 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 518
diff changeset
48 size_t len;
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
49 #if GTK_MAJOR_VERSION == 1
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
50 gftp_color * color;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
51 GdkColor fore;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
52 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
53 GtkTextBuffer * textbuf;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
54 GtkTextIter iter, iter2;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
55 const char *descr;
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
56 char *utf8_str;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
57 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
58
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
59 va_start (argp, string);
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
60 if (strcmp (string, "%s") == 0)
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
61 {
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
62 logstr = va_arg (argp, char *);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
63 free_logstr = 0;
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
64 }
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
65 else
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
66 {
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
67 logstr = g_strdup_vprintf (string, argp);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
68 free_logstr = 1;
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
69 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
70 va_end (argp);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
71
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
72 #if GTK_MAJOR_VERSION > 1
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
73 if ((utf8_str = gftp_string_to_utf8 (request, logstr)) != NULL)
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
74 {
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
75 if (free_logstr)
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
76 g_free (logstr);
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
77 else
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
78 free_logstr = 1;
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
79
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
80 logstr = utf8_str;
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
81 }
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
82 #endif
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
83
190
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
84 if (pthread_self () != main_thread_id)
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
85 {
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
86 newlog = g_malloc0 (sizeof (*newlog));
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
87 newlog->type = level;
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
88 if (free_logstr)
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
89 newlog->msg = logstr;
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
90 else
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
91 newlog->msg = g_strdup (logstr);
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
92
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
93 pthread_mutex_lock (&log_mutex);
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
94 gftp_file_transfer_logs = g_list_append (gftp_file_transfer_logs, newlog);
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
95 pthread_mutex_unlock (&log_mutex);
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
96 return;
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
97 }
876747813a60 2003-6-17 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
98
354
2ea37b3c0158 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
99 if (gftp_logfd != NULL && level != gftp_logging_misc_nolog)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
100 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
101 if (fwrite (logstr, strlen (logstr), 1, gftp_logfd) != 1)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
102 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
103 fclose (gftp_logfd);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
104 gftp_logfd = NULL;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
105 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
106 else
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
107 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
108 fflush (gftp_logfd);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
109 if (ferror (gftp_logfd))
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
110 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
111 fclose (gftp_logfd);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
112 gftp_logfd = NULL;
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
113 }
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
114 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
115 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
116
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
117 upd = logwdw_vadj->upper - logwdw_vadj->page_size == logwdw_vadj->value;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
118
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
119 gftp_lookup_global_option ("max_log_window_size", &max_log_window_size);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
120
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
121 #if GTK_MAJOR_VERSION == 1
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
122 switch (level)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
123 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
124 case gftp_logging_send:
151
2f15b3000dbc 2003-4-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
125 gftp_lookup_global_option ("send_color", &color);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
126 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
127 case gftp_logging_recv:
151
2f15b3000dbc 2003-4-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
128 gftp_lookup_global_option ("recv_color", &color);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
129 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
130 case gftp_logging_error:
151
2f15b3000dbc 2003-4-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
131 gftp_lookup_global_option ("error_color", &color);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
132 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
133 default:
151
2f15b3000dbc 2003-4-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
134 gftp_lookup_global_option ("misc_color", &color);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
135 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
136 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
137
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
138 memset (&fore, 0, sizeof (fore));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
139 fore.red = color->red;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
140 fore.green = color->green;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
141 fore.blue = color->blue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
142
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
143 gtk_text_freeze (GTK_TEXT (logwdw));
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
144 gtk_text_insert (GTK_TEXT (logwdw), NULL, &fore, NULL, logstr, -1);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
145
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
146 len = gtk_text_get_length (GTK_TEXT (logwdw));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
147 if (max_log_window_size > 0 && len > max_log_window_size)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
148 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
149 delsize = len - max_log_window_size;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
150 gtk_text_set_point (GTK_TEXT (logwdw), delsize);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
151 gtk_text_backward_delete (GTK_TEXT (logwdw), delsize);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
152 len = max_log_window_size;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
153 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
154 gtk_text_set_point (GTK_TEXT (logwdw), len);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
155
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
156 gtk_text_thaw (GTK_TEXT (logwdw));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
157
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
158 if (upd)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
159 gtk_adjustment_set_value (logwdw_vadj, logwdw_vadj->upper);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
160 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
161 switch (level)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
162 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
163 case gftp_logging_send:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
164 descr = "send";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
165 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
166 case gftp_logging_recv:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
167 descr = "recv";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
168 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
169 case gftp_logging_error:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
170 descr = "error";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
171 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
172 default:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
173 descr = "misc";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
174 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
175 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
176
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
177 textbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (logwdw));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
178 len = gtk_text_buffer_get_char_count (textbuf);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
179 gtk_text_buffer_get_iter_at_offset (textbuf, &iter, len);
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
180 gtk_text_buffer_insert_with_tags_by_name (textbuf, &iter, logstr, -1,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
181 descr, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
182
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
183 if (upd)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
184 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
185 gtk_text_buffer_move_mark (textbuf, logwdw_textmark, &iter);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
186 gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (logwdw), logwdw_textmark,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
187 0, 1, 1, 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
188 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
189
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
190 if (max_log_window_size > 0)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
191 {
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
192 delsize = len + g_utf8_strlen (logstr, -1) - max_log_window_size;
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
193
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
194 if (delsize > 0)
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
195 {
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
196 gtk_text_buffer_get_iter_at_offset (textbuf, &iter, 0);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
197 gtk_text_buffer_get_iter_at_offset (textbuf, &iter2, delsize);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
198 gtk_text_buffer_delete (textbuf, &iter, &iter2);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
199 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
200 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
201 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
202
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
203 if (free_logstr)
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
204 g_free (logstr);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
205 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
206
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
207
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
208 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
209 update_window_info (void)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
210 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
211 char *tempstr, empty[] = "";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
212 GtkWidget * tempwid;
542
fd9ce7797984 2004-8-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 521
diff changeset
213 unsigned int port;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
214 int i;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
215
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
216 if (current_wdata->request != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
217 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
218 if ((tempstr = current_wdata->request->hostname) == NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
219 tempstr = empty;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
220 gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (hostedit)->entry), tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
221
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
222 if ((tempstr = current_wdata->request->username) == NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
223 tempstr = empty;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
224 gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (useredit)->entry), tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
225
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
226 if ((tempstr = current_wdata->request->password) == NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
227 tempstr = empty;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
228 gtk_entry_set_text (GTK_ENTRY (passedit), tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
229
542
fd9ce7797984 2004-8-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 521
diff changeset
230 port = gftp_protocol_default_port (current_wdata->request);
fd9ce7797984 2004-8-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 521
diff changeset
231 if (current_wdata->request->port != 0 &&
fd9ce7797984 2004-8-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 521
diff changeset
232 port != current_wdata->request->port)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
233 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
234 tempstr = g_strdup_printf ("%d", current_wdata->request->port);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
235 gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (portedit)->entry), tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
236 g_free (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
237 }
542
fd9ce7797984 2004-8-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 521
diff changeset
238 else
fd9ce7797984 2004-8-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 521
diff changeset
239 gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (portedit)->entry), "");
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
240
518
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
241 for (i=0; gftp_protocols[i].init != NULL; i++)
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
242 {
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
243 if (current_wdata->request->init == gftp_protocols[i].init)
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
244 {
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
245 gtk_option_menu_set_history (GTK_OPTION_MENU (optionmenu), i);
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
246 break;
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
247 }
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
248 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
249 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
250
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
251 update_window (&window1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
252 update_window (&window2);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
253
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
254 tempwid = gtk_item_factory_get_widget (factory, menus[tools_start+2].path);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
255 gtk_widget_set_sensitive (tempwid, GFTP_IS_CONNECTED (window1.request)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
256 && GFTP_IS_CONNECTED (window2.request));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
257 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
258
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
259
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
260 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
261 set_menu_sensitive (gftp_window_data * wdata, char *path, int sensitive)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
262 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
263 GtkWidget * tempwid;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
264 char * pos;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
265
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
266 tempwid = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
267
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
268 if (factory != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
269 tempwid = gtk_item_factory_get_widget (factory, path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
270 if (tempwid)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
271 gtk_widget_set_sensitive (tempwid, sensitive);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
272
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
273 if ((pos = strchr (path + 1, '/')) == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
274 pos = path;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
275
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
276 if (wdata->ifactory)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
277 tempwid = gtk_item_factory_get_widget (wdata->ifactory, pos);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
278 if (tempwid)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
279 gtk_widget_set_sensitive (tempwid, sensitive);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
280 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
281
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
282
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
283 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
284 update_window (gftp_window_data * wdata)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
285 {
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
286 char *dir, *tempstr, *temp1str, *fspec, *utf8_directory;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
287 int connected, start;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
288
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
289 connected = GFTP_IS_CONNECTED (wdata->request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
290 if (connected)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
291 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
292 fspec = wdata->show_selected ? "Selected" : strcmp (wdata->filespec, "*") == 0 ? _("All Files") : wdata->filespec;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
293
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
294 if ((temp1str = wdata->request->hostname) == NULL ||
66
cd3e457cbc85 2002-11-26 Brian Masney <masneyb@gftp.org>
masneyb
parents: 63
diff changeset
295 wdata->request->protonum == GFTP_LOCAL_NUM)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
296 temp1str = "";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
297 tempstr = g_strconcat (temp1str, *temp1str == '\0' ? "[" : " [",
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
298 gftp_protocols[wdata->request->protonum].name,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
299 wdata->request->cached ? _("] (Cached) [") : "] [",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
300 fspec, "]", current_wdata == wdata ? "*" : "", NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
301 gtk_label_set (GTK_LABEL (wdata->hoststxt), tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
302 g_free (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
303
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
304 utf8_directory = NULL;
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
305 if ((dir = wdata->request->directory) == NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
306 temp1str = "";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
307 else
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
308 {
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
309 utf8_directory = gftp_string_to_utf8 (wdata->request,
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
310 wdata->request->directory);
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
311 if (utf8_directory != NULL)
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
312 temp1str = utf8_directory;
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
313 else
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
314 temp1str = dir;
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
315 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
316
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
317 gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry),temp1str);
291
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
318
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
319 if (utf8_directory != NULL)
265244924868 2003-10-19 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
320 g_free (utf8_directory);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
321 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
322 else if (wdata->hoststxt != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
323 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
324 tempstr = g_strconcat (_("Not connected"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
325 current_wdata == wdata ? "*" : "", NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
326 gtk_label_set (GTK_LABEL (wdata->hoststxt), tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
327 g_free (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
328 gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry), "");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
329 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
330
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
331 if (wdata == &window1)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
332 start = local_start;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
333 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
334 start = remote_start;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
335
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
336 set_menu_sensitive (wdata, menus[start + 3].path, connected &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
337 strcmp (wdata->request->url_prefix, "file") != 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
338 set_menu_sensitive (wdata, menus[start + 5].path, connected);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
339 set_menu_sensitive (wdata, menus[start + 6].path, connected);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
340 set_menu_sensitive (wdata, menus[start + 7].path, connected);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
341 set_menu_sensitive (wdata, menus[start + 8].path, connected);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
342 set_menu_sensitive (wdata, menus[start + 9].path, connected);
14
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
343 set_menu_sensitive (wdata, menus[start + 11].path, connected);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
344 set_menu_sensitive (wdata, menus[start + 12].path, connected &&
14
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
345 wdata->request->site != NULL);
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
346 set_menu_sensitive (wdata, menus[start + 13].path, connected &&
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
347 wdata->request->chdir!= NULL);
14
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
348 set_menu_sensitive (wdata, menus[start + 14].path, connected &&
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
349 wdata->request->chmod != NULL);
14
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
350 set_menu_sensitive (wdata, menus[start + 15].path, connected &&
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
351 wdata->request->mkdir != NULL);
14
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
352 set_menu_sensitive (wdata, menus[start + 16].path, connected &&
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
353 wdata->request->rename != NULL);
14
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
354 set_menu_sensitive (wdata, menus[start + 17].path, connected &&
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
355 wdata->request->rmdir != NULL &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
356 wdata->request->rmfile != NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
357 set_menu_sensitive (wdata, menus[start + 18].path, connected &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
358 wdata->request->get_file != NULL);
14
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
359 set_menu_sensitive (wdata, menus[start + 19].path, connected &&
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
360 wdata->request->get_file != NULL);
83090328581e * More largefile support. Hopefully all that is left is the configure stuff
masneyb
parents: 7
diff changeset
361 set_menu_sensitive (wdata, menus[start + 20].path, connected);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
362 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
363
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
364
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
365 GtkWidget *
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
366 toolbar_pixmap (GtkWidget * widget, char *filename)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
367 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
368 gftp_graphic * graphic;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
369 GtkWidget *pix;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
370
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
371 if (filename == NULL || *filename == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
372 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
373
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
374 graphic = open_xpm (widget, filename);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
375
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
376 if (graphic == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
377 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
378
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
379 if ((pix = gtk_pixmap_new (graphic->pixmap, graphic->bitmap)) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
380 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
381
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
382 gtk_widget_show (pix);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
383 return (pix);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
384 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
385
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
386
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
387 gftp_graphic *
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
388 open_xpm (GtkWidget * widget, char *filename)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
389 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
390 gftp_graphic * graphic;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
391 GtkStyle *style;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
392 char *exfile;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
393
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
394 if ((graphic = g_hash_table_lookup (graphic_hash_table, filename)) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
395 return (graphic);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
396
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
397 style = gtk_widget_get_style (widget);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
398
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
399 if ((exfile = get_xpm_path (filename, 0)) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
400 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
401
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
402 graphic = g_malloc0 (sizeof (*graphic));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
403 graphic->pixmap = gdk_pixmap_create_from_xpm (widget->window,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
404 &graphic->bitmap, &style->bg[GTK_STATE_NORMAL], exfile);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
405 g_free (exfile);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
406
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
407 if (graphic->pixmap == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
408 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
409 g_free (graphic);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
410 ftp_log (gftp_logging_error, NULL, _("Error opening file %s: %s\n"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
411 exfile, g_strerror (errno));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
412 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
413 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
414
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
415 graphic->filename = g_strdup (filename);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
416 g_hash_table_insert (graphic_hash_table, graphic->filename, graphic);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
417
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
418 return (graphic);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
419 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
420
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
421
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
422 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
423 gftp_free_pixmap (char *filename)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
424 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
425 gftp_graphic * graphic;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
426
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
427 if ((graphic = g_hash_table_lookup (graphic_hash_table, filename)) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
428 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
429
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
430 #if GTK_MAJOR_VERSION == 1
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
431 gdk_pixmap_unref (graphic->pixmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
432 gdk_bitmap_unref (graphic->bitmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
433 #else
41
4bcfaf6307b5 2002-10-29 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
434 g_object_unref (graphic->pixmap);
4bcfaf6307b5 2002-10-29 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
435 g_object_unref (graphic->bitmap);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
436 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
437
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
438 g_hash_table_remove (graphic_hash_table, filename);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
439 g_free (graphic->filename);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
440 g_free (graphic);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
441 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
442
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
443
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
444 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
445 gftp_get_pixmap (GtkWidget * widget, char *filename, GdkPixmap ** pix,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
446 GdkBitmap ** bitmap)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
447 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
448 gftp_graphic * graphic;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
449
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
450 if (filename == NULL || *filename == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
451 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
452 *pix = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
453 *bitmap = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
454 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
455 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
456
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
457 if ((graphic = g_hash_table_lookup (graphic_hash_table, filename)) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
458 graphic = open_xpm (widget, filename);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
459
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
460 if (graphic == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
461 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
462 *pix = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
463 *bitmap = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
464 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
465 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
466
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
467 *pix = graphic->pixmap;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
468 *bitmap = graphic->bitmap;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
469 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
470
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
471
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
472 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
473 check_status (char *name, gftp_window_data *wdata, int check_other_stop,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
474 int only_one, int at_least_one, int func)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
475 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
476 gftp_window_data * owdata;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
477
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
478 owdata = wdata == &window1 ? &window2 : &window1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
479
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
480 if (wdata->request->stopable)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
481 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
482 ftp_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
483 _("%s: Please hit the stop button first to do anything else\n"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
484 name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
485 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
486 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
487
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
488 if (check_other_stop && owdata->request->stopable)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
489 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
490 ftp_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
491 _("%s: Please hit the stop button first to do anything else\n"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
492 name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
493 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
494 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
495
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
496 if (!GFTP_IS_CONNECTED (wdata->request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
497 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
498 ftp_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
499 _("%s: Not connected to a remote site\n"), name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
500 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
501 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
502
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
503 if (!func)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
504 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
505 ftp_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
506 _("%s: This feature is not available using this protocol\n"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
507 name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
508 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
509 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
510
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
511 if (only_one && !IS_ONE_SELECTED (wdata))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
512 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
513 ftp_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
514 _("%s: You must only have one item selected\n"), name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
515 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
516 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
517
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
518 if (at_least_one && !only_one && IS_NONE_SELECTED (wdata))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
519 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
520 ftp_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
521 _("%s: You must have at least one item selected\n"), name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
522 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
523 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
524 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
525 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
526
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
527
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
528 static gchar *
168
c505d9ba9d53 2003-6-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 151
diff changeset
529 gftp_item_factory_translate (const char *path, gpointer func_data)
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
530 {
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
531 const gchar *strip_prefix = func_data;
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
532 const char *result;
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
533
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
534 if (strip_prefix)
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
535 {
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
536 char *tmp_path = g_strconcat (strip_prefix, path, NULL);
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
537 result = gettext (tmp_path);
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
538 if (result == tmp_path)
168
c505d9ba9d53 2003-6-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 151
diff changeset
539 result = path;
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
540 g_free (tmp_path);
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
541 }
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
542 else
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
543 result = gettext (path);
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
544
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
545 return (char *)result;
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
546 }
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
547
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
548
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
549 GtkItemFactory *
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
550 item_factory_new (GtkType container_type, const char *path,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
551 GtkAccelGroup *accel_group, const char *strip_prefix)
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
552 {
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
553 GtkItemFactory *result = gtk_item_factory_new (container_type, path, accel_group);
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
554 gchar *strip_prefix_dup = g_strdup (strip_prefix);
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
555
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
556 gtk_item_factory_set_translate_func (result, gftp_item_factory_translate,
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
557 strip_prefix_dup, NULL);
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
558
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
559 if (strip_prefix_dup)
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
560 gtk_object_set_data_full (GTK_OBJECT (result), "gftp-strip-prefix",
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
561 strip_prefix_dup, (GDestroyNotify)g_free);
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
562
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
563 return result;
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
564 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
565
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
566
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
567 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
568 create_item_factory (GtkItemFactory * ifactory, guint n_entries,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
569 GtkItemFactoryEntry * entries, gpointer callback_data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
570 {
518
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
571 const char *strip_prefix;
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
572 size_t strip_prefix_len;
521
739afd9df73c 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 519
diff changeset
573 size_t i;
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
574
518
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
575 strip_prefix = gtk_object_get_data (GTK_OBJECT (ifactory), "gftp-strip-prefix");
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
576 if (strip_prefix)
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
577 strip_prefix_len = strlen (strip_prefix);
518
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
578 else
c6a6e908dbaf 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 517
diff changeset
579 strip_prefix_len = 0;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
580
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
581 for (i = 0; i < n_entries; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
582 {
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
583 GtkItemFactoryEntry dummy_item = entries[i];
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
584 if (strip_prefix && strncmp (entries[i].path, strip_prefix, strip_prefix_len) == 0)
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
585 dummy_item.path += strip_prefix_len;
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
586
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
587 gtk_item_factory_create_item (ifactory, &dummy_item, callback_data, 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
588 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
589 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
590
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
591 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
592 add_history (GtkWidget * widget, GList ** history, unsigned int *histlen,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
593 const char *str)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
594 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
595 GList *node, *delnode;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
596 char *tempstr;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
597 int i;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
598
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
599 if (str == NULL || *str == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
600 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
601
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
602 for (node = *history; node != NULL; node = node->next)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
603 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
604 if (strcmp ((char *) node->data, str) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
605 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
606 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
607
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
608 if (node == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
609 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
610 if (*histlen >= MAX_HIST_LEN)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
611 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
612 node = *history;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
613 for (i = 1; i < MAX_HIST_LEN; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
614 node = node->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
615 node->prev->next = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
616 node->prev = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
617 delnode = node;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
618 while (delnode != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
619 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
620 if (delnode->data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
621 g_free (delnode->data);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
622 delnode = delnode->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
623 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
624 g_list_free (node);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
625 }
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
626 tempstr = g_strdup (str);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
627 *history = g_list_prepend (*history, tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
628 ++*histlen;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
629 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
630 else if (node->prev != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
631 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
632 node->prev->next = node->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
633 if (node->next != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
634 node->next->prev = node->prev;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
635 node->prev = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
636 node->next = *history;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
637 if (node->next != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
638 node->next->prev = node;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
639 *history = node;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
640 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
641 gtk_combo_set_popdown_strings (GTK_COMBO (widget), *history);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
642 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
643
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
644
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
645 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
646 check_reconnect (gftp_window_data *wdata)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
647 {
169
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 168
diff changeset
648 return (wdata->request->cached && wdata->request->datafd < 0 &&
66
cd3e457cbc85 2002-11-26 Brian Masney <masneyb@gftp.org>
masneyb
parents: 63
diff changeset
649 !wdata->request->always_connected &&
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
650 !ftp_connect (wdata, wdata->request, 0) ? -1 : 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
651 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
652
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
653
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
654 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
655 add_file_listbox (gftp_window_data * wdata, gftp_file * fle)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
656 {
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
657 char *add_data[7] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL };
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
658 char *tempstr, *str, *pos, *attribs;
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
659 gftp_config_list_vars * tmplistvar;
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
660 gftp_file_extensions * tempext;
326
cdabbe5c9a95 2003-12-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 303
diff changeset
661 intptr_t show_hidden_files;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
662 GdkBitmap * bitmap;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
663 GList * templist;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
664 GdkPixmap * pix;
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
665 int clist_num;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
666 size_t stlen;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
667
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
668 gftp_lookup_request_option (wdata->request, "show_hidden_files",
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
669 &show_hidden_files);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
670
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
671 if (wdata->show_selected)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
672 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
673 fle->shown = fle->was_sel;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
674 if (!fle->shown)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
675 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
676 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
677 else if ((!show_hidden_files && *fle->file == '.' &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
678 strcmp (fle->file, "..") != 0) ||
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
679 !gftp_match_filespec (fle->file, wdata->filespec))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
680 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
681 fle->shown = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
682 fle->was_sel = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
683 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
684 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
685 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
686 fle->shown = 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
687
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
688 clist_num = gtk_clist_append (GTK_CLIST (wdata->listbox), add_data);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
689
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
690 if (fle->was_sel)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
691 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
692 fle->was_sel = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
693 gtk_clist_select_row (GTK_CLIST (wdata->listbox), clist_num, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
694 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
695
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
696 pix = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
697 bitmap = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
698 if (strcmp (fle->file, "..") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
699 gftp_get_pixmap (wdata->listbox, "dotdot.xpm", &pix, &bitmap);
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
700 else if (S_ISLNK (fle->st_mode) && S_ISDIR (fle->st_mode))
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
701 gftp_get_pixmap (wdata->listbox, "linkdir.xpm", &pix, &bitmap);
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
702 else if (S_ISLNK (fle->st_mode))
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
703 gftp_get_pixmap (wdata->listbox, "linkfile.xpm", &pix, &bitmap);
500
ba50a7085d93 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 499
diff changeset
704 else if (S_ISDIR (fle->st_mode))
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
705 gftp_get_pixmap (wdata->listbox, "dir.xpm", &pix, &bitmap);
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
706 else if ((fle->st_mode & S_IXUSR) ||
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
707 (fle->st_mode & S_IXGRP) ||
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
708 (fle->st_mode & S_IXOTH))
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
709 gftp_get_pixmap (wdata->listbox, "exe.xpm", &pix, &bitmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
710 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
711 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
712 stlen = strlen (fle->file);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
713 gftp_lookup_global_option ("ext", &tmplistvar);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
714 templist = tmplistvar->list;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
715 while (templist != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
716 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
717 tempext = templist->data;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
718 if (stlen >= tempext->stlen &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
719 strcmp (&fle->file[stlen - tempext->stlen], tempext->ext) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
720 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
721 gftp_get_pixmap (wdata->listbox, tempext->filename, &pix,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
722 &bitmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
723 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
724 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
725 templist = templist->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
726 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
727 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
728
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
729 if (pix == NULL && bitmap == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
730 gftp_get_pixmap (wdata->listbox, "doc.xpm", &pix, &bitmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
731
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
732 gtk_clist_set_pixmap (GTK_CLIST (wdata->listbox), clist_num, 0, pix, bitmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
733
184
65eb40fb4f03 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
734 if (fle->utf8_file)
65eb40fb4f03 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
735 gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 1,
65eb40fb4f03 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
736 fle->utf8_file);
65eb40fb4f03 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
737 else if (fle->file)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
738 gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 1, fle->file);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
739
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
740 if (GFTP_IS_SPECIAL_DEVICE (fle->st_mode))
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
741 tempstr = g_strdup_printf ("%d, %d", major (fle->size),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
742 minor (fle->size));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
743 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
744 tempstr = insert_commas (fle->size, NULL, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
745
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
746 gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 2, tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
747 g_free (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
748
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
749 if (fle->user)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
750 gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 3, fle->user);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
751 if (fle->group)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
752 gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 4, fle->group);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
753 if ((str = ctime (&fle->datetime)))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
754 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
755 if ((pos = strchr (str, '\n')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
756 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
757 gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 5, str);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
758 }
499
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
759
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
760 attribs = gftp_convert_attributes_from_mode_t (fle->st_mode);
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
761 gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 6, attribs);
39e9945288ea 2004-7-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 483
diff changeset
762 g_free (attribs);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
763
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
764 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
765
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
766
425
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
767 void
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
768 destroy_dialog (gftp_dialog_data * ddata)
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
769 {
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
770 if (ddata->dialog != NULL)
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
771 {
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
772 gtk_widget_destroy (ddata->dialog);
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
773 ddata->dialog = NULL;
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
774 }
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
775 }
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
776
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
777
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
778 #if GTK_MAJOR_VERSION == 1
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
779 static void
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
780 ok_dialog_response (GtkWidget * widget, gftp_dialog_data * ddata)
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
781 {
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
782 if (ddata->edit == NULL)
198
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
783 {
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
784 gtk_widget_destroy (ddata->dialog);
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
785 ddata->dialog = NULL;
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
786 ddata->checkbox = NULL;
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
787 }
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
788
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
789 if (ddata->yesfunc != NULL)
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
790 ddata->yesfunc (ddata->yespointer, ddata);
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
791
425
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
792 if (ddata->edit != NULL &&
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
793 ddata->dialog != NULL)
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
794 gtk_widget_destroy (ddata->dialog);
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
795
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
796 g_free (ddata);
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
797 }
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
798
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
799
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
800 static void
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
801 cancel_dialog_response (GtkWidget * widget, gftp_dialog_data * ddata)
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
802 {
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
803 if (ddata->edit == NULL)
198
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
804 {
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
805 gtk_widget_destroy (ddata->dialog);
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
806 ddata->dialog = NULL;
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
807 ddata->checkbox = NULL;
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
808 }
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
809
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
810 if (ddata->nofunc != NULL)
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
811 ddata->nofunc (ddata->nopointer, ddata);
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
812
425
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
813 if (ddata->edit != NULL &&
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
814 ddata->dialog != NULL)
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
815 gtk_widget_destroy (ddata->dialog);
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
816
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
817 g_free (ddata);
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
818 }
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
819 #else
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
820 static void
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
821 dialog_response (GtkWidget * widget, gint response, gftp_dialog_data * ddata)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
822 {
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
823 if (ddata->edit == NULL)
198
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
824 {
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
825 gtk_widget_destroy (ddata->dialog);
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
826 ddata->dialog = NULL;
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
827 ddata->checkbox = NULL;
8fea1b1a2ec6 2003-6-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 195
diff changeset
828 }
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
829
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
830 switch (response)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
831 {
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
832 case GTK_RESPONSE_YES:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
833 if (ddata->yesfunc != NULL)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
834 ddata->yesfunc (ddata->yespointer, ddata);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
835 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
836 default:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
837 if (ddata->nofunc != NULL)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
838 ddata->nofunc (ddata->nopointer, ddata);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
839 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
840 }
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
841
425
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
842 if (ddata->edit != NULL &&
8fc4efa3f72d 2004-3-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 424
diff changeset
843 ddata->dialog != NULL)
72
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
844 gtk_widget_destroy (ddata->dialog);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
845
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
846 g_free (ddata);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
847 }
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
848 #endif
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
849
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
850
72
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
851 static gint
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
852 dialog_keypress (GtkWidget * widget, GdkEventKey * event, gpointer data)
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
853 {
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
854 if (event->type != GDK_KEY_PRESS)
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
855 return (FALSE);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
856
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
857 if (event->keyval == GDK_KP_Enter || event->keyval == GDK_Return)
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
858 {
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
859 #if GTK_MAJOR_VERSION == 1
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
860 ok_dialog_response (widget, data);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
861 #else
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
862 dialog_response (widget, GTK_RESPONSE_YES, data);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
863 #endif
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
864 return (TRUE);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
865 }
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
866 else if (event->keyval == GDK_Escape)
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
867 {
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
868 #if GTK_MAJOR_VERSION == 1
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
869 cancel_dialog_response (widget, data);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
870 #else
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
871 dialog_response (widget, GTK_RESPONSE_NO, data);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
872 #endif
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
873 return (TRUE);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
874 }
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
875
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
876 return (FALSE);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
877 }
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
878
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
879
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
880 void
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
881 MakeEditDialog (char *diagtxt, char *infotxt, char *deftext, int passwd_item,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
882 char *checktext,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
883 gftp_dialog_button okbutton, void (*okfunc) (), void *okptr,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
884 void (*cancelfunc) (), void *cancelptr)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
885 {
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
886 GtkWidget * tempwid, * dialog;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
887 gftp_dialog_data * ddata;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
888 const gchar * yes_text;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
889
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
890 ddata = g_malloc (sizeof (*ddata));
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
891 ddata->yesfunc = okfunc;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
892 ddata->yespointer = okptr;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
893 ddata->nofunc = cancelfunc;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
894 ddata->nopointer = cancelptr;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
895
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
896 #if GTK_MAJOR_VERSION == 1
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
897 dialog = gtk_dialog_new ();
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
898 gtk_window_set_title (GTK_WINDOW (dialog), diagtxt);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
899 gtk_grab_add (dialog);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
900 gtk_container_border_width (GTK_CONTAINER
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
901 (GTK_DIALOG (dialog)->action_area), 5);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
902 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 15);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
903 gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), TRUE);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
904 #else
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
905 switch (okbutton)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
906 {
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 337
diff changeset
907 case gftp_dialog_button_ok:
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 337
diff changeset
908 yes_text = GTK_STOCK_OK;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 337
diff changeset
909 break;
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
910 case gftp_dialog_button_create:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
911 yes_text = GTK_STOCK_ADD;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
912 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
913 case gftp_dialog_button_change:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
914 yes_text = _("Change");
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
915 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
916 case gftp_dialog_button_connect:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
917 yes_text = _("Connect");
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
918 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
919 case gftp_dialog_button_rename:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
920 yes_text = _("Rename");
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
921 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
922 default:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
923 yes_text = GTK_STOCK_MISSING_IMAGE;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
924 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
925 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
926
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
927 dialog = gtk_dialog_new_with_buttons (_(diagtxt), NULL, 0,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
928 yes_text,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
929 GTK_RESPONSE_YES,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
930 GTK_STOCK_CANCEL,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
931 GTK_RESPONSE_NO,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
932 NULL);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
933 #endif
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
934 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 10);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
935 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 5);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
936 gtk_window_set_wmclass (GTK_WINDOW(dialog), "edit", "gFTP");
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
937 gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
938 gtk_widget_realize (dialog);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
939
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
940 if (gftp_icon != NULL)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
941 {
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
942 gdk_window_set_icon (dialog->window, NULL, gftp_icon->pixmap,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
943 gftp_icon->bitmap);
168
c505d9ba9d53 2003-6-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 151
diff changeset
944 gdk_window_set_icon_name (dialog->window, gftp_version);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
945 }
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
946
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
947 ddata->dialog = dialog;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
948
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
949 tempwid = gtk_label_new (infotxt);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
950 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), tempwid, TRUE,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
951 TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
952 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
953
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
954 ddata->edit = gtk_entry_new ();
72
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
955 gtk_signal_connect (GTK_OBJECT (ddata->edit), "key_press_event",
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
956 GTK_SIGNAL_FUNC (dialog_keypress), (gpointer) ddata);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
957
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
958 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), ddata->edit, TRUE,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
959 TRUE, 0);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
960 gtk_widget_grab_focus (ddata->edit);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
961 gtk_entry_set_visibility (GTK_ENTRY (ddata->edit), passwd_item);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
962
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
963 if (deftext != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
964 {
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
965 gtk_entry_set_text (GTK_ENTRY (ddata->edit), deftext);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
966 gtk_entry_select_region (GTK_ENTRY (ddata->edit), 0, strlen (deftext));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
967 }
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
968 gtk_widget_show (ddata->edit);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
969
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
970 if (checktext != NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
971 {
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
972 ddata->checkbox = gtk_check_button_new_with_label (checktext);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
973 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
974 ddata->checkbox, TRUE, TRUE, 0);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
975 gtk_widget_show (ddata->checkbox);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
976 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
977
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
978 #if GTK_MAJOR_VERSION == 1
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
979 switch (okbutton)
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
980 {
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 337
diff changeset
981 case gftp_dialog_button_ok:
401
3bb0cb1b8389 2004-2-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
982 yes_text = _("OK");
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 337
diff changeset
983 break;
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
984 case gftp_dialog_button_create:
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
985 yes_text = _("Add");
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
986 break;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
987 case gftp_dialog_button_change:
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
988 yes_text = _("Change");
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
989 break;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
990 case gftp_dialog_button_connect:
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
991 yes_text = _("Connect");
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
992 break;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
993 case gftp_dialog_button_rename:
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
994 yes_text = _("Rename");
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
995 break;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
996 default:
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
997 yes_text = "";
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
998 break;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
999 }
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1000
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1001 tempwid = gtk_button_new_with_label (yes_text);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1002 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1003 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1004 TRUE, TRUE, 0);
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1005 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1006 GTK_SIGNAL_FUNC (ok_dialog_response),
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1007 ddata);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1008 gtk_widget_grab_default (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1009 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1010
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1011 tempwid = gtk_button_new_with_label (_("Cancel"));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1012 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1013 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1014 TRUE, TRUE, 0);
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1015 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1016 GTK_SIGNAL_FUNC (cancel_dialog_response),
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1017 ddata);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1018 gtk_widget_show (tempwid);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1019 #else
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1020 g_signal_connect (GTK_OBJECT (dialog), "response",
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1021 G_CALLBACK (dialog_response), ddata);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1022 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1023
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1024 gtk_widget_show (dialog);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1025 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1026
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1027
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1028 void
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1029 MakeYesNoDialog (char *diagtxt, char *infotxt,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1030 void (*yesfunc) (), gpointer yespointer,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1031 void (*nofunc) (), gpointer nopointer)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1032 {
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1033 GtkWidget * text, * dialog;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1034 gftp_dialog_data * ddata;
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
1035 #if GTK_MAJOR_VERSION == 1
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1036 GtkWidget * tempwid;
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1037 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1038
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1039 ddata = g_malloc (sizeof (*ddata));
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1040 ddata->yesfunc = yesfunc;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1041 ddata->yespointer = yespointer;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1042 ddata->nofunc = nofunc;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1043 ddata->nopointer = nopointer;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1044
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
1045 #if GTK_MAJOR_VERSION == 1
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1046 dialog = gtk_dialog_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1047 gtk_grab_add (dialog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1048 gtk_window_set_title (GTK_WINDOW (dialog), diagtxt);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1049 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1050 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1051 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 15);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1052 gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), TRUE);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1053 #else
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1054 dialog = gtk_dialog_new_with_buttons (_(diagtxt), NULL, 0,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1055 GTK_STOCK_YES,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1056 GTK_RESPONSE_YES,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1057 GTK_STOCK_NO,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1058 GTK_RESPONSE_NO,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1059 NULL);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1060 #endif
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1061 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 10);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1062 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 5);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1063 gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1064 gtk_window_set_wmclass (GTK_WINDOW(dialog), "yndiag", "gFTP");
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1065 gtk_widget_realize (dialog);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1066
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1067 if (gftp_icon != NULL)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1068 {
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1069 gdk_window_set_icon (dialog->window, NULL, gftp_icon->pixmap,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1070 gftp_icon->bitmap);
168
c505d9ba9d53 2003-6-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 151
diff changeset
1071 gdk_window_set_icon_name (dialog->window, gftp_version);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1072 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1073
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1074 ddata->dialog = dialog;
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1075
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1076 text = gtk_label_new (infotxt);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1077 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), text, TRUE, TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1078 gtk_widget_show (text);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1079
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 43
diff changeset
1080 #if GTK_MAJOR_VERSION == 1
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1081 tempwid = gtk_button_new_with_label (_(" Yes "));
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1082 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1083 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1084 FALSE, FALSE, 0);
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1085 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
72
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
1086 GTK_SIGNAL_FUNC (ok_dialog_response), ddata);
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
1087
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1088 gtk_widget_grab_default (tempwid);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1089 gtk_widget_show (tempwid);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1090
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1091 tempwid = gtk_button_new_with_label (_(" No "));
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1092 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1093 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1094 FALSE, FALSE, 0);
21
4b244bf9d84d 2002-09-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
1095 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
72
c48f19f24050 2002-12-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 66
diff changeset
1096 GTK_SIGNAL_FUNC (cancel_dialog_response), ddata);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1097 gtk_widget_show (tempwid);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1098
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1099 #else
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1100 g_signal_connect (GTK_OBJECT (dialog), "response",
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1101 G_CALLBACK (dialog_response), ddata);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 14
diff changeset
1102 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1103
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1104 gtk_widget_show (dialog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1105 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1106
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1107
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1108 static gint
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1109 delete_event (GtkWidget * widget, GdkEvent * event, gpointer data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1110 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1111 return (TRUE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1112 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1113
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1114
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1115 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1116 trans_stop_button (GtkWidget * widget, gpointer data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1117 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1118 gftp_transfer * transfer;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1119
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1120 transfer = data;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1121 pthread_kill (((gftp_window_data *) transfer->fromwdata)->tid, SIGINT);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1122 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1123
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 47
diff changeset
1124
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1125 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1126 update_directory_download_progress (gftp_transfer * transfer)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1127 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1128 static GtkWidget * dialog = NULL, * textwid, * stopwid;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1129 char tempstr[255];
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1130 GtkWidget * vbox;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1131
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1132 if (transfer->numfiles < 0 || transfer->numdirs < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1133 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1134 if (dialog != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1135 gtk_widget_destroy (dialog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1136 dialog = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1137 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1138 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1139
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1140 if (dialog == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1141 {
303
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 291
diff changeset
1142 dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL);
424
26333110dfd2 2004-3-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 401
diff changeset
1143 gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
303
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 291
diff changeset
1144 #if GTK_MAJOR_VERSION > 1
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 291
diff changeset
1145 gtk_window_set_decorated (GTK_WINDOW (dialog), 0);
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 291
diff changeset
1146 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1147 gtk_grab_add (dialog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1148 gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1149 GTK_SIGNAL_FUNC (delete_event), NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1150 gtk_window_set_title (GTK_WINDOW (dialog),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1151 _("Getting directory listings"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1152 gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1153 gtk_window_set_wmclass (GTK_WINDOW(dialog), "dirlist", "gFTP");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1154
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1155 vbox = gtk_vbox_new (FALSE, 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1156 gtk_container_border_width (GTK_CONTAINER (vbox), 10);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1157 gtk_container_add (GTK_CONTAINER (dialog), vbox);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1158 gtk_widget_show (vbox);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1159
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1160 textwid = gtk_label_new (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1161 gtk_box_pack_start (GTK_BOX (vbox), textwid, TRUE, TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1162 gtk_widget_show (textwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1163
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1164 statuswid = gtk_progress_bar_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1165 gtk_progress_set_activity_mode (GTK_PROGRESS (statuswid), 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1166 gtk_progress_bar_set_activity_step (GTK_PROGRESS_BAR (statuswid), 3);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1167 gtk_progress_bar_set_activity_blocks (GTK_PROGRESS_BAR (statuswid), 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1168 gtk_box_pack_start (GTK_BOX (vbox), statuswid, TRUE, TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1169 gtk_widget_show (statuswid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1170
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1171 stopwid = gtk_button_new_with_label (_(" Stop "));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1172 gtk_signal_connect (GTK_OBJECT (stopwid), "clicked",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1173 GTK_SIGNAL_FUNC (trans_stop_button), transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1174 gtk_box_pack_start (GTK_BOX (vbox), stopwid, TRUE, TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1175 gtk_widget_show (stopwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1176
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1177 gtk_widget_show (dialog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1178 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1179
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1180 g_snprintf (tempstr, sizeof (tempstr),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1181 _("Received %ld directories\nand %ld files"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1182 transfer->numdirs, transfer->numfiles);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1183 gtk_label_set_text (GTK_LABEL (textwid), tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1184 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1185
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1186
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1187 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1188 progress_timeout (gpointer data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1189 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1190 gftp_transfer * tdata;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1191 double val;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1192
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1193 tdata = data;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1194
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1195 update_directory_download_progress (tdata);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1196
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1197 val = gtk_progress_get_value (GTK_PROGRESS (statuswid));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1198 if (val >= 1.0)
517
648bf2825ea9 2004-7-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 500
diff changeset
1199 val = 0.0;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1200 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1201 val += 0.10;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1202 gtk_progress_bar_update (GTK_PROGRESS_BAR (statuswid), val);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1203
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1204 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1205 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1206
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1207
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1208 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1209 display_cached_logs (void)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1210 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1211 gftp_log * templog;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1212 GList * templist;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1213
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1214 pthread_mutex_lock (&log_mutex);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
1215 templist = gftp_file_transfer_logs;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1216 while (templist != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1217 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1218 templog = (gftp_log *) templist->data;
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 184
diff changeset
1219 ftp_log (templog->type, NULL, "%s", templog->msg);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1220 g_free (templog->msg);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1221 g_free (templog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1222 templist->data = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1223 templist = templist->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1224 }
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
1225 g_list_free (gftp_file_transfer_logs);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 72
diff changeset
1226 gftp_file_transfer_logs = NULL;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1227 pthread_mutex_unlock (&log_mutex);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1228 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1229
42
cd169e4789df 2002-10-29 Brian Masney <masneyb@gftp.org>
masneyb
parents: 41
diff changeset
1230
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1231 char *
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1232 get_xpm_path (char *filename, int quit_on_err)
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1233 {
483
4376ffeab64e 2004-6-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 425
diff changeset
1234 char *tempstr, *exfile, *share_dir;
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1235
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1236 tempstr = g_strconcat (BASE_CONF_DIR, "/", filename, NULL);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1237 exfile = expand_path (tempstr);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1238 g_free (tempstr);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1239 if (access (exfile, F_OK) != 0)
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1240 {
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1241 g_free (exfile);
483
4376ffeab64e 2004-6-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 425
diff changeset
1242 share_dir = gftp_get_share_dir ();
4376ffeab64e 2004-6-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 425
diff changeset
1243
4376ffeab64e 2004-6-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 425
diff changeset
1244 tempstr = g_strconcat (share_dir, "/", filename, NULL);
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1245 exfile = expand_path (tempstr);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1246 g_free (tempstr);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1247 if (access (exfile, F_OK) != 0)
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1248 {
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1249 g_free (exfile);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1250 exfile = g_strconcat ("/usr/share/icons/", filename, NULL);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1251 if (access (exfile, F_OK) != 0)
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1252 {
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1253 g_free (exfile);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1254 if (!quit_on_err)
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1255 return (NULL);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1256
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1257 printf (_("gFTP Error: Cannot find file %s in %s or %s\n"),
483
4376ffeab64e 2004-6-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 425
diff changeset
1258 filename, share_dir, BASE_CONF_DIR);
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1259 exit (1);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1260 }
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1261 }
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1262 }
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1263 return (exfile);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1264 }
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 198
diff changeset
1265