annotate src/gtkft.c @ 9785:2356d2153c94

[gaim-migrate @ 10653] Dave West made us check errno and give better file related errors for file transfers. He also added some information to the xfer dialog, like the protocol and account name. He also made the initial status of xfers added to the dialog be "waiting for transfer to start" committer: Tailor Script <tailor@pidgin.im>
author Tim Ringenbach <marv@pidgin.im>
date Thu, 19 Aug 2004 22:46:08 +0000
parents 03be9d653123
children 4a15962c344a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
7820
8e60ddc28a22 [gaim-migrate @ 8472]
Mark Doliner <mark@kingant.net>
parents: 7805
diff changeset
2 * @file gtkft.c GTK+ File Transfer UI
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
3 * @ingroup gtkui
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7859
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7859
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7859
diff changeset
9 * source distribution.
7035
feb3d21a7794 [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
10 *
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
6371
8f94cce8faa5 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6267
diff changeset
25 #include "gtkinternal.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
26
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
27 #include "debug.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
28 #include "notify.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
29 #include "ft.h"
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 #include "prpl.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
31 #include "util.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
32
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
33 #include "gaim-disclosure.h"
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 #include "gtkcellrendererprogress.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
35 #include "gtkft.h"
5974
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
36 #include "prefs.h"
5966
5fb6bd688a5b [gaim-migrate @ 6413]
Mark Doliner <mark@kingant.net>
parents: 5959
diff changeset
37 #include "gtkutils.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5826
diff changeset
38 #include "stock.h"
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
39
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
40 #define GAIM_GTKXFER(xfer) \
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
41 (GaimGtkXferUiData *)(xfer)->ui_data
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
43 struct _GaimGtkXferDialog
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
45 gboolean keep_open;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
46 gboolean auto_clear;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
47
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
48 gint num_transfers;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
49
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
50 GaimXfer *selected_xfer;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
51
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52 GtkWidget *window;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 GtkWidget *tree;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 GtkListStore *model;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
55
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
56 GtkWidget *disclosure;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
57
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
58 GtkWidget *table;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
59
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
60 GtkWidget *local_user_desc_label;
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
61 GtkWidget *local_user_label;
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
62 GtkWidget *remote_user_desc_label;
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
63 GtkWidget *remote_user_label;
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
64 GtkWidget *protocol_label;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
65 GtkWidget *filename_label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
66 GtkWidget *status_label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
67 GtkWidget *speed_label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
68 GtkWidget *time_elapsed_label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
69 GtkWidget *time_remaining_label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
70
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
71 GtkWidget *progress;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
72
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
73 /* Buttons */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
74 GtkWidget *open_button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
75 GtkWidget *pause_button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
76 GtkWidget *resume_button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
77 GtkWidget *remove_button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
78 GtkWidget *stop_button;
5608
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
79 GtkWidget *close_button;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80 };
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
81
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
82 typedef struct
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83 {
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
84 GtkTreeIter iter;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
85 time_t start_time;
9017
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
86 time_t end_time;
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
87 gboolean in_list;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
89 char *name;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
90
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
91 } GaimGtkXferUiData;
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
92
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
93 static GaimGtkXferDialog *xfer_dialog = NULL;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
94
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
95 enum
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
96 {
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
97 COLUMN_STATUS = 0,
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
98 COLUMN_PROGRESS,
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
99 COLUMN_FILENAME,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
100 COLUMN_SIZE,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
101 COLUMN_REMAINING,
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
102 COLUMN_DATA,
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
103 NUM_COLUMNS
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
104 };
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
105
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
106
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
107 /**************************************************************************
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
108 * Utility Functions
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
109 **************************************************************************/
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
110 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
111 get_xfer_info_strings(GaimXfer *xfer, char **kbsec, char **time_elapsed,
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
112 char **time_remaining)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
113 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
114 GaimGtkXferUiData *data;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
115 double kb_sent, kb_rem;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
116 double kbps = 0.0;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
117 time_t elapsed, now;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
118
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
119 data = GAIM_GTKXFER(xfer);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
120
9017
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
121 if (data->end_time == -1 &&
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
122 (gaim_xfer_is_canceled(xfer) || gaim_xfer_is_completed(xfer)))
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
123 data->end_time = time(NULL);
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
124
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
125 if (data->end_time != -1)
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
126 now = data->end_time;
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
127 else
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
128 now = time(NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
129
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
130 kb_sent = gaim_xfer_get_bytes_sent(xfer) / 1024.0;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
131 kb_rem = gaim_xfer_get_bytes_remaining(xfer) / 1024.0;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
132 elapsed = (now - data->start_time);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
133 kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
134
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
135 if (kbsec != NULL) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
136 if (gaim_xfer_is_completed(xfer))
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
137 *kbsec = g_strdup("");
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
138 else
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
139 *kbsec = g_strdup_printf(_("%.2f KB/s"), kbps);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
140 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
141
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
142 if (time_elapsed != NULL) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
143 int h, m, s;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
144 int secs_elapsed;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
145
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
146 secs_elapsed = now - data->start_time;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
147
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
148 h = secs_elapsed / 3600;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
149 m = (secs_elapsed % 3600) / 60;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
150 s = secs_elapsed % 60;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
151
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
152 *time_elapsed = g_strdup_printf("%d:%02d:%02d", h, m, s);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
153 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
154
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
155 if (time_remaining != NULL) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
156 if (gaim_xfer_get_size(xfer) == 0) {
8351
ffa642240fc1 [gaim-migrate @ 9075]
Nathan Walp <nwalp@pidgin.im>
parents: 8282
diff changeset
157 *time_remaining = g_strdup(_("Unknown"));
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
158 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
159 else if (gaim_xfer_is_completed(xfer)) {
8351
ffa642240fc1 [gaim-migrate @ 9075]
Nathan Walp <nwalp@pidgin.im>
parents: 8282
diff changeset
160 *time_remaining = g_strdup(_("Finished"));
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
161 }
9017
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
162 else if (gaim_xfer_is_canceled(xfer)) {
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
163 *time_remaining = g_strdup(_("Canceled"));
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
164 }
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
165 else if (kb_sent <= 0) {
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
166 *time_remaining = g_strdup(_("Waiting for transfer to begin"));
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
167 }
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
168 else {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
169 int h, m, s;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
170 int secs_remaining;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
171
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
172 secs_remaining = (int)(kb_rem / kbps);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
173
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
174 h = secs_remaining / 3600;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
175 m = (secs_remaining % 3600) / 60;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
176 s = secs_remaining % 60;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
177
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
178 *time_remaining = g_strdup_printf("%d:%02d:%02d", h, m, s);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
179 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
180 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
181 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
182
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
183 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
184 update_detailed_info(GaimGtkXferDialog *dialog, GaimXfer *xfer)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
185 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
186 GaimGtkXferUiData *data;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
187 char *kbsec, *time_elapsed, *time_remaining;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
188 char *status;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
189
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
190 if (dialog == NULL || xfer == NULL)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
191 return;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
192
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
193 data = GAIM_GTKXFER(xfer);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
194
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
195 get_xfer_info_strings(xfer, &kbsec, &time_elapsed, &time_remaining);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
196
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
197 status = g_strdup_printf("%ld of %ld",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
198 (unsigned long)gaim_xfer_get_bytes_sent(xfer),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
199 (unsigned long)gaim_xfer_get_size(xfer));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
200
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
201 if (gaim_xfer_get_size(xfer) >= 0 &&
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
202 gaim_xfer_is_completed(xfer)) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
203
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
204 GdkPixbuf *pixbuf = NULL;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
205
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
206 pixbuf = gtk_widget_render_icon(xfer_dialog->window,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
207 GAIM_STOCK_FILE_DONE,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
208 GTK_ICON_SIZE_MENU, NULL);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
209
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
210 gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
211 COLUMN_STATUS, pixbuf,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
212 -1);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
213
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
214 g_object_unref(pixbuf);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
215 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
216
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
217 if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) {
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
218 gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label),
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
219 _("<b>Receiving As:</b>"));
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
220 gtk_label_set_markup(GTK_LABEL(dialog->remote_user_desc_label),
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
221 _("<b>Receiving From:</b>"));
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
222 }
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
223 else {
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
224 gtk_label_set_markup(GTK_LABEL(dialog->remote_user_desc_label),
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
225 _("<b>Sending To:</b>"));
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
226 gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label),
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
227 _("<b>Sending As:</b>"));
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
228 }
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
229
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
230 gtk_label_set_text(GTK_LABEL(dialog->local_user_label),
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
231 gaim_account_get_username(xfer->account));
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
232 gtk_label_set_text(GTK_LABEL(dialog->remote_user_label), xfer->who);
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
233 gtk_label_set_text(GTK_LABEL(dialog->protocol_label),
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
234 gaim_account_get_protocol_name(xfer->account));
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
235
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
236 if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) {
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
237 gtk_label_set_text(GTK_LABEL(dialog->filename_label),
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
238 gaim_xfer_get_filename(xfer));
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
239 } else {
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
240 char *tmp;
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
241 tmp = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
242 gtk_label_set_text(GTK_LABEL(dialog->filename_label), tmp);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
243 g_free(tmp);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
244 }
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
245
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
246 gtk_label_set_text(GTK_LABEL(dialog->status_label), status);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
247
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
248 gtk_label_set_text(GTK_LABEL(dialog->speed_label), kbsec);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
249 gtk_label_set_text(GTK_LABEL(dialog->time_elapsed_label), time_elapsed);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
250 gtk_label_set_text(GTK_LABEL(dialog->time_remaining_label),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
251 time_remaining);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
252
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
253 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(dialog->progress),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
254 gaim_xfer_get_progress(xfer));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
255
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
256 g_free(kbsec);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
257 g_free(time_elapsed);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
258 g_free(time_remaining);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
259 g_free(status);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
260 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
261
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
262 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
263 update_buttons(GaimGtkXferDialog *dialog, GaimXfer *xfer)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
264 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
265 if (dialog->selected_xfer == NULL) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
266 gtk_widget_set_sensitive(dialog->disclosure, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
267 gtk_widget_set_sensitive(dialog->open_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
268 gtk_widget_set_sensitive(dialog->pause_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
269 gtk_widget_set_sensitive(dialog->resume_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
270 gtk_widget_set_sensitive(dialog->stop_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
271
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
272 gtk_widget_show(dialog->stop_button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
273 gtk_widget_hide(dialog->remove_button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
274
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
275 return;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
276 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
277
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
278 if (dialog->selected_xfer != xfer)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
279 return;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
280
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
281 if (gaim_xfer_is_completed(xfer)) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
282 gtk_widget_hide(dialog->stop_button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
283 gtk_widget_show(dialog->remove_button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
284
8366
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
285 #ifdef _WIN32 /* Only supported in Win32 right now */
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
286 if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) {
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
287 gtk_widget_set_sensitive(dialog->open_button, TRUE);
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
288 } else {
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
289 gtk_widget_set_sensitive(dialog->open_button, FALSE);
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
290 }
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
291 #endif
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
292 gtk_widget_set_sensitive(dialog->pause_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
293 gtk_widget_set_sensitive(dialog->resume_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
294
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
295 gtk_widget_set_sensitive(dialog->remove_button, TRUE);
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
296 } else if (gaim_xfer_is_canceled(xfer)) {
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
297 gtk_widget_hide(dialog->stop_button);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
298 gtk_widget_show(dialog->remove_button);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
299
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
300 gtk_widget_set_sensitive(dialog->open_button, FALSE);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
301 gtk_widget_set_sensitive(dialog->pause_button, FALSE);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
302 gtk_widget_set_sensitive(dialog->resume_button, FALSE);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
303
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
304 gtk_widget_set_sensitive(dialog->remove_button, TRUE);
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
305 } else {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
306 gtk_widget_show(dialog->stop_button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
307 gtk_widget_hide(dialog->remove_button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
308
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
309 gtk_widget_set_sensitive(dialog->open_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
310
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
311 /* TODO: If the transfer can pause, blah blah */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
312 gtk_widget_set_sensitive(dialog->pause_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
313 gtk_widget_set_sensitive(dialog->resume_button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
314 gtk_widget_set_sensitive(dialog->stop_button, TRUE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
315 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
316 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
317
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
318 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
319 ensure_row_selected(GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
320 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
321 GtkTreeIter iter;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
322 GtkTreeSelection *selection;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
323
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
324 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->tree));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
325
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
326 if (gtk_tree_selection_get_selected(selection, NULL, &iter))
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
327 return;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
328
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
329 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(dialog->model), &iter))
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
330 gtk_tree_selection_select_iter(selection, &iter);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
331 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
332
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
333 /**************************************************************************
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
334 * Callbacks
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
335 **************************************************************************/
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
336 static gint
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
337 delete_win_cb(GtkWidget *w, GdkEventAny *e, gpointer d)
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
338 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
339 GaimGtkXferDialog *dialog;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
340
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
341 dialog = (GaimGtkXferDialog *)d;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
342
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
343 gaim_gtkxfer_dialog_hide(dialog);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
344
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
345 return TRUE;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
346 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
347
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
348 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
349 toggle_keep_open_cb(GtkWidget *w, GaimGtkXferDialog *dialog)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
350 {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
351 dialog->keep_open = !dialog->keep_open;
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
352 gaim_prefs_set_bool("/gaim/gtk/filetransfer/keep_open",
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
353 dialog->keep_open);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
354 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
355
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
356 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
357 toggle_clear_finished_cb(GtkWidget *w, GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
358 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
359 dialog->auto_clear = !dialog->auto_clear;
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
360 gaim_prefs_set_bool("/gaim/gtk/filetransfer/clear_finished",
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
361 dialog->auto_clear);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
362 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
363
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
364 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
365 selection_changed_cb(GtkTreeSelection *selection, GaimGtkXferDialog *dialog)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
366 {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
367 GtkTreeIter iter;
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
368 GaimXfer *xfer = NULL;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
369
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
370 if (gtk_tree_selection_get_selected(selection, NULL, &iter)) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
371 GValue val = {0, };
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
372
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
373 gtk_widget_set_sensitive(dialog->disclosure, TRUE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
374
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
375 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
376 &iter, COLUMN_DATA, &val);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
377
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
378 xfer = g_value_get_pointer(&val);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
379
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
380 update_detailed_info(dialog, xfer);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
381
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
382 dialog->selected_xfer = xfer;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
383 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
384 else {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
385 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->disclosure),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
386 FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
387
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
388 gtk_widget_set_sensitive(dialog->disclosure, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
389
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
390 dialog->selected_xfer = NULL;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
391 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
392
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
393 update_buttons(dialog, xfer);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
394 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
395
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
396 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
397 open_button_cb(GtkButton *button, GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
398 {
8366
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
399 #ifdef _WIN32 /* Only supported in Win32 right now */
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
400 int code = (int)ShellExecute(NULL, NULL,
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
401 gaim_xfer_get_local_filename(dialog->selected_xfer),
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
402 NULL, NULL, SW_SHOW);
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
403 if (code == SE_ERR_ASSOCINCOMPLETE || code == SE_ERR_NOASSOC)
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
404 {
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
405 gaim_notify_error(NULL, NULL,
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
406 _("There is no application configured to open this type of file."), NULL);
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
407 }
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
408 else if (code < 32)
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
409 {
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
410 gaim_notify_error(NULL, NULL,
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
411 _("An error occurred while opening the file."), NULL);
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
412 gaim_debug_warning("ft", "filename: %s; code: %d\n", gaim_xfer_get_local_filename(dialog->selected_xfer), code);
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
413 }
5956297c6bcc [gaim-migrate @ 9091]
Christian Hammond <chipx86@chipx86.com>
parents: 8351
diff changeset
414 #endif
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
415 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
416
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
417 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
418 pause_button_cb(GtkButton *button, GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
419 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
420 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
421
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
422 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
423 resume_button_cb(GtkButton *button, GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
424 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
425 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
426
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
427 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
428 remove_button_cb(GtkButton *button, GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
429 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
430 gaim_gtkxfer_dialog_remove_xfer(dialog, dialog->selected_xfer);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
431 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
432
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
433 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
434 stop_button_cb(GtkButton *button, GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
435 {
4675
3145c5c45877 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4661
diff changeset
436 gaim_xfer_cancel_local(dialog->selected_xfer);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
437 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
438
5608
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
439 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
440 close_button_cb(GtkButton *button, GaimGtkXferDialog *dialog)
5608
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
441 {
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
442 gaim_gtkxfer_dialog_hide(dialog);
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
443 }
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
444
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
445 /**************************************************************************
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
446 * Dialog Building Functions
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
447 **************************************************************************/
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
448 static GtkWidget *
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
449 setup_tree(GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
450 {
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
451 GtkWidget *sw;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
452 GtkWidget *tree;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
453 GtkListStore *model;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
454 GtkCellRenderer *renderer;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
455 GtkTreeViewColumn *column;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
456 GtkTreeSelection *selection;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
457
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
458 /* Create the scrolled window. */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
459 sw = gtk_scrolled_window_new(0, 0);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
460 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
461 GTK_SHADOW_IN);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
462 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
463 GTK_POLICY_AUTOMATIC,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
464 GTK_POLICY_ALWAYS);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
465 gtk_widget_show(sw);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
466
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
467 /* Build the tree model */
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
468 /* Transfer type, Progress Bar, Filename, Size, Remaining */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
469 model = gtk_list_store_new(NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_DOUBLE,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
470 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
471 G_TYPE_POINTER);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
472 dialog->model = model;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
473
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
474 /* Create the treeview */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
475 dialog->tree = tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
476 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
477 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
478 /* gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
479
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
480 gtk_widget_show(tree);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
481
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
482 g_signal_connect(G_OBJECT(selection), "changed",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
483 G_CALLBACK(selection_changed_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
484
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
485 g_object_unref(G_OBJECT(model));
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
486
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
487
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
488 /* Columns */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
489
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
490 /* Transfer Type column */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
491 renderer = gtk_cell_renderer_pixbuf_new();
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
492 column = gtk_tree_view_column_new_with_attributes(NULL, renderer,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
493 "pixbuf", COLUMN_STATUS, NULL);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
494 gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column),
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
495 GTK_TREE_VIEW_COLUMN_FIXED);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
496 gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(column), 25);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
497 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
498 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
499
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
500 /* Progress bar column */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
501 renderer = gtk_cell_renderer_progress_new();
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
502 column = gtk_tree_view_column_new_with_attributes(_("Progress"), renderer,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
503 "percentage", COLUMN_PROGRESS, NULL);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
504 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
505 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
506
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
507 /* Filename column */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
508 renderer = gtk_cell_renderer_text_new();
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
509 column = gtk_tree_view_column_new_with_attributes(_("Filename"), renderer,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
510 "text", COLUMN_FILENAME, NULL);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
511 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
512 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
513
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
514 /* File Size column */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
515 renderer = gtk_cell_renderer_text_new();
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
516 column = gtk_tree_view_column_new_with_attributes(_("Size"), renderer,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
517 "text", COLUMN_SIZE, NULL);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
518 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
519 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
520
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
521 /* Bytes Remaining column */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
522 renderer = gtk_cell_renderer_text_new();
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
523 column = gtk_tree_view_column_new_with_attributes(_("Remaining"),
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
524 renderer, "text", COLUMN_REMAINING, NULL);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
525 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
526 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
527
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
528 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(tree));
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
529
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
530 gtk_container_add(GTK_CONTAINER(sw), tree);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
531 gtk_widget_show(tree);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
532
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
533 return sw;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
534 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
535
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
536 static GtkWidget *
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
537 make_info_table(GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
538 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
539 GtkWidget *table;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
540 GtkWidget *label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
541 GtkWidget *sep;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
542 int i;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
543
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
544 struct
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
545 {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
546 GtkWidget **desc_label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
547 GtkWidget **val_label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
548 const char *desc;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
549
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
550 } labels[] =
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
551 {
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
552 { &dialog->local_user_desc_label, &dialog->local_user_label, NULL },
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
553 { &dialog->remote_user_desc_label, &dialog->remote_user_label, NULL },
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
554 { &label, &dialog->protocol_label, _("Protocol:") },
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
555 { &label, &dialog->filename_label, _("Filename:") },
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
556 { &label, &dialog->status_label, _("Status:") },
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
557 { &label, &dialog->speed_label, _("Speed:") },
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
558 { &label, &dialog->time_elapsed_label, _("Time Elapsed:") },
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
559 { &label, &dialog->time_remaining_label, _("Time Remaining:") }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
560 };
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
561
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
562 /* Setup the initial table */
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
563 dialog->table = table = gtk_table_new(10, 2, FALSE);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
564 gtk_table_set_row_spacings(GTK_TABLE(table), 6);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
565 gtk_table_set_col_spacings(GTK_TABLE(table), 6);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
566
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
567 /* Setup the labels */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
568 for (i = 0; i < sizeof(labels) / sizeof(*labels); i++) {
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
569 GtkWidget *label;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
570 char buf[256];
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
571
4894
eea963dcd1ed [gaim-migrate @ 5226]
Luke Schierer <lschiere@pidgin.im>
parents: 4719
diff changeset
572 g_snprintf(buf, sizeof(buf), "<b>%s</b>",
eea963dcd1ed [gaim-migrate @ 5226]
Luke Schierer <lschiere@pidgin.im>
parents: 4719
diff changeset
573 labels[i].desc != NULL ? labels[i].desc : "");
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
574
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
575 *labels[i].desc_label = label = gtk_label_new(NULL);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
576 gtk_label_set_markup(GTK_LABEL(label), buf);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
577 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
578 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
579 gtk_table_attach(GTK_TABLE(table), label, 0, 1, i, i + 1,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
580 GTK_FILL, 0, 0, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
581 gtk_widget_show(label);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
582
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
583 *labels[i].val_label = label = gtk_label_new(NULL);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
584 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
585 gtk_table_attach(GTK_TABLE(table), label, 1, 2, i, i + 1,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
586 GTK_FILL | GTK_EXPAND, 0, 0, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
587 gtk_widget_show(label);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
588 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
589
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
590 /* Setup the progress bar */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
591 dialog->progress = gtk_progress_bar_new();
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
592 gtk_table_attach(GTK_TABLE(table), dialog->progress, 0, 2, 8, 9,
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
593 GTK_FILL, GTK_FILL, 0, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
594 gtk_widget_show(dialog->progress);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
595
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
596 sep = gtk_hseparator_new();
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
597 gtk_table_attach(GTK_TABLE(table), sep, 0, 2, 9, 10,
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
598 GTK_FILL, GTK_FILL, 0, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
599 gtk_widget_show(sep);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
600
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
601 return table;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
602 }
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
603
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
604 GaimGtkXferDialog *
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
605 gaim_gtkxfer_dialog_new(void)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
606 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
607 GaimGtkXferDialog *dialog;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
608 GtkWidget *window;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
609 GtkWidget *vbox1, *vbox2;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
610 GtkWidget *bbox;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
611 GtkWidget *sw;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
612 GtkWidget *sep;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
613 GtkWidget *button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
614 GtkWidget *disclosure;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
615 GtkWidget *table;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
616 GtkWidget *checkbox;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
617
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
618 dialog = g_new0(GaimGtkXferDialog, 1);
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
619 dialog->keep_open =
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
620 gaim_prefs_get_bool("/gaim/gtk/filetransfer/keep_open");
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
621 dialog->auto_clear =
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
622 gaim_prefs_get_bool("/gaim/gtk/filetransfer/clear_finished");
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
623
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
624 /* Create the window. */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
625 dialog->window = window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
626 gtk_window_set_role(GTK_WINDOW(window), "file transfer");
4570
67a373071933 [gaim-migrate @ 4851]
Christian Hammond <chipx86@chipx86.com>
parents: 4566
diff changeset
627 gtk_window_set_title(GTK_WINDOW(window), _("File Transfers"));
4719
da5dc9bc840a [gaim-migrate @ 5031]
Sean Egan <seanegan@gmail.com>
parents: 4698
diff changeset
628 gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
4570
67a373071933 [gaim-migrate @ 4851]
Christian Hammond <chipx86@chipx86.com>
parents: 4566
diff changeset
629 gtk_container_set_border_width(GTK_CONTAINER(window), 12);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
630
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
631 g_signal_connect(G_OBJECT(window), "delete_event",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
632 G_CALLBACK(delete_win_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
633
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
634 /* Create the parent vbox for everything. */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
635 vbox1 = gtk_vbox_new(FALSE, 12);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
636 gtk_container_add(GTK_CONTAINER(window), vbox1);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
637 gtk_widget_show(vbox1);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
638
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
639 /* Create the main vbox for top half of the window. */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
640 vbox2 = gtk_vbox_new(FALSE, 6);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
641 gtk_box_pack_start(GTK_BOX(vbox1), vbox2, TRUE, TRUE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
642 gtk_widget_show(vbox2);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
643
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
644 /* Setup the listbox */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
645 sw = setup_tree(dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
646 gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0);
4719
da5dc9bc840a [gaim-migrate @ 5031]
Sean Egan <seanegan@gmail.com>
parents: 4698
diff changeset
647 gtk_widget_set_size_request(sw,-1, 140);
7272
02f697df677b [gaim-migrate @ 7849]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
648
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
649 /* "Keep the dialog open" */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
650 checkbox = gtk_check_button_new_with_mnemonic(
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
651 _("_Keep the dialog open"));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
652 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
653 dialog->keep_open);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
654 g_signal_connect(G_OBJECT(checkbox), "toggled",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
655 G_CALLBACK(toggle_keep_open_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
656 gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
657 gtk_widget_show(checkbox);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
658
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
659 /* "Clear finished transfers" */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
660 checkbox = gtk_check_button_new_with_mnemonic(
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
661 _("_Clear finished transfers"));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
662 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
663 dialog->auto_clear);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
664 g_signal_connect(G_OBJECT(checkbox), "toggled",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
665 G_CALLBACK(toggle_clear_finished_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
666 gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
667 gtk_widget_show(checkbox);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
668
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
669 /* "Download Details" arrow */
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
670 disclosure = gaim_disclosure_new(_("Show transfer details"),
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
671 _("Hide transfer details"));
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
672 dialog->disclosure = disclosure;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
673 gtk_box_pack_start(GTK_BOX(vbox2), disclosure, FALSE, FALSE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
674 gtk_widget_show(disclosure);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
675
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
676 gtk_widget_set_sensitive(disclosure, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
677
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
678 #if 0
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
679 g_signal_connect(G_OBJECT(disclosure), "toggled",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
680 G_CALLBACK(toggle_details_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
681 #endif
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
682
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
683 /* Separator */
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
684 sep = gtk_hseparator_new();
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
685 gtk_box_pack_start(GTK_BOX(vbox2), sep, FALSE, FALSE, 0);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
686 gtk_widget_show(sep);
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
687
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
688 /* The table of information. */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
689 table = make_info_table(dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
690 gtk_box_pack_start(GTK_BOX(vbox2), table, TRUE, TRUE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
691
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
692 /* Setup the disclosure for the table. */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
693 gaim_disclosure_set_container(GAIM_DISCLOSURE(disclosure), table);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
694
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
695 /* Now the button box for the buttons */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
696 bbox = gtk_hbutton_box_new();
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
697 gtk_box_set_spacing(GTK_BOX(bbox), 6);
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
698 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
699 gtk_box_pack_end(GTK_BOX(vbox1), bbox, FALSE, TRUE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
700 gtk_widget_show(bbox);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
701
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
702 /* Open button */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
703 button = gtk_button_new_from_stock(GTK_STOCK_OPEN);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
704 gtk_widget_set_sensitive(button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
705 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
706 gtk_widget_show(button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
707 dialog->open_button = button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
708
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
709 g_signal_connect(G_OBJECT(button), "clicked",
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
710 G_CALLBACK(open_button_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
711
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
712 /* Pause button */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
713 button = gtk_button_new_with_mnemonic(_("_Pause"));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
714 gtk_widget_set_sensitive(button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
715 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
716 gtk_widget_show(button);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
717 dialog->pause_button = button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
718
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
719 g_signal_connect(G_OBJECT(button), "clicked",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
720 G_CALLBACK(pause_button_cb), dialog);
7272
02f697df677b [gaim-migrate @ 7849]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
721
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
722 /* Resume button */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
723 button = gtk_button_new_with_mnemonic(_("_Resume"));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
724 gtk_widget_set_sensitive(button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
725 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
726 gtk_widget_show(button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
727 dialog->resume_button = button;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
728
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
729 g_signal_connect(G_OBJECT(button), "clicked",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
730 G_CALLBACK(resume_button_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
731
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
732 /* Remove button */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
733 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
734 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
735 gtk_widget_hide(button);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
736 dialog->remove_button = button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
737
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
738 g_signal_connect(G_OBJECT(button), "clicked",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
739 G_CALLBACK(remove_button_cb), dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
740
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
741 /* Stop button */
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
742 button = gtk_button_new_from_stock(GTK_STOCK_STOP);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
743 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
744 gtk_widget_show(button);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
745 gtk_widget_set_sensitive(button, FALSE);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
746 dialog->stop_button = button;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
747
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
748 g_signal_connect(G_OBJECT(button), "clicked",
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
749 G_CALLBACK(stop_button_cb), dialog);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
750
5608
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
751 /* Close button */
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
752 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
753 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
754 gtk_widget_show(button);
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
755 dialog->close_button = button;
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
756
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
757 g_signal_connect(G_OBJECT(button), "clicked",
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
758 G_CALLBACK(close_button_cb), dialog);
bb8f0a149831 [gaim-migrate @ 6012]
Luke Schierer <lschiere@pidgin.im>
parents: 5498
diff changeset
759
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
760 return dialog;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
761 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
762
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
763 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
764 gaim_gtkxfer_dialog_destroy(GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
765 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
766 g_return_if_fail(dialog != NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
767
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
768 gtk_widget_destroy(dialog->window);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
769
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
770 g_free(dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
771 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
772
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
773 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
774 gaim_gtkxfer_dialog_show(GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
775 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
776 g_return_if_fail(dialog != NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
777
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
778 gtk_widget_show(dialog->window);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
779 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
780
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
781 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
782 gaim_gtkxfer_dialog_hide(GaimGtkXferDialog *dialog)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
783 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
784 g_return_if_fail(dialog != NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
785
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
786 gtk_widget_hide(dialog->window);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
787 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
788
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
789 void
4698
aa2ceea841b4 [gaim-migrate @ 5009]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
790 gaim_show_xfer_dialog()
aa2ceea841b4 [gaim-migrate @ 5009]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
791 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
792 GaimGtkXferDialog *dialog;
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
793
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
794 dialog = gaim_get_gtkxfer_dialog();
4698
aa2ceea841b4 [gaim-migrate @ 5009]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
795
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
796 if (dialog == NULL) {
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
797 dialog = gaim_gtkxfer_dialog_new();
4698
aa2ceea841b4 [gaim-migrate @ 5009]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
798
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
799 gaim_set_gtkxfer_dialog(dialog);
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
800 }
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
801
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
802 gaim_gtkxfer_dialog_show(dialog);
4698
aa2ceea841b4 [gaim-migrate @ 5009]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
803 }
aa2ceea841b4 [gaim-migrate @ 5009]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
804
aa2ceea841b4 [gaim-migrate @ 5009]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
805 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
806 gaim_gtkxfer_dialog_add_xfer(GaimGtkXferDialog *dialog, GaimXfer *xfer)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
807 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
808 GaimGtkXferUiData *data;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
809 GaimXferType type;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
810 GdkPixbuf *pixbuf;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
811 char *size_str, *remaining_str;
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
812 char *lfilename;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
813
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
814 g_return_if_fail(dialog != NULL);
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
815 g_return_if_fail(xfer != NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
816
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
817 gaim_xfer_ref(xfer);
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
818
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
819 data = GAIM_GTKXFER(xfer);
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
820 data->in_list = TRUE;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
821
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
822 gaim_gtkxfer_dialog_show(dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
823
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
824 data->start_time = time(NULL);
9017
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
825 data->end_time = -1;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
826
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
827 type = gaim_xfer_get_type(xfer);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
828
7107
9220c7490cd1 [gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
829 size_str = gaim_str_size_to_units(gaim_xfer_get_size(xfer));
9220c7490cd1 [gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
830 remaining_str = gaim_str_size_to_units(gaim_xfer_get_bytes_remaining(xfer));
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
831
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
832 pixbuf = gtk_widget_render_icon(dialog->window,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
833 (type == GAIM_XFER_RECEIVE
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
834 ? GAIM_STOCK_DOWNLOAD
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
835 : GAIM_STOCK_UPLOAD),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
836 GTK_ICON_SIZE_MENU, NULL);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
837
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
838 gtk_list_store_append(dialog->model, &data->iter);
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
839 lfilename = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
840 gtk_list_store_set(dialog->model, &data->iter,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
841 COLUMN_STATUS, pixbuf,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
842 COLUMN_PROGRESS, 0.0,
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
843 COLUMN_FILENAME, (type == GAIM_XFER_RECEIVE)
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
844 ? gaim_xfer_get_filename(xfer)
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
845 : lfilename,
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
846 COLUMN_SIZE, size_str,
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
847 COLUMN_REMAINING, _("Waiting for transfer to begin"),
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
848 COLUMN_DATA, xfer,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
849 -1);
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
850 g_free(lfilename);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
851
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
852 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(dialog->tree));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
853
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
854 g_object_unref(pixbuf);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
855
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
856 g_free(size_str);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
857 g_free(remaining_str);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
858
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
859 dialog->num_transfers++;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
860
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
861 ensure_row_selected(dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
862 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
863
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
864 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
865 gaim_gtkxfer_dialog_remove_xfer(GaimGtkXferDialog *dialog,
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
866 GaimXfer *xfer)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
867 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
868 GaimGtkXferUiData *data;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
869
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
870 g_return_if_fail(dialog != NULL);
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
871 g_return_if_fail(xfer != NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
872
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
873 data = GAIM_GTKXFER(xfer);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
874
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
875 if (data == NULL)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
876 return;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
877
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
878 if (!data->in_list)
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
879 return;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
880
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
881 data->in_list = FALSE;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
882
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
883 gtk_list_store_remove(GTK_LIST_STORE(dialog->model), &data->iter);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
884
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
885 dialog->num_transfers--;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
886
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
887 if (dialog->num_transfers == 0 && !dialog->keep_open)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
888 gaim_gtkxfer_dialog_hide(dialog);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
889 else
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
890 ensure_row_selected(dialog);
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
891
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
892 gaim_xfer_unref(xfer);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
893 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
894
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
895 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
896 gaim_gtkxfer_dialog_cancel_xfer(GaimGtkXferDialog *dialog,
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
897 GaimXfer *xfer)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
898 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
899 GaimGtkXferUiData *data;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
900 GdkPixbuf *pixbuf;
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
901 gchar *status;
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
902
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
903 g_return_if_fail(dialog != NULL);
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
904 g_return_if_fail(xfer != NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
905
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
906 data = GAIM_GTKXFER(xfer);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
907
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
908 if (data == NULL)
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
909 return;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
910
8282
ab35a0bec13a [gaim-migrate @ 9006]
Luke Schierer <lschiere@pidgin.im>
parents: 8046
diff changeset
911 if (!data->in_list)
ab35a0bec13a [gaim-migrate @ 9006]
Luke Schierer <lschiere@pidgin.im>
parents: 8046
diff changeset
912 return;
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
913
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
914 if ((gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_LOCAL) && (dialog->auto_clear)) {
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
915 gaim_gtkxfer_dialog_remove_xfer(dialog, xfer);
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
916 return;
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
917 }
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
918
4573
82a4a5cd9a61 [gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents: 4570
diff changeset
919 data = GAIM_GTKXFER(xfer);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
920
9017
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
921 update_detailed_info(dialog, xfer);
8db7732df1fd [gaim-migrate @ 9793]
Luke Schierer <lschiere@pidgin.im>
parents: 8585
diff changeset
922
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
923 pixbuf = gtk_widget_render_icon(dialog->window,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
924 GAIM_STOCK_FILE_CANCELED,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
925 GTK_ICON_SIZE_MENU, NULL);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
926
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
927 if (gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_LOCAL)
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
928 status = _("Canceled");
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
929 else
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
930 status = _("Failed");
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
931
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
932 gtk_list_store_set(dialog->model, &data->iter,
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
933 COLUMN_STATUS, pixbuf,
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
934 COLUMN_REMAINING, status,
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
935 -1);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
936
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
937 g_object_unref(pixbuf);
7738
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
938
b14442b31a9b [gaim-migrate @ 8383]
Sean Egan <seanegan@gmail.com>
parents: 7272
diff changeset
939 update_buttons(dialog, xfer);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
940 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
941
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
942 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
943 gaim_gtkxfer_dialog_update_xfer(GaimGtkXferDialog *dialog,
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
944 GaimXfer *xfer)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
945 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
946 GaimGtkXferUiData *data;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
947 char *size_str, *remaining_str;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
948 GtkTreeSelection *selection;
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
949
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
950 g_return_if_fail(dialog != NULL);
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
951 g_return_if_fail(xfer != NULL);
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
952
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
953 if ((data = GAIM_GTKXFER(xfer)) == NULL)
4656
e557a10a9541 [gaim-migrate @ 4967]
Mark Doliner <mark@kingant.net>
parents: 4646
diff changeset
954 return;
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
955
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
956 if (data->in_list == FALSE)
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
957 return;
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
958
7107
9220c7490cd1 [gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
959 size_str = gaim_str_size_to_units(gaim_xfer_get_size(xfer));
9220c7490cd1 [gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
960 remaining_str = gaim_str_size_to_units(gaim_xfer_get_bytes_remaining(xfer));
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
961
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
962 gtk_list_store_set(xfer_dialog->model, &data->iter,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
963 COLUMN_PROGRESS, gaim_xfer_get_progress(xfer),
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
964 COLUMN_SIZE, size_str,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
965 COLUMN_REMAINING, remaining_str,
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
966 -1);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
967
4607
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
968 if (gaim_xfer_is_completed(xfer)) {
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
969 GdkPixbuf *pixbuf;
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
970
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
971 pixbuf = gtk_widget_render_icon(dialog->window,
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
972 GAIM_STOCK_FILE_DONE,
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
973 GTK_ICON_SIZE_MENU, NULL);
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
974
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
975 gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter,
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
976 COLUMN_STATUS, pixbuf,
8351
ffa642240fc1 [gaim-migrate @ 9075]
Nathan Walp <nwalp@pidgin.im>
parents: 8282
diff changeset
977 COLUMN_REMAINING, _("Finished"),
4607
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
978 -1);
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
979
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
980 g_object_unref(pixbuf);
9785
2356d2153c94 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9606
diff changeset
981 }
4607
8742023570be [gaim-migrate @ 4895]
Mark Doliner <mark@kingant.net>
parents: 4604
diff changeset
982
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
983 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(xfer_dialog->tree));
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
984
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
985 if (xfer == dialog->selected_xfer)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
986 update_detailed_info(xfer_dialog, xfer);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
987
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
988 if (gaim_xfer_is_completed(xfer) && dialog->auto_clear)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
989 gaim_gtkxfer_dialog_remove_xfer(dialog, xfer);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
990 else
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
991 update_buttons(dialog, xfer);
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
992 }
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
993
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
994 /**************************************************************************
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
995 * File Transfer UI Ops
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
996 **************************************************************************/
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
997 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
998 gaim_gtkxfer_new_xfer(GaimXfer *xfer)
5169
71927464a1db [gaim-migrate @ 5533]
Mark Doliner <mark@kingant.net>
parents: 5131
diff changeset
999 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1000 GaimGtkXferUiData *data;
5169
71927464a1db [gaim-migrate @ 5533]
Mark Doliner <mark@kingant.net>
parents: 5131
diff changeset
1001
71927464a1db [gaim-migrate @ 5533]
Mark Doliner <mark@kingant.net>
parents: 5131
diff changeset
1002 /* This is where we're setting xfer->ui_data for the first time. */
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1003 data = g_new0(GaimGtkXferUiData, 1);
5169
71927464a1db [gaim-migrate @ 5533]
Mark Doliner <mark@kingant.net>
parents: 5131
diff changeset
1004 xfer->ui_data = data;
71927464a1db [gaim-migrate @ 5533]
Mark Doliner <mark@kingant.net>
parents: 5131
diff changeset
1005 }
71927464a1db [gaim-migrate @ 5533]
Mark Doliner <mark@kingant.net>
parents: 5131
diff changeset
1006
71927464a1db [gaim-migrate @ 5533]
Mark Doliner <mark@kingant.net>
parents: 5131
diff changeset
1007 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1008 gaim_gtkxfer_destroy(GaimXfer *xfer)
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1009 {
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1010 GaimGtkXferUiData *data;
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1011
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1012 data = GAIM_GTKXFER(xfer);
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1013 if (data) {
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1014 if (data->name)
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1015 g_free(data->name);
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1016 g_free(data);
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1017 xfer->ui_data = NULL;
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1018 }
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1019 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1020
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1021 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1022 gaim_gtkxfer_add_xfer(GaimXfer *xfer)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1023 {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1024 if (xfer_dialog == NULL)
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1025 xfer_dialog = gaim_gtkxfer_dialog_new();
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1026
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1027 gaim_gtkxfer_dialog_add_xfer(xfer_dialog, xfer);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1028 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1029
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1030 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1031 gaim_gtkxfer_update_progress(GaimXfer *xfer, double percent)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1032 {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1033 gaim_gtkxfer_dialog_update_xfer(xfer_dialog, xfer);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1034 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1035
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1036 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1037 gaim_gtkxfer_cancel_local(GaimXfer *xfer)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1038 {
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1039 if (xfer_dialog)
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1040 gaim_gtkxfer_dialog_cancel_xfer(xfer_dialog, xfer);
4675
3145c5c45877 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4661
diff changeset
1041 }
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1042
4675
3145c5c45877 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4661
diff changeset
1043 static void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1044 gaim_gtkxfer_cancel_remote(GaimXfer *xfer)
4675
3145c5c45877 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4661
diff changeset
1045 {
7805
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1046 if (xfer_dialog)
5f0bb52c0609 [gaim-migrate @ 8452]
Mark Doliner <mark@kingant.net>
parents: 7738
diff changeset
1047 gaim_gtkxfer_dialog_cancel_xfer(xfer_dialog, xfer);
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1048 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1049
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1050 static GaimXferUiOps ops =
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1051 {
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1052 gaim_gtkxfer_new_xfer,
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1053 gaim_gtkxfer_destroy,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1054 gaim_gtkxfer_add_xfer,
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1055 gaim_gtkxfer_update_progress,
4675
3145c5c45877 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4661
diff changeset
1056 gaim_gtkxfer_cancel_local,
3145c5c45877 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4661
diff changeset
1057 gaim_gtkxfer_cancel_remote
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1058 };
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1059
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1060 /**************************************************************************
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1061 * GTK+ File Transfer API
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1062 **************************************************************************/
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1063 void
6267
36b80ce02a51 [gaim-migrate @ 6764]
Christian Hammond <chipx86@chipx86.com>
parents: 6240
diff changeset
1064 gaim_gtk_xfers_init(void)
5974
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
1065 {
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
1066 gaim_prefs_add_none("/gaim/gtk/filetransfer");
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
1067 gaim_prefs_add_bool("/gaim/gtk/filetransfer/clear_finished", TRUE);
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
1068 gaim_prefs_add_bool("/gaim/gtk/filetransfer/keep_open", FALSE);
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
1069 }
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
1070
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5966
diff changeset
1071 void
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1072 gaim_set_gtkxfer_dialog(GaimGtkXferDialog *dialog)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1073 {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1074 xfer_dialog = dialog;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1075 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1076
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1077 GaimGtkXferDialog *
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1078 gaim_get_gtkxfer_dialog(void)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1079 {
4553
d03fcb3f4be2 [gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents: 4541
diff changeset
1080 return xfer_dialog;
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1081 }
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1082
6240
ac191233b816 [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5974
diff changeset
1083 GaimXferUiOps *
7035
feb3d21a7794 [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1084 gaim_gtk_xfers_get_ui_ops(void)
4514
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1085 {
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1086 return &ops;
7521e29658bc [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1087 }