gtk/gtkaccount.c

Sat, 18 Nov 2006 05:30:57 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Sat, 18 Nov 2006 05:30:57 +0000
changeset 15057
909e807e3070
parent 15054
b98b688cf45e
child 15080
bb09a291a99b
permissions
-rw-r--r--

[gaim-migrate @ 17774]
The data for "plugin_action" is set with a destructor function. So freeing it
twice would cause a crash. The reason it's not crashing is, the children of the
container are not the menuitems, but GtkAccelLabel (or some such thing). So all
we are doing is freeing null. Also, when the menu is destroyed, all the
menuitems are also destroyed anyway. So get rid of the unrequired loop.

Also, isdigit expects a character, not a string.

5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
7820
06fc9f66d2cb [gaim-migrate @ 8472]
Mark Doliner <markdoliner@pidgin.im>
parents: 7810
diff changeset
2 * @file gtkaccount.c GTK+ Account Editor UI
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 * @ingroup gtkui
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
9 * source distribution.
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
10 *
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
25
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9710
diff changeset
26 #include "internal.h"
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9710
diff changeset
27 #include "gtkgaim.h"
5717
2f3a377de638 [gaim-migrate @ 6138]
Nathan Walp <nwalp@pidgin.im>
parents: 5715
diff changeset
28
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 #include "account.h"
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
30 #include "accountopt.h"
6229
1704facbe9a5 [gaim-migrate @ 6722]
Mark Doliner <markdoliner@pidgin.im>
parents: 6179
diff changeset
31 #include "core.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
32 #include "debug.h"
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
33 #include "notify.h"
5852
33a438531278 [gaim-migrate @ 6283]
Christian Hammond <chipx86@chipx86.com>
parents: 5851
diff changeset
34 #include "plugin.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
35 #include "prefs.h"
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
36 #include "prpl.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
37 #include "request.h"
11724
d3f71bc34b4f [gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents: 11654
diff changeset
38 #include "savedstatuses.h"
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
39 #include "signals.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
40 #include "util.h"
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
41
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
42 #include "gtkaccount.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
43 #include "gtkblist.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9705
diff changeset
44 #include "gtkdialogs.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
45 #include "gtkutils.h"
10649
cd536d7aff51 [gaim-migrate @ 12167]
Sean Egan <seanegan@pidgin.im>
parents: 10646
diff changeset
46 #include "gtkstatusbox.h"
14258
d6e21dff9f0d [gaim-migrate @ 16868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14253
diff changeset
47 #include "gaimstock.h"
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
48
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
49 enum
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
50 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
51 COLUMN_ICON,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
52 COLUMN_SCREENNAME,
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
53 COLUMN_ENABLED,
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
54 COLUMN_PROTOCOL,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
55 COLUMN_DATA,
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
56 COLUMN_PULSE_DATA,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
57 NUM_COLUMNS
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
58 };
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60 typedef struct
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61 {
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
62 GaimAccount *account;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
63 char *username;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
64 char *alias;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
65
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
66 } GaimGtkAccountAddUserData;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
67
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
68 typedef struct
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
69 {
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 GtkWidget *window;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
71 GtkWidget *treeview;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
73 GtkWidget *modify_button;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
74 GtkWidget *delete_button;
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
75 GtkWidget *notebook;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
76
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
77 GtkListStore *model;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
78 GtkTreeIter drag_iter;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
79
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
80 GtkTreeViewColumn *screenname_col;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
81
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
82 } AccountsWindow;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
84 typedef struct
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
85 {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
86 GaimGtkAccountDialogType type;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
87
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
88 GaimAccount *account;
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
89 char *protocol_id;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
90 GaimPlugin *plugin;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
91 GaimPluginProtocolInfo *prpl_info;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
92
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
93 GaimProxyType new_proxy_type;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
94
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
95 GList *user_split_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
96 GList *protocol_opt_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
97
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
98 GtkSizeGroup *sg;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
99 GtkWidget *window;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
100
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
101 GtkWidget *top_vbox;
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
102 GtkWidget *bottom_vbox;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
103 GtkWidget *ok_button;
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
104 GtkWidget *register_button;
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
105
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
106 /* Login Options */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
107 GtkWidget *login_frame;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
108 GtkWidget *protocol_menu;
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
109 GtkWidget *password_box;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
110 GtkWidget *screenname_entry;
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
111 GtkWidget *password_entry;
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
112 GtkWidget *alias_entry;
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
113 GtkWidget *remember_pass_check;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
114
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
115 /* User Options */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
116 GtkWidget *user_frame;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
117 GtkWidget *new_mail_check;
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
118 GtkWidget *icon_hbox;
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
119 GtkWidget *icon_check;
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
120 GtkWidget *icon_entry;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
121 char *icon_path;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
122 GtkWidget *icon_filesel;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
123 GtkWidget *icon_preview;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
124 GtkWidget *icon_text;
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
125
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
126 /* Protocol Options */
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
127 GtkWidget *protocol_frame;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
128
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
129 /* Proxy Options */
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
130 GtkWidget *proxy_frame;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
131 GtkWidget *proxy_vbox;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
132 GtkWidget *proxy_dropdown;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
133 GtkWidget *proxy_host_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
134 GtkWidget *proxy_port_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
135 GtkWidget *proxy_user_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
136 GtkWidget *proxy_pass_entry;
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
137
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
138 } AccountPrefsDialog;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
139
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
140 typedef struct
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
141 {
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
142 GdkPixbuf *online_pixbuf;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
143 gboolean pulse_to_grey;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
144 float pulse_value;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
145 int timeout;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
146 GaimAccount *account;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
147 GtkTreeModel *model;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
148
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
149 } GaimGtkPulseData;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
150
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
151
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
152 static AccountsWindow *accounts_window = NULL;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
153 static GHashTable *account_pref_wins;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
154
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
155 static void add_account_to_liststore(GaimAccount *account, gpointer user_data);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
156 static void set_account(GtkListStore *store, GtkTreeIter *iter,
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
157 GaimAccount *account);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
158
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
159 /**************************************************************************
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
160 * Add/Modify Account dialog
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
161 **************************************************************************/
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
162 static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
163 static void add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
164 static void add_protocol_options(AccountPrefsDialog *dialog,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
165 GtkWidget *parent);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
166 static void add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
167
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
168 static GtkWidget *
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
169 add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
170 const char *text, GtkWidget *widget)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
171 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
172 GtkWidget *hbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
173 GtkWidget *label;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
174
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
175 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
176 gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 0);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
177 gtk_widget_show(hbox);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
178
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
179 label = gtk_label_new_with_mnemonic(text);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
180 gtk_size_group_add_widget(dialog->sg, label);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
181 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
182 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
183 gtk_widget_show(label);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
184
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
185 gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, GAIM_HIG_BORDER);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
186 gtk_widget_show(widget);
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8085
diff changeset
187 gaim_set_accessible_label (widget, label);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
188
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
189 return hbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
190 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
191
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
192 static void
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
193 set_dialog_icon(AccountPrefsDialog *dialog, gchar *new_icon_path)
11286
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
194 {
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
195 char *filename;
14248
caf7bdfc3e0f [gaim-migrate @ 16849]
Daniel Atallah <datallah@pidgin.im>
parents: 14235
diff changeset
196 GdkPixbuf *pixbuf = NULL;
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
197
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
198 g_free(dialog->icon_path);
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
199 dialog->icon_path = new_icon_path;
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
200
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
201 filename = gaim_buddy_icons_get_full_path(dialog->icon_path);
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
202 if (filename != NULL) {
14249
4b883c522193 [gaim-migrate @ 16850]
Daniel Atallah <datallah@pidgin.im>
parents: 14248
diff changeset
203 pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
204 g_free(filename);
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
205 }
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
206
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
207 if (pixbuf && dialog->prpl_info &&
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
208 (dialog->prpl_info->icon_spec.scale_rules & GAIM_ICON_SCALE_DISPLAY))
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
209 {
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
210 /* Scale the icon to something reasonable */
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
211 int width, height;
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
212 GdkPixbuf *scale;
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
213
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
214 gaim_gtk_buddy_icon_get_scale_size(pixbuf,
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
215 &dialog->prpl_info->icon_spec, &width, &height);
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
216 scale = gdk_pixbuf_scale_simple(pixbuf, width, height, GDK_INTERP_BILINEAR);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
217
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
218 g_object_unref(G_OBJECT(pixbuf));
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
219 pixbuf = scale;
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
220 }
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
221
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
222 if (pixbuf == NULL)
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
223 {
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
224 /* Show a placeholder icon */
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
225 gchar *filename;
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
226 filename = g_build_filename(DATADIR, "pixmaps",
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
227 "gaim", "insert-image.png", NULL);
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
228 pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
229 g_free(filename);
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
230 }
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
231
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
232 gtk_image_set_from_pixbuf(GTK_IMAGE(dialog->icon_entry), pixbuf);
14150
b9617d019b31 [gaim-migrate @ 16711]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
233 if (pixbuf != NULL)
b9617d019b31 [gaim-migrate @ 16711]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
234 g_object_unref(G_OBJECT(pixbuf));
11286
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
235 }
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
236
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
237 static void
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
238 set_account_protocol_cb(GtkWidget *item, const char *id,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
239 AccountPrefsDialog *dialog)
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
240 {
9304
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
241 GaimPlugin *new_plugin;
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
242
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
243 new_plugin = gaim_find_prpl(id);
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
244
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
245 if (new_plugin == dialog->plugin)
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
246 return;
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
247
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
248 dialog->plugin = new_plugin;
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
249
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
250 if (dialog->plugin != NULL)
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
251 {
5943
8a052155157a [gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents: 5900
diff changeset
252 dialog->prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(dialog->plugin);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
253
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
254 g_free(dialog->protocol_id);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
255 dialog->protocol_id = g_strdup(dialog->plugin->info->id);
5955
4f964635c095 [gaim-migrate @ 6399]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
256 }
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
257
9304
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
258 if (dialog->account != NULL)
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
259 gaim_account_clear_settings(dialog->account);
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
260
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
261 add_login_options(dialog, dialog->top_vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
262 add_user_options(dialog, dialog->top_vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
263 add_protocol_options(dialog, dialog->bottom_vbox);
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
264
11358
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
265 if (!dialog->prpl_info || !dialog->prpl_info->register_user) {
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
266 gtk_widget_hide(dialog->register_button);
11358
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
267 } else {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
268 if (dialog->prpl_info != NULL &&
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
269 (dialog->prpl_info->options & OPT_PROTO_REGISTER_NOSCREENNAME)) {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
270 gtk_widget_set_sensitive(dialog->register_button, TRUE);
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
271 } else {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
272 gtk_widget_set_sensitive(dialog->register_button, FALSE);
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
273 }
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
274 gtk_widget_show(dialog->register_button);
11358
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
275 }
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
276 }
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
277
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
278 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
279 screenname_changed_cb(GtkEntry *entry, AccountPrefsDialog *dialog)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
280 {
6732
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
281 if (dialog->ok_button)
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
282 gtk_widget_set_sensitive(dialog->ok_button,
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
283 *gtk_entry_get_text(entry) != '\0');
11358
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
284 if (dialog->register_button) {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
285 if (dialog->prpl_info != NULL && (dialog->prpl_info->options & OPT_PROTO_REGISTER_NOSCREENNAME))
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
286 gtk_widget_set_sensitive(dialog->register_button, TRUE);
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
287 else
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
288 gtk_widget_set_sensitive(dialog->register_button,
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
289 *gtk_entry_get_text(entry) != '\0');
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
290 }
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
291 }
6732
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
292
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
293 static void
14203
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
294 icon_filesel_choose_cb(const char *filename, gpointer data)
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
295 {
14203
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
296 AccountPrefsDialog *dialog;
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
297
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
298 dialog = data;
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
299
14765
c5c0c325481d [gaim-migrate @ 17455]
Mark Doliner <markdoliner@pidgin.im>
parents: 14764
diff changeset
300 if (filename != NULL)
c5c0c325481d [gaim-migrate @ 17455]
Mark Doliner <markdoliner@pidgin.im>
parents: 14764
diff changeset
301 set_dialog_icon(dialog, gaim_gtk_convert_buddy_icon(dialog->plugin, filename));
14203
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
302
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
303 dialog->icon_filesel = NULL;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
304 }
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
305
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
306 static void
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
307 icon_select_cb(GtkWidget *button, AccountPrefsDialog *dialog)
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
308 {
14203
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
309 dialog->icon_filesel = gaim_gtk_buddy_icon_chooser_new(GTK_WINDOW(dialog->window), icon_filesel_choose_cb, dialog);
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
310 gtk_widget_show_all(dialog->icon_filesel);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
311 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
312
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
313 static void
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
314 icon_reset_cb(GtkWidget *button, AccountPrefsDialog *dialog)
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
315 {
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
316 set_dialog_icon(dialog, NULL);
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
317 }
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
318
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
319 static void
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
320 account_dnd_recv(GtkWidget *widget, GdkDragContext *dc, gint x, gint y,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
321 GtkSelectionData *sd, guint info, guint t, AccountPrefsDialog *dialog)
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
322 {
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11113
diff changeset
323 gchar *name = (gchar *)sd->data;
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
324
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
325 if ((sd->length >= 0) && (sd->format == 8)) {
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
326 /* Well, it looks like the drag event was cool.
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
327 * Let's do something with it */
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
328 if (!g_ascii_strncasecmp(name, "file://", 7)) {
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
329 GError *converr = NULL;
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
330 gchar *tmp, *rtmp;
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
331 /* It looks like we're dealing with a local file. Let's
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
332 * just untar it in the right place */
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
333 if(!(tmp = g_filename_from_uri(name, NULL, &converr))) {
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
334 gaim_debug(GAIM_DEBUG_ERROR, "buddyicon", "%s\n",
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
335 (converr ? converr->message :
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
336 "g_filename_from_uri error"));
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
337 return;
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
338 }
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
339 if ((rtmp = strchr(tmp, '\r')) || (rtmp = strchr(tmp, '\n')))
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
340 *rtmp = '\0';
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
341 set_dialog_icon(dialog, gaim_gtk_convert_buddy_icon(dialog->plugin, tmp));
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
342 g_free(tmp);
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
343 }
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
344 gtk_drag_finish(dc, TRUE, FALSE, t);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
345 }
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
346 gtk_drag_finish(dc, FALSE, FALSE, t);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
347 }
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
348
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
349 static void
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
350 update_editable(GaimConnection *gc, AccountPrefsDialog *dialog)
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
351 {
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
352 gboolean set;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
353 GList *l;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
354
12843
323bd864a6f1 [gaim-migrate @ 15191]
Richard Laager <rlaager@pidgin.im>
parents: 12671
diff changeset
355 if (dialog->account == NULL)
323bd864a6f1 [gaim-migrate @ 15191]
Richard Laager <rlaager@pidgin.im>
parents: 12671
diff changeset
356 return;
323bd864a6f1 [gaim-migrate @ 15191]
Richard Laager <rlaager@pidgin.im>
parents: 12671
diff changeset
357
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
358 if (gc != NULL && dialog->account != gaim_connection_get_account(gc))
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
359 return;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
360
12555
3c978a4400f2 [gaim-migrate @ 14874]
Richard Laager <rlaager@pidgin.im>
parents: 12521
diff changeset
361 set = !(gaim_account_is_connected(dialog->account) || gaim_account_is_connecting(dialog->account));
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
362 gtk_widget_set_sensitive(dialog->protocol_menu, set);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
363 gtk_widget_set_sensitive(dialog->screenname_entry, set);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
364
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
365 for (l = dialog->user_split_entries ; l != NULL ; l = l->next)
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
366 gtk_widget_set_sensitive((GtkWidget *)l->data, set);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
367 }
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
368
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
369 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
370 add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
371 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
372 GtkWidget *frame;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
373 GtkWidget *vbox;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
374 GtkWidget *entry;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
375 GList *user_splits;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
376 GList *l, *l2;
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
377 char *username = NULL;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
378
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
379 if (dialog->login_frame != NULL)
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
380 gtk_widget_destroy(dialog->login_frame);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
381
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
382 /* Build the login options frame. */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
383 frame = gaim_gtk_make_frame(parent, _("Login Options"));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
384
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
385 /* cringe */
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
386 dialog->login_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
387
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
388 gtk_box_reorder_child(GTK_BOX(parent), dialog->login_frame, 0);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
389 gtk_widget_show(dialog->login_frame);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
390
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
391 /* Main vbox */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
392 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
393 gtk_container_add(GTK_CONTAINER(frame), vbox);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
394 gtk_widget_show(vbox);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
395
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
396 /* Protocol */
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
397 dialog->protocol_menu = gaim_gtk_protocol_option_menu_new(
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
398 dialog->protocol_id, G_CALLBACK(set_account_protocol_cb), dialog);
5644
bc4c2f9f2bf8 [gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents: 5641
diff changeset
399
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
400 add_pref_box(dialog, vbox, _("Protocol:"), dialog->protocol_menu);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
401
12152
e663abedf464 [gaim-migrate @ 14453]
Richard Laager <rlaager@pidgin.im>
parents: 12125
diff changeset
402 /* Screen name */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
403 dialog->screenname_entry = gtk_entry_new();
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
404
12152
e663abedf464 [gaim-migrate @ 14453]
Richard Laager <rlaager@pidgin.im>
parents: 12125
diff changeset
405 add_pref_box(dialog, vbox, _("Screen name:"), dialog->screenname_entry);
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
406
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
407 g_signal_connect(G_OBJECT(dialog->screenname_entry), "changed",
10420
7277ae4229e9 [gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
408 G_CALLBACK(screenname_changed_cb), dialog);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
409
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
410 /* Do the user split thang */
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
411 if (dialog->plugin == NULL) /* Yeah right. */
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
412 user_splits = NULL;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
413 else
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
414 user_splits = dialog->prpl_info->user_splits;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
415
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
416 if (dialog->account != NULL)
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
417 username = g_strdup(gaim_account_get_username(dialog->account));
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
418
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
419 if (dialog->user_split_entries != NULL) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
420 g_list_free(dialog->user_split_entries);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
421 dialog->user_split_entries = NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
422 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
423
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
424 for (l = user_splits; l != NULL; l = l->next) {
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
425 GaimAccountUserSplit *split = l->data;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
426 char *buf;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
427
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
428 buf = g_strdup_printf("%s:", gaim_account_user_split_get_text(split));
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
429
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
430 entry = gtk_entry_new();
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
431
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
432 add_pref_box(dialog, vbox, buf, entry);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
433
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
434 g_free(buf);
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
435
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
436 dialog->user_split_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
437 g_list_append(dialog->user_split_entries, entry);
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
438 }
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
439
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
440 for (l = g_list_last(dialog->user_split_entries),
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
441 l2 = g_list_last(user_splits);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
442 l != NULL && l2 != NULL;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
443 l = l->prev, l2 = l2->prev) {
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
444
5708
43f6fbb894d5 [gaim-migrate @ 6129]
Christian Hammond <chipx86@chipx86.com>
parents: 5705
diff changeset
445 GtkWidget *entry = l->data;
43f6fbb894d5 [gaim-migrate @ 6129]
Christian Hammond <chipx86@chipx86.com>
parents: 5705
diff changeset
446 GaimAccountUserSplit *split = l2->data;
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
447 const char *value = NULL;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
448 char *c;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
449
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
450 if (dialog->account != NULL) {
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
451 c = strrchr(username,
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
452 gaim_account_user_split_get_separator(split));
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
453
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
454 if (c != NULL) {
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
455 *c = '\0';
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
456 c++;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
457
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
458 value = c;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
459 }
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
460 }
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
461
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
462 if (value == NULL)
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
463 value = gaim_account_user_split_get_default_value(split);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
464
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
465 if (value != NULL)
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
466 gtk_entry_set_text(GTK_ENTRY(entry), value);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
467 }
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
468
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
469 if (username != NULL)
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
470 gtk_entry_set_text(GTK_ENTRY(dialog->screenname_entry), username);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
471
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
472 g_free(username);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
473
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
474
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
475 /* Password */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
476 dialog->password_entry = gtk_entry_new();
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
477 gtk_entry_set_visibility(GTK_ENTRY(dialog->password_entry), FALSE);
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11985
diff changeset
478 gtk_entry_set_invisible_char(GTK_ENTRY(dialog->password_entry), GAIM_INVISIBLE_CHAR);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
479 dialog->password_box = add_pref_box(dialog, vbox, _("Password:"),
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
480 dialog->password_entry);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
481
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
482 /* Alias */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
483 dialog->alias_entry = gtk_entry_new();
14087
8057667f4107 [gaim-migrate @ 16624]
Mark Doliner <markdoliner@pidgin.im>
parents: 14044
diff changeset
484 add_pref_box(dialog, vbox, _("Local alias:"), dialog->alias_entry);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
485
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
486 /* Remember Password */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
487 dialog->remember_pass_check =
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
488 gtk_check_button_new_with_label(_("Remember password"));
5783
0f26dee8622e [gaim-migrate @ 6208]
Christian Hammond <chipx86@chipx86.com>
parents: 5782
diff changeset
489 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->remember_pass_check),
7810
63e622ceacf1 [gaim-migrate @ 8457]
Mark Doliner <markdoliner@pidgin.im>
parents: 7762
diff changeset
490 FALSE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
491 gtk_box_pack_start(GTK_BOX(vbox), dialog->remember_pass_check,
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
492 FALSE, FALSE, 0);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
493 gtk_widget_show(dialog->remember_pass_check);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
494
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
495 /* Set the fields. */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
496 if (dialog->account != NULL) {
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
497 if (gaim_account_get_password(dialog->account))
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
498 gtk_entry_set_text(GTK_ENTRY(dialog->password_entry),
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
499 gaim_account_get_password(dialog->account));
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
500
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
501 if (gaim_account_get_alias(dialog->account))
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
502 gtk_entry_set_text(GTK_ENTRY(dialog->alias_entry),
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
503 gaim_account_get_alias(dialog->account));
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
504
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
505 gtk_toggle_button_set_active(
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
506 GTK_TOGGLE_BUTTON(dialog->remember_pass_check),
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
507 gaim_account_get_remember_password(dialog->account));
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
508 }
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
509
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
510 if (dialog->prpl_info != NULL &&
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
511 (dialog->prpl_info->options & OPT_PROTO_NO_PASSWORD)) {
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
512
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
513 gtk_widget_hide(dialog->password_box);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
514 gtk_widget_hide(dialog->remember_pass_check);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
515 }
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
516
12555
3c978a4400f2 [gaim-migrate @ 14874]
Richard Laager <rlaager@pidgin.im>
parents: 12521
diff changeset
517 /* Do not let the user change the protocol/screenname while connected. */
3c978a4400f2 [gaim-migrate @ 14874]
Richard Laager <rlaager@pidgin.im>
parents: 12521
diff changeset
518 update_editable(NULL, dialog);
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
519 gaim_signal_connect(gaim_connections_get_handle(), "signing-on", dialog,
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
520 G_CALLBACK(update_editable), dialog);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
521 gaim_signal_connect(gaim_connections_get_handle(), "signed-off", dialog,
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
522 G_CALLBACK(update_editable), dialog);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
523 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
524
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
525 static void
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
526 icon_check_cb(GtkWidget *checkbox, AccountPrefsDialog *dialog)
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
527 {
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
528 gtk_widget_set_sensitive(dialog->icon_hbox, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)));
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
529 }
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
530
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
531 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
532 add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
533 {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
534 GtkWidget *frame;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
535 GtkWidget *vbox;
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
536 GtkWidget *vbox2;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
537 GtkWidget *hbox;
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
538 GtkWidget *hbox2;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
539 GtkWidget *button;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
540 GtkWidget *label;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
541
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
542 if (dialog->user_frame != NULL)
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
543 gtk_widget_destroy(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
544
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
545 /* Build the user options frame. */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
546 frame = gaim_gtk_make_frame(parent, _("User Options"));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
547 dialog->user_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
548
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
549 gtk_box_reorder_child(GTK_BOX(parent), dialog->user_frame, 1);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
550 gtk_widget_show(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
551
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
552 /* Main vbox */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
553 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
554 gtk_container_add(GTK_CONTAINER(frame), vbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
555 gtk_widget_show(vbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
556
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
557 /* New mail notifications */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
558 dialog->new_mail_check =
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
559 gtk_check_button_new_with_label(_("New mail notifications"));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
560 gtk_box_pack_start(GTK_BOX(vbox), dialog->new_mail_check, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
561 gtk_widget_show(dialog->new_mail_check);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
562
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
563 /* Buddy icon */
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
564 dialog->icon_check = gtk_check_button_new_with_label(_("Use this buddy icon for this account:"));
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
565 g_signal_connect(G_OBJECT(dialog->icon_check), "toggled", G_CALLBACK(icon_check_cb), dialog);
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
566 gtk_widget_show(dialog->icon_check);
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
567 gtk_box_pack_start(GTK_BOX(vbox), dialog->icon_check, FALSE, FALSE, 0);
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
568
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
569 dialog->icon_hbox = hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE);
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
570 gtk_widget_set_sensitive(hbox, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)));
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
571 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
572 gtk_widget_show(hbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
573
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
574 label = gtk_label_new(" ");
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
575 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
576 gtk_widget_show(label);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
577
14764
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
578 button = gtk_button_new();
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
579 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
580 gtk_widget_show(button);
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
581 g_signal_connect(G_OBJECT(button), "clicked",
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
582 G_CALLBACK(icon_select_cb), dialog);
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
583
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
584 dialog->icon_entry = gtk_image_new();
14764
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
585 gtk_container_add(GTK_CONTAINER(button), dialog->icon_entry);
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
586 gtk_widget_show(dialog->icon_entry);
14764
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
587 /* TODO: Uh, isn't this next line pretty useless? */
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
588 gaim_set_accessible_label (dialog->icon_entry, label);
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
589 dialog->icon_path = NULL;
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
590
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
591 vbox2 = gtk_vbox_new(FALSE, 0);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
592 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 0);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
593 gtk_widget_show(vbox2);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
594
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
595 hbox2 = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE);
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
596 gtk_box_pack_start(GTK_BOX(vbox2), hbox2, FALSE, FALSE, GAIM_HIG_BORDER);
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
597 gtk_widget_show(hbox2);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
598
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
599 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
600 g_signal_connect(G_OBJECT(button), "clicked",
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
601 G_CALLBACK(icon_reset_cb), dialog);
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
602 gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, FALSE, 0);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
603 gtk_widget_show(button);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
604
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
605 if (dialog->prpl_info != NULL) {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
606 if (!(dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK))
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
607 gtk_widget_hide(dialog->new_mail_check);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
608
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
609 if (!(dialog->prpl_info->icon_spec.format != NULL))
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
610 gtk_widget_hide(dialog->icon_hbox);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
611 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
612
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
613 if (dialog->account != NULL) {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
614 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->new_mail_check),
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
615 gaim_account_get_check_mail(dialog->account));
14670
011e0da9c2a8 [gaim-migrate @ 17336]
Mark Doliner <markdoliner@pidgin.im>
parents: 14625
diff changeset
616
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
617 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->icon_check),
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
618 !gaim_account_get_ui_bool(dialog->account, GAIM_GTK_UI, "use-global-buddyicon",
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
619 TRUE));
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
620
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
621 set_dialog_icon(dialog,
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
622 g_strdup(gaim_account_get_ui_string(dialog->account,
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
623 GAIM_GTK_UI, "non-global-buddyicon", NULL)));
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
624 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
625
7207
d59fb691238c [gaim-migrate @ 7776]
Nathan Walp <nwalp@pidgin.im>
parents: 7179
diff changeset
626 if (!dialog->prpl_info ||
d59fb691238c [gaim-migrate @ 7776]
Nathan Walp <nwalp@pidgin.im>
parents: 7179
diff changeset
627 (!(dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK) &&
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
628 (dialog->prpl_info->icon_spec.format == NULL))) {
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
629
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
630 /* Nothing to see :( aww. */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
631 gtk_widget_hide(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
632 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
633 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
634
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
635 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
636 add_protocol_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
637 {
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
638 GaimAccountOption *option;
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
639 GaimAccount *account;
12185
e693dd57141c [gaim-migrate @ 14487]
Etan Reisner <deryni@pidgin.im>
parents: 12172
diff changeset
640 GtkWidget *frame, *vbox, *check, *entry, *combo;
e693dd57141c [gaim-migrate @ 14487]
Etan Reisner <deryni@pidgin.im>
parents: 12172
diff changeset
641 const GList *list, *node;
e693dd57141c [gaim-migrate @ 14487]
Etan Reisner <deryni@pidgin.im>
parents: 12172
diff changeset
642 gint i, idx, int_value;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
643 GtkListStore *model;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
644 GtkTreeIter iter;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
645 GtkCellRenderer *renderer;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
646 GaimKeyValuePair *kvp;
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
647 GList *l;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
648 char buf[1024];
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
649 char *title;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
650 const char *str_value;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
651 gboolean bool_value;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
652
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
653 if (dialog->protocol_frame != NULL) {
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
654 gtk_widget_destroy(dialog->protocol_frame);
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
655 dialog->protocol_frame = NULL;
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
656 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
657
14235
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
658 if (dialog->protocol_opt_entries != NULL) {
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
659 g_list_free(dialog->protocol_opt_entries);
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
660 dialog->protocol_opt_entries = NULL;
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
661 }
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
662
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
663 if (dialog->prpl_info == NULL ||
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
664 dialog->prpl_info->protocol_options == NULL) {
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
665
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
666 return;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
667 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
668
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
669 account = dialog->account;
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
670
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
671 /* Build the protocol options frame. */
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
672 g_snprintf(buf, sizeof(buf), _("%s Options"), dialog->plugin->info->name);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
673
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
674 frame = gaim_gtk_make_frame(parent, buf);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
675 dialog->protocol_frame =
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
676 gtk_widget_get_parent(gtk_widget_get_parent(frame));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
677
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
678 gtk_box_reorder_child(GTK_BOX(parent), dialog->protocol_frame, 0);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
679 gtk_widget_show(dialog->protocol_frame);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
680
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
681 /* Main vbox */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
682 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
683 gtk_container_add(GTK_CONTAINER(frame), vbox);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
684 gtk_widget_show(vbox);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
685
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
686 for (l = dialog->prpl_info->protocol_options; l != NULL; l = l->next)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
687 {
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
688 option = (GaimAccountOption *)l->data;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
689
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
690 switch (gaim_account_option_get_type(option))
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
691 {
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
692 case GAIM_PREF_BOOLEAN:
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
693 if (account == NULL ||
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
694 strcmp(gaim_account_get_protocol_id(account),
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
695 dialog->protocol_id))
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
696 {
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
697 bool_value = gaim_account_option_get_default_bool(option);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
698 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
699 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
700 {
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
701 bool_value = gaim_account_get_bool(account,
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
702 gaim_account_option_get_setting(option),
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
703 gaim_account_option_get_default_bool(option));
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
704 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
705
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
706 check = gtk_check_button_new_with_label(
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
707 gaim_account_option_get_text(option));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
708
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
709 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
710 bool_value);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
711
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
712 gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
713 gtk_widget_show(check);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
714
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
715 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
716 g_list_append(dialog->protocol_opt_entries, check);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
717
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
718 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
719
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
720 case GAIM_PREF_INT:
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
721 if (account == NULL ||
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
722 strcmp(gaim_account_get_protocol_id(account),
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
723 dialog->protocol_id))
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
724 {
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
725 int_value = gaim_account_option_get_default_int(option);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
726 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
727 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
728 {
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
729 int_value = gaim_account_get_int(account,
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
730 gaim_account_option_get_setting(option),
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
731 gaim_account_option_get_default_int(option));
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
732 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
733
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
734 g_snprintf(buf, sizeof(buf), "%d", int_value);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
735
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
736 entry = gtk_entry_new();
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
737 gtk_entry_set_text(GTK_ENTRY(entry), buf);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
738
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
739 title = g_strdup_printf("%s:",
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
740 gaim_account_option_get_text(option));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
741
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
742 add_pref_box(dialog, vbox, title, entry);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
743
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
744 g_free(title);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
745
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
746 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
747 g_list_append(dialog->protocol_opt_entries, entry);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
748
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
749 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
750
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
751 case GAIM_PREF_STRING:
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
752 if (account == NULL ||
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
753 strcmp(gaim_account_get_protocol_id(account),
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
754 dialog->protocol_id))
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
755 {
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
756 str_value = gaim_account_option_get_default_string(option);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
757 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
758 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
759 {
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
760 str_value = gaim_account_get_string(account,
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
761 gaim_account_option_get_setting(option),
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
762 gaim_account_option_get_default_string(option));
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
763 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
764
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
765 entry = gtk_entry_new();
10658
6223ea383921 [gaim-migrate @ 12190]
Richard Laager <rlaager@pidgin.im>
parents: 10649
diff changeset
766 if (gaim_account_option_get_masked(option))
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11985
diff changeset
767 {
10658
6223ea383921 [gaim-migrate @ 12190]
Richard Laager <rlaager@pidgin.im>
parents: 10649
diff changeset
768 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11985
diff changeset
769 gtk_entry_set_invisible_char(GTK_ENTRY(entry), GAIM_INVISIBLE_CHAR);
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11985
diff changeset
770 }
5663
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
771
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
772 if (str_value != NULL)
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
773 gtk_entry_set_text(GTK_ENTRY(entry), str_value);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
774
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
775 title = g_strdup_printf("%s:",
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
776 gaim_account_option_get_text(option));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
777
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
778 add_pref_box(dialog, vbox, title, entry);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
779
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
780 g_free(title);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
781
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
782 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
783 g_list_append(dialog->protocol_opt_entries, entry);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
784
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
785 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
786
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
787 case GAIM_PREF_STRING_LIST:
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
788 i = 0;
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
789 idx = 0;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
790
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
791 if (account == NULL ||
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
792 strcmp(gaim_account_get_protocol_id(account),
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
793 dialog->protocol_id))
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
794 {
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
795 str_value = gaim_account_option_get_default_list_value(option);
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
796 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
797 else
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
798 {
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
799 str_value = gaim_account_get_string(account,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
800 gaim_account_option_get_setting(option),
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
801 gaim_account_option_get_default_list_value(option));
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
802 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
803
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
804 list = gaim_account_option_get_list(option);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
805 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
806 combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model));
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
807
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
808 /* Loop through list of GaimKeyValuePair items */
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
809 for (node = list; node != NULL; node = node->next) {
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
810 if (node->data != NULL) {
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
811 kvp = (GaimKeyValuePair *) node->data;
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
812 if ((kvp->value != NULL) && (str_value != NULL) &&
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
813 !g_utf8_collate(kvp->value, str_value))
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
814 idx = i;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
815
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
816 gtk_list_store_append(model, &iter);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
817 gtk_list_store_set(model, &iter,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
818 0, kvp->key,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
819 1, kvp->value,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
820 -1);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
821 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
822
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
823 i++;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
824 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
825
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
826 /* Set default */
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
827 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), idx);
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
828
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
829 /* Define renderer */
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
830 renderer = gtk_cell_renderer_text_new();
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
831 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
832 TRUE);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
833 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo),
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
834 renderer, "text", 0, NULL);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
835
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
836 title = g_strdup_printf("%s:",
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
837 gaim_account_option_get_text(option));
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
838
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
839 add_pref_box(dialog, vbox, title, combo);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
840
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
841 g_free(title);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
842
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
843 dialog->protocol_opt_entries =
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
844 g_list_append(dialog->protocol_opt_entries, combo);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
845
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
846 break;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
847
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
848
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
849 default:
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
850 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
851 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
852 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
853 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
854
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
855 static GtkWidget *
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
856 make_proxy_dropdown(void)
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
857 {
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
858 GtkWidget *dropdown;
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
859 GtkListStore *model;
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
860 GtkTreeIter iter;
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
861 GtkCellRenderer *renderer;
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
862
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
863 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
864 dropdown = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model));
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
865
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
866 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
867 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
868 0, _("Use Global Proxy Settings"),
8581
8fd3595d2a47 [gaim-migrate @ 9331]
Christian Hammond <chipx86@chipx86.com>
parents: 8555
diff changeset
869 1, GAIM_PROXY_USE_GLOBAL,
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
870 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
871
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
872 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
873 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
874 0, _("No Proxy"),
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
875 1, GAIM_PROXY_NONE,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
876 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
877
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
878 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
879 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
880 0, _("HTTP"),
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
881 1, GAIM_PROXY_HTTP,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
882 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
883
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
884 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
885 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
886 0, _("SOCKS 4"),
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
887 1, GAIM_PROXY_SOCKS4,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
888 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
889
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
890 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
891 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
892 0, _("SOCKS 5"),
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
893 1, GAIM_PROXY_SOCKS5,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
894 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
895
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
896 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
897 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
898 0, _("Use Environmental Settings"),
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
899 1, GAIM_PROXY_USE_ENVVAR,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
900 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
901
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
902 renderer = gtk_cell_renderer_text_new();
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
903 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, TRUE);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
904 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
905 "text", 0, NULL);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
906
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
907 return dropdown;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
908 }
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
909
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
910 static void
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
911 proxy_type_changed_cb(GtkWidget *menu, AccountPrefsDialog *dialog)
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
912 {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
913 dialog->new_proxy_type =
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
914 gtk_combo_box_get_active(GTK_COMBO_BOX(menu)) - 1;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
915
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
916 if (dialog->new_proxy_type == GAIM_PROXY_USE_GLOBAL ||
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6581
diff changeset
917 dialog->new_proxy_type == GAIM_PROXY_NONE ||
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6581
diff changeset
918 dialog->new_proxy_type == GAIM_PROXY_USE_ENVVAR) {
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
919
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
920 gtk_widget_hide_all(dialog->proxy_vbox);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
921 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
922 else
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
923 gtk_widget_show_all(dialog->proxy_vbox);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
924 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
925
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
926 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
927 port_popup_cb(GtkWidget *w, GtkMenu *menu, gpointer data)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
928 {
13702
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
929 GtkWidget *item1;
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
930 GtkWidget *item2;
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
931
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
932 /* This is an easter egg.
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
933 It means one of two things, both intended as humourus:
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
934 A) your network is really slow and you have nothing better to do than
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
935 look at butterflies.
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
936 B)You are looking really closely at something that shouldn't matter. */
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
937 item1 = gtk_menu_item_new_with_label(_("If you look real closely"));
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
938
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
939 /* This is an easter egg. See the comment on the previous line in the source. */
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
940 item2 = gtk_menu_item_new_with_label(_("you can see the butterflies mating"));
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
941
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
942 gtk_widget_show(item1);
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
943 gtk_widget_show(item2);
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
944
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
945 /* Prepend these in reverse order so they appear correctly. */
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
946 gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), item2);
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
947 gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), item1);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
948 }
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
949
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
950 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
951 add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
952 {
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
953 GaimProxyInfo *proxy_info;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
954 GtkWidget *frame;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
955 GtkWidget *vbox;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
956 GtkWidget *vbox2;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
957
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
958 if (dialog->proxy_frame != NULL)
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
959 gtk_widget_destroy(dialog->proxy_frame);
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
960
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
961 frame = gaim_gtk_make_frame(parent, _("Proxy Options"));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
962 dialog->proxy_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
963
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
964 gtk_box_reorder_child(GTK_BOX(parent), dialog->proxy_frame, 1);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
965 gtk_widget_show(dialog->proxy_frame);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
966
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
967 /* Main vbox */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
968 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
969 gtk_container_add(GTK_CONTAINER(frame), vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
970 gtk_widget_show(vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
971
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
972 /* Proxy Type drop-down. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
973 dialog->proxy_dropdown = make_proxy_dropdown();
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
974
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
975 add_pref_box(dialog, vbox, _("Proxy _type:"), dialog->proxy_dropdown);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
976
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
977 /* Setup the second vbox, which may be hidden at times. */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
978 dialog->proxy_vbox = vbox2 = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
979 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, GAIM_HIG_BORDER);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
980 gtk_widget_show(vbox2);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
981
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
982 /* Host */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
983 dialog->proxy_host_entry = gtk_entry_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
984 add_pref_box(dialog, vbox2, _("_Host:"), dialog->proxy_host_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
985
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
986 /* Port */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
987 dialog->proxy_port_entry = gtk_entry_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
988 add_pref_box(dialog, vbox2, _("_Port:"), dialog->proxy_port_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
989
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
990 g_signal_connect(G_OBJECT(dialog->proxy_port_entry), "populate-popup",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
991 G_CALLBACK(port_popup_cb), NULL);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
992
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
993 /* User */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
994 dialog->proxy_user_entry = gtk_entry_new();
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
995
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
996 add_pref_box(dialog, vbox2, _("_Username:"), dialog->proxy_user_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
997
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
998 /* Password */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
999 dialog->proxy_pass_entry = gtk_entry_new();
5700
8a0df68ba664 [gaim-migrate @ 6121]
Christian Hammond <chipx86@chipx86.com>
parents: 5699
diff changeset
1000 gtk_entry_set_visibility(GTK_ENTRY(dialog->proxy_pass_entry), FALSE);
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11985
diff changeset
1001 gtk_entry_set_invisible_char(GTK_ENTRY(dialog->proxy_pass_entry), GAIM_INVISIBLE_CHAR);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1002 add_pref_box(dialog, vbox2, _("Pa_ssword:"), dialog->proxy_pass_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1003
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1004 if (dialog->account != NULL &&
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1005 (proxy_info = gaim_account_get_proxy_info(dialog->account)) != NULL) {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1006
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1007 GaimProxyType type = gaim_proxy_info_get_type(proxy_info);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1008 const char *value;
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1009 int int_val;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1010
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1011 /* Hah! */
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6581
diff changeset
1012 /* I dunno what you're laughing about, fuzz ball. */
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6581
diff changeset
1013 dialog->new_proxy_type = type;
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
1014 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown),
9662
c8c09944d2e6 [gaim-migrate @ 10510]
Joe Shaw <joe@joeshaw.org>
parents: 9617
diff changeset
1015 type + 1);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1016
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6581
diff changeset
1017 if (type == GAIM_PROXY_USE_GLOBAL || type == GAIM_PROXY_NONE ||
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1018 type == GAIM_PROXY_USE_ENVVAR)
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1019 gtk_widget_hide_all(vbox2);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1020
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1021
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1022 if ((value = gaim_proxy_info_get_host(proxy_info)) != NULL)
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1023 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_host_entry), value);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1024
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1025 if ((int_val = gaim_proxy_info_get_port(proxy_info)) != 0) {
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1026 char buf[11];
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1027
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1028 g_snprintf(buf, sizeof(buf), "%d", int_val);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1029
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1030 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_port_entry), buf);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1031 }
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1032
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1033 if ((value = gaim_proxy_info_get_username(proxy_info)) != NULL)
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1034 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_user_entry), value);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1035
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1036 if ((value = gaim_proxy_info_get_password(proxy_info)) != NULL)
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1037 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_pass_entry), value);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1038 }
6856
5ed6b8356ebc [gaim-migrate @ 7401]
Mark Doliner <markdoliner@pidgin.im>
parents: 6751
diff changeset
1039 else {
5ed6b8356ebc [gaim-migrate @ 7401]
Mark Doliner <markdoliner@pidgin.im>
parents: 6751
diff changeset
1040 dialog->new_proxy_type = GAIM_PROXY_USE_GLOBAL;
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
1041 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown),
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
1042 dialog->new_proxy_type + 1);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1043 gtk_widget_hide_all(vbox2);
6856
5ed6b8356ebc [gaim-migrate @ 7401]
Mark Doliner <markdoliner@pidgin.im>
parents: 6751
diff changeset
1044 }
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1045
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1046 /* Connect signals. */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1047 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1048 G_CALLBACK(proxy_type_changed_cb), dialog);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1049 }
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1050
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1051 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1052 account_win_destroy_cb(GtkWidget *w, GdkEvent *event,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1053 AccountPrefsDialog *dialog)
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1054 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1055 g_hash_table_remove(account_pref_wins, dialog->account);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1056
7450
d12556040468 [gaim-migrate @ 8061]
zuperdeei
parents: 7269
diff changeset
1057 gtk_widget_destroy(dialog->window);
d12556040468 [gaim-migrate @ 8061]
zuperdeei
parents: 7269
diff changeset
1058
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
1059 g_list_free(dialog->user_split_entries);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
1060 g_list_free(dialog->protocol_opt_entries);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
1061 g_free(dialog->protocol_id);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1062
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10432
diff changeset
1063 if (dialog->icon_path != NULL)
11303
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1064 {
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
1065 const char *icon = gaim_account_get_ui_string(dialog->account, GAIM_GTK_UI, "non-global-buddyicon", NULL);
11303
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1066 if (dialog->icon_path != NULL && (icon == NULL || strcmp(dialog->icon_path, icon)))
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1067 {
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1068 /* The user set an icon, which would've been cached by convert_buddy_icon,
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1069 * but didn't save the changes. Delete the cache file. */
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1070 char *filename = g_build_filename(gaim_buddy_icons_get_cache_dir(), dialog->icon_path, NULL);
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1071 g_unlink(filename);
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1072 g_free(filename);
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1073 }
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1074
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10432
diff changeset
1075 g_free(dialog->icon_path);
11303
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11295
diff changeset
1076 }
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10432
diff changeset
1077
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
1078 if (dialog->icon_filesel)
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
1079 gtk_widget_destroy(dialog->icon_filesel);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
1080
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
1081 gaim_signals_disconnect_by_handle(dialog);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
1082
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1083 g_free(dialog);
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1084 }
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1085
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1086 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1087 cancel_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1088 {
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1089 account_win_destroy_cb(NULL, NULL, dialog);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1090 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1091
7269
6015081d8124 [gaim-migrate @ 7846]
Nathan Walp <nwalp@pidgin.im>
parents: 7208
diff changeset
1092 static GaimAccount*
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1093 ok_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1094 {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1095 GaimProxyInfo *proxy_info = NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1096 GList *l, *l2;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1097 const char *value;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1098 char *username;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1099 char *tmp;
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
1100 gboolean new = FALSE, icon_change = FALSE;
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1101 GaimAccount *account;
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1102 GaimPluginProtocolInfo *prpl_info;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1103
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1104 if (dialog->account == NULL)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1105 {
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1106 const char *screenname;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1107
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1108 screenname = gtk_entry_get_text(GTK_ENTRY(dialog->screenname_entry));
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1109 account = gaim_account_new(screenname, dialog->protocol_id);
10932
a38fb730e964 [gaim-migrate @ 12711]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10931
diff changeset
1110 new = TRUE;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1111 }
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1112 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1113 {
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1114 account = dialog->account;
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1115
5699
b47a3b7d1247 [gaim-migrate @ 6120]
Christian Hammond <chipx86@chipx86.com>
parents: 5698
diff changeset
1116 /* Protocol */
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1117 gaim_account_set_protocol_id(account, dialog->protocol_id);
5699
b47a3b7d1247 [gaim-migrate @ 6120]
Christian Hammond <chipx86@chipx86.com>
parents: 5698
diff changeset
1118 }
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1119
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1120 /* Alias */
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1121 value = gtk_entry_get_text(GTK_ENTRY(dialog->alias_entry));
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1122
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1123 if (*value != '\0')
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1124 gaim_account_set_alias(account, value);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1125 else
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1126 gaim_account_set_alias(account, NULL);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1127
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1128 /* Buddy Icon */
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1129 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(dialog->plugin);
14625
670a2d2a5eb3 [gaim-migrate @ 17286]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14313
diff changeset
1130 if (prpl_info != NULL && prpl_info->icon_spec.format != NULL)
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1131 {
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1132 if (new || gaim_account_get_ui_bool(account, GAIM_GTK_UI, "use-global-buddyicon", TRUE) ==
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1133 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)))
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1134 {
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1135 icon_change = TRUE;
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1136 }
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1137 gaim_account_set_ui_bool(account, GAIM_GTK_UI, "use-global-buddyicon", !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)));
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1138 gaim_account_set_ui_string(account, GAIM_GTK_UI, "non-global-buddyicon", dialog->icon_path);
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1139 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)))
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1140 {
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1141 gaim_account_set_buddy_icon(account, dialog->icon_path);
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1142 }
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1143 else if (gaim_prefs_get_string("/gaim/gtk/accounts/buddyicon") && icon_change)
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1144 {
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1145 char *icon = gaim_gtk_convert_buddy_icon(dialog->plugin, gaim_prefs_get_string("/gaim/gtk/accounts/buddyicon"));
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1146 gaim_account_set_buddy_icon(account, icon);
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1147 g_free(icon);
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1148 }
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
1149 }
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1150
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10420
diff changeset
1151
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1152 /* Remember Password */
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1153 gaim_account_set_remember_password(account,
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1154 gtk_toggle_button_get_active(
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1155 GTK_TOGGLE_BUTTON(dialog->remember_pass_check)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1156
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1157 /* Check Mail */
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1158 if (dialog->prpl_info && dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK)
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1159 gaim_account_set_check_mail(account,
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1160 gtk_toggle_button_get_active(
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1161 GTK_TOGGLE_BUTTON(dialog->new_mail_check)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1162
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1163 /* Password */
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1164 value = gtk_entry_get_text(GTK_ENTRY(dialog->password_entry));
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1165
11985
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1166 /*
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1167 * We set the password if this is a new account because new accounts
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1168 * will be set to online, and if the user has entered a password into
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1169 * the account editor (but has not checked the 'save' box), then we
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1170 * don't want to prompt them.
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1171 */
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1172 if ((gaim_account_get_remember_password(account) || new) && (*value != '\0'))
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1173 gaim_account_set_password(account, value);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1174 else
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1175 gaim_account_set_password(account, NULL);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1176
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1177 /* Build the username string. */
5711
5aa3984f5f80 [gaim-migrate @ 6132]
Christian Hammond <chipx86@chipx86.com>
parents: 5710
diff changeset
1178 username =
5aa3984f5f80 [gaim-migrate @ 6132]
Christian Hammond <chipx86@chipx86.com>
parents: 5710
diff changeset
1179 g_strdup(gtk_entry_get_text(GTK_ENTRY(dialog->screenname_entry)));
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1180
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1181 if (dialog->prpl_info != NULL)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1182 {
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1183 for (l = dialog->prpl_info->user_splits,
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1184 l2 = dialog->user_split_entries;
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1185 l != NULL && l2 != NULL;
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1186 l = l->next, l2 = l2->next)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1187 {
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1188 GaimAccountUserSplit *split = l->data;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1189 GtkEntry *entry = l2->data;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1190 char sep[2] = " ";
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1191
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1192 value = gtk_entry_get_text(entry);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1193
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1194 *sep = gaim_account_user_split_get_separator(split);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1195
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1196 tmp = g_strconcat(username, sep,
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1197 (*value ? value :
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1198 gaim_account_user_split_get_default_value(split)),
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1199 NULL);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1200
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1201 g_free(username);
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1202 username = tmp;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1203 }
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1204 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1205
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1206 gaim_account_set_username(account, username);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1207 g_free(username);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1208
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1209 /* Add the protocol settings */
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1210 if (dialog->prpl_info) {
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1211 for (l = dialog->prpl_info->protocol_options,
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1212 l2 = dialog->protocol_opt_entries;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1213 l != NULL && l2 != NULL;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1214 l = l->next, l2 = l2->next) {
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1215
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1216 GaimPrefType type;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1217 GaimAccountOption *option = l->data;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1218 GtkWidget *widget = l2->data;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1219 GtkTreeIter iter;
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1220 const char *setting;
13640
99dba9bf3686 [gaim-migrate @ 16037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 13222
diff changeset
1221 char *value2;
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1222 int int_value;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1223 gboolean bool_value;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1224
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1225 type = gaim_account_option_get_type(option);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1226
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1227 setting = gaim_account_option_get_setting(option);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1228
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1229 switch (type) {
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1230 case GAIM_PREF_STRING:
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1231 value = gtk_entry_get_text(GTK_ENTRY(widget));
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1232 gaim_account_set_string(account, setting, value);
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1233 break;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1234
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1235 case GAIM_PREF_INT:
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1236 int_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget)));
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1237 gaim_account_set_int(account, setting, int_value);
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1238 break;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1239
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1240 case GAIM_PREF_BOOLEAN:
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1241 bool_value =
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1242 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1243 gaim_account_set_bool(account, setting, bool_value);
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1244 break;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1245
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1246 case GAIM_PREF_STRING_LIST:
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1247 gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter);
13640
99dba9bf3686 [gaim-migrate @ 16037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 13222
diff changeset
1248 gtk_tree_model_get(gtk_combo_box_get_model(GTK_COMBO_BOX(widget)), &iter, 1, &value2, -1);
99dba9bf3686 [gaim-migrate @ 16037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 13222
diff changeset
1249 gaim_account_set_string(account, setting, value2);
99dba9bf3686 [gaim-migrate @ 16037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 13222
diff changeset
1250 g_free(value2);
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1251 break;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1252
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1253 default:
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1254 break;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1255 }
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1256 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1257 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1258
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1259 /* Set the proxy stuff. */
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1260 proxy_info = gaim_account_get_proxy_info(account);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1261
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1262 /* Create the proxy info if it doesn't exist. */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1263 if (proxy_info == NULL) {
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1264 proxy_info = gaim_proxy_info_new();
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1265 gaim_account_set_proxy_info(account, proxy_info);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1266 }
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1267
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1268 /* Set the proxy info type. */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1269 gaim_proxy_info_set_type(proxy_info, dialog->new_proxy_type);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1270
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1271 /* Host */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1272 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_host_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1273
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1274 if (*value != '\0')
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1275 gaim_proxy_info_set_host(proxy_info, value);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1276 else
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1277 gaim_proxy_info_set_host(proxy_info, NULL);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1278
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1279 /* Port */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1280 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_port_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1281
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1282 if (*value != '\0')
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1283 gaim_proxy_info_set_port(proxy_info, atoi(value));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1284 else
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1285 gaim_proxy_info_set_port(proxy_info, 0);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1286
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1287 /* Username */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1288 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_user_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1289
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1290 if (*value != '\0')
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1291 gaim_proxy_info_set_username(proxy_info, value);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1292 else
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1293 gaim_proxy_info_set_username(proxy_info, NULL);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1294
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1295 /* Password */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1296 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_pass_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1297
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1298 if (*value != '\0')
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1299 gaim_proxy_info_set_password(proxy_info, value);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1300 else
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1301 gaim_proxy_info_set_password(proxy_info, NULL);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1302
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1303 /* If there are no values set then proxy_info NULL */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1304 if ((gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_USE_GLOBAL) &&
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1305 (gaim_proxy_info_get_host(proxy_info) == NULL) &&
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1306 (gaim_proxy_info_get_port(proxy_info) == 0) &&
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1307 (gaim_proxy_info_get_username(proxy_info) == NULL) &&
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1308 (gaim_proxy_info_get_password(proxy_info) == NULL))
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1309 {
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1310 gaim_account_set_proxy_info(account, NULL);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1311 proxy_info = NULL;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1312 }
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1313
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1314
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1315 /* We no longer need the data from the dialog window */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1316 account_win_destroy_cb(NULL, NULL, dialog);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1317
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1318 /* If this is a new account, add it to our list */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1319 if (new)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1320 gaim_accounts_add(account);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1321 else
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1322 gaim_signal_emit(gaim_gtk_account_get_handle(), "account-modified", account);
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1323
11987
a6eb4a3f1136 [gaim-migrate @ 14280]
Mark Doliner <markdoliner@pidgin.im>
parents: 11986
diff changeset
1324 /* If this is a new account, then sign on! */
11638
1821b40269a3 [gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11358
diff changeset
1325 if (new) {
12125
c1e55f812ded [gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents: 12123
diff changeset
1326 const GaimSavedStatus *saved_status;
c1e55f812ded [gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents: 12123
diff changeset
1327
c1e55f812ded [gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents: 12123
diff changeset
1328 saved_status = gaim_savedstatus_get_current();
c1e55f812ded [gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents: 12123
diff changeset
1329 if (saved_status != NULL) {
12121
cc63210cdc8b [gaim-migrate @ 14421]
Daniel Atallah <datallah@pidgin.im>
parents: 12106
diff changeset
1330 gaim_savedstatus_activate_for_account(saved_status, account);
cc63210cdc8b [gaim-migrate @ 14421]
Daniel Atallah <datallah@pidgin.im>
parents: 12106
diff changeset
1331 gaim_account_set_enabled(account, GAIM_GTK_UI, TRUE);
cc63210cdc8b [gaim-migrate @ 14421]
Daniel Atallah <datallah@pidgin.im>
parents: 12106
diff changeset
1332 }
11638
1821b40269a3 [gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11358
diff changeset
1333 }
10932
a38fb730e964 [gaim-migrate @ 12711]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10931
diff changeset
1334
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1335 return account;
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1336 }
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1337
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1338 static void
5851
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1339 register_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1340 {
7269
6015081d8124 [gaim-migrate @ 7846]
Nathan Walp <nwalp@pidgin.im>
parents: 7208
diff changeset
1341 GaimAccount *account = ok_account_prefs_cb(NULL, dialog);
5851
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1342
7269
6015081d8124 [gaim-migrate @ 7846]
Nathan Walp <nwalp@pidgin.im>
parents: 7208
diff changeset
1343 gaim_account_register(account);
5851
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1344 }
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1345
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1346
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1347 static const GtkTargetEntry dnd_targets[] = {
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1348 {"text/plain", 0, 0},
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1349 {"text/uri-list", 0, 1},
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1350 {"STRING", 0, 2}
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1351 };
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1352
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1353 void
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1354 gaim_gtk_account_dialog_show(GaimGtkAccountDialogType type,
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1355 GaimAccount *account)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1356 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1357 AccountPrefsDialog *dialog;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1358 GtkWidget *win;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1359 GtkWidget *main_vbox;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1360 GtkWidget *vbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1361 GtkWidget *bbox;
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1362 GtkWidget *dbox;
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1363 GtkWidget *notebook;
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1364 GtkWidget *button;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1365
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1366 if (accounts_window != NULL && account != NULL &&
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1367 (dialog = g_hash_table_lookup(account_pref_wins, account)) != NULL)
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1368 {
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1369 gtk_window_present(GTK_WINDOW(dialog->window));
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1370 return;
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1371 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1372
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1373 dialog = g_new0(AccountPrefsDialog, 1);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1374
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1375 if (accounts_window != NULL && account != NULL)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1376 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1377 g_hash_table_insert(account_pref_wins, account, dialog);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1378 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1379
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1380 dialog->account = account;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1381 dialog->type = type;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1382 dialog->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1383
9971
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1384 if (dialog->account == NULL) {
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1385 /* Select the first prpl in the list*/
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1386 GList *prpl_list = gaim_plugins_get_protocols();
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1387 if (prpl_list != NULL)
10014
f555af2d76a9 [gaim-migrate @ 10932]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9971
diff changeset
1388 dialog->protocol_id = g_strdup(((GaimPlugin *) prpl_list->data)->info->id);
9971
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1389 }
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1390 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1391 {
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1392 dialog->protocol_id =
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1393 g_strdup(gaim_account_get_protocol_id(dialog->account));
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1394 }
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1395
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
1396 if ((dialog->plugin = gaim_find_prpl(dialog->protocol_id)) != NULL)
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1397 dialog->prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(dialog->plugin);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1398
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1399
5661
9788e2d77d66 [gaim-migrate @ 6075]
Christian Hammond <chipx86@chipx86.com>
parents: 5660
diff changeset
1400 dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1401 gtk_window_set_role(GTK_WINDOW(win), "account");
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1402
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1403 if (type == GAIM_GTK_ADD_ACCOUNT_DIALOG)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1404 gtk_window_set_title(GTK_WINDOW(win), _("Add Account"));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1405 else
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1406 gtk_window_set_title(GTK_WINDOW(win), _("Modify Account"));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1407
5661
9788e2d77d66 [gaim-migrate @ 6075]
Christian Hammond <chipx86@chipx86.com>
parents: 5660
diff changeset
1408 gtk_window_set_resizable(GTK_WINDOW(win), FALSE);
9788e2d77d66 [gaim-migrate @ 6075]
Christian Hammond <chipx86@chipx86.com>
parents: 5660
diff changeset
1409
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
1410 gtk_container_set_border_width(GTK_CONTAINER(win), GAIM_HIG_BORDER);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1411
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1412 g_signal_connect(G_OBJECT(win), "delete_event",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1413 G_CALLBACK(account_win_destroy_cb), dialog);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1414
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1415 /* Setup the vbox */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
1416 main_vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1417 gtk_container_add(GTK_CONTAINER(win), main_vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1418 gtk_widget_show(main_vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1419
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1420 notebook = gtk_notebook_new();
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1421 gtk_box_pack_start(GTK_BOX(main_vbox), notebook, FALSE, FALSE, 0);
11638
1821b40269a3 [gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11358
diff changeset
1422 gtk_widget_show(GTK_WIDGET(notebook));
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1423
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1424 /* Setup the inner vbox */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
1425 dialog->top_vbox = vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
1426 gtk_container_set_border_width(GTK_CONTAINER(vbox), GAIM_HIG_BORDER);
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1427 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox,
12240
194dc3367706 [gaim-migrate @ 14542]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 12185
diff changeset
1428 gtk_label_new_with_mnemonic(_("_Basic")));
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1429 gtk_widget_show(vbox);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1430
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1431 /* Setup the top frames. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1432 add_login_options(dialog, vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1433 add_user_options(dialog, vbox);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1434
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1435 /* Setup the page with 'Advanced'. */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
1436 dialog->bottom_vbox = dbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
1437 gtk_container_set_border_width(GTK_CONTAINER(dbox), GAIM_HIG_BORDER);
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1438 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dbox,
12240
194dc3367706 [gaim-migrate @ 14542]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 12185
diff changeset
1439 gtk_label_new_with_mnemonic(_("_Advanced")));
11638
1821b40269a3 [gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11358
diff changeset
1440 gtk_widget_show(dbox);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1441
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1442 /** Setup the bottom frames. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1443 add_protocol_options(dialog, dbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1444 add_proxy_options(dialog, dbox);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1445
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1446 /* Setup the button box */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1447 bbox = gtk_hbutton_box_new();
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
1448 gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1449 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1450 gtk_box_pack_end(GTK_BOX(main_vbox), bbox, FALSE, TRUE, 0);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1451 gtk_widget_show(bbox);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1452
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1453 /* Register button */
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1454 button = gtk_button_new_with_label(_("Register"));
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1455 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1456 gtk_widget_show(button);
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1457
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1458 g_signal_connect(G_OBJECT(button), "clicked",
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1459 G_CALLBACK(register_account_prefs_cb), dialog);
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1460
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1461 dialog->register_button = button;
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1462
6732
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
1463 if (dialog->account == NULL)
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
1464 gtk_widget_set_sensitive(button, FALSE);
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
1465
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1466 if (!dialog->prpl_info || !dialog->prpl_info->register_user)
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
1467 gtk_widget_hide(button);
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1468
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1469 /* Cancel button */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1470 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1471 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1472 gtk_widget_show(button);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1473
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1474 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1475 G_CALLBACK(cancel_account_prefs_cb), dialog);
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1476
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1477 /* Save button */
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1478 button = gtk_button_new_from_stock(GTK_STOCK_SAVE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1479 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1480
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1481 if (dialog->account == NULL)
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1482 gtk_widget_set_sensitive(button, FALSE);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1483
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1484 gtk_widget_show(button);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1485
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1486 dialog->ok_button = button;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1487
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1488 /* Set up DND */
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1489 gtk_drag_dest_set(dialog->window,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1490 GTK_DEST_DEFAULT_MOTION |
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1491 GTK_DEST_DEFAULT_DROP,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1492 dnd_targets,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1493 sizeof(dnd_targets) / sizeof(GtkTargetEntry),
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1494 GDK_ACTION_COPY);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1495
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1496 g_signal_connect(G_OBJECT(dialog->window), "drag_data_received",
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1497 G_CALLBACK(account_dnd_recv), dialog);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1498
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1499 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1500 G_CALLBACK(ok_account_prefs_cb), dialog);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1501
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1502 /* Show the window. */
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
1503 gtk_widget_show(win);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1504 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1505
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1506 /**************************************************************************
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1507 * Accounts Dialog
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1508 **************************************************************************/
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1509 static void
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1510 signed_on_off_cb(GaimConnection *gc, gpointer user_data)
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1511 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1512 GaimAccount *account;
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1513 GaimGtkPulseData *pulse_data;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1514 GtkTreeModel *model;
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1515 GtkTreeIter iter;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1516 GdkPixbuf *pixbuf;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1517 size_t index;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1518
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1519 /* Don't need to do anything if the accounts window is not visible */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1520 if (accounts_window == NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1521 return;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1522
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1523 account = gaim_connection_get_account(gc);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1524 model = GTK_TREE_MODEL(accounts_window->model);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1525 index = g_list_index(gaim_accounts_get_all(), account);
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1526
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1527 if (gtk_tree_model_iter_nth_child(model, &iter, NULL, index))
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1528 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1529 gtk_tree_model_get(GTK_TREE_MODEL(accounts_window->model), &iter,
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1530 COLUMN_PULSE_DATA, &pulse_data, -1);
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1531
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1532 if (pulse_data != NULL)
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1533 {
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1534 if (pulse_data->timeout > 0)
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1535 g_source_remove(pulse_data->timeout);
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1536
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1537 g_object_unref(G_OBJECT(pulse_data->online_pixbuf));
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1538
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1539 g_free(pulse_data);
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1540 }
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1541
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1542 pixbuf = gaim_gtk_create_prpl_icon(account, 0.5);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1543 if ((pixbuf != NULL) && gaim_account_is_disconnected(account))
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1544 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1545
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1546 gtk_list_store_set(accounts_window->model, &iter,
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1547 COLUMN_ICON, pixbuf,
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1548 COLUMN_PULSE_DATA, NULL,
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1549 -1);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1550
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1551
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1552 if (pixbuf != NULL)
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1553 g_object_unref(G_OBJECT(pixbuf));
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1554 }
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1555 }
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1556
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1557 /*
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1558 * Get the GtkTreeIter of the specified account in the
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1559 * GtkListStore
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1560 */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1561 static gboolean
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1562 accounts_window_find_account_in_treemodel(GtkTreeIter *iter, GaimAccount *account)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1563 {
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1564 GtkTreeModel *model;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1565 GaimAccount *cur;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1566
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1567 g_return_val_if_fail(account != NULL, FALSE);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1568 g_return_val_if_fail(accounts_window != NULL, FALSE);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1569
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1570 model = GTK_TREE_MODEL(accounts_window->model);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1571
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1572 if (!gtk_tree_model_get_iter_first(model, iter))
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1573 return FALSE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1574
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1575 gtk_tree_model_get(model, iter, COLUMN_DATA, &cur, -1);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1576 if (cur == account)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1577 return TRUE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1578
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1579 while (gtk_tree_model_iter_next(model, iter))
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1580 {
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1581 gtk_tree_model_get(model, iter, COLUMN_DATA, &cur, -1);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1582 if (cur == account)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1583 return TRUE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1584 }
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1585
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1586 return FALSE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1587 }
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1588
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1589 static void
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1590 account_removed_cb(GaimAccount *account, gpointer user_data)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1591 {
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1592 AccountPrefsDialog *dialog;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1593 GtkTreeIter iter;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1594
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1595 /* If the account was being modified, close the edit window */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1596 if ((dialog = g_hash_table_lookup(account_pref_wins, account)) != NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1597 account_win_destroy_cb(NULL, NULL, dialog);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1598
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1599 if (accounts_window == NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1600 return;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1601
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1602 /* Remove the account from the GtkListStore */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1603 if (accounts_window_find_account_in_treemodel(&iter, account))
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1604 gtk_list_store_remove(accounts_window->model, &iter);
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1605
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1606 if (gaim_accounts_get_all() == NULL)
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1607 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook), 0);
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1608 }
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1609
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1610 static void
12070
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1611 account_abled_cb(GaimAccount *account, gpointer user_data)
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1612 {
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1613 GtkTreeIter iter;
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1614
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1615 if (accounts_window == NULL)
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1616 return;
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1617
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1618 /* update the account in the GtkListStore */
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1619 if (accounts_window_find_account_in_treemodel(&iter, account))
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1620 gtk_list_store_set(accounts_window->model, &iter,
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1621 COLUMN_ENABLED, GPOINTER_TO_INT(user_data),
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1622 -1);
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1623 }
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1624
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1625 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1626 drag_data_get_cb(GtkWidget *widget, GdkDragContext *ctx,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1627 GtkSelectionData *data, guint info, guint time,
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1628 AccountsWindow *dialog)
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1629 {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1630 if (data->target == gdk_atom_intern("GAIM_ACCOUNT", FALSE)) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1631 GtkTreeRowReference *ref;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1632 GtkTreePath *source_row;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1633 GtkTreeIter iter;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1634 GaimAccount *account = NULL;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1635 GValue val;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1636
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1637 ref = g_object_get_data(G_OBJECT(ctx), "gtk-tree-view-source-row");
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1638 source_row = gtk_tree_row_reference_get_path(ref);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1639
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1640 if (source_row == NULL)
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1641 return;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1642
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1643 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1644 source_row);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1645 val.g_type = 0;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1646 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1647 COLUMN_DATA, &val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1648
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1649 dialog->drag_iter = iter;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1650
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1651 account = g_value_get_pointer(&val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1652
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1653 gtk_selection_data_set(data, gdk_atom_intern("GAIM_ACCOUNT", FALSE),
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1654 8, (void *)&account, sizeof(account));
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1655
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1656 gtk_tree_path_free(source_row);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1657 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1658 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1659
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1660 static void
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1661 move_account_after(GtkListStore *store, GtkTreeIter *iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1662 GtkTreeIter *position)
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1663 {
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1664 GtkTreeIter new_iter;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1665 GaimAccount *account;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1666
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1667 gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1668 COLUMN_DATA, &account,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1669 -1);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1670
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1671 gtk_list_store_insert_after(store, &new_iter, position);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1672
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1673 set_account(store, &new_iter, account);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1674
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1675 gtk_list_store_remove(store, iter);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1676 }
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1677
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1678 static void
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1679 move_account_before(GtkListStore *store, GtkTreeIter *iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1680 GtkTreeIter *position)
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1681 {
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1682 GtkTreeIter new_iter;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1683 GaimAccount *account;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1684
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1685 gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1686 COLUMN_DATA, &account,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1687 -1);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1688
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1689 gtk_list_store_insert_before(store, &new_iter, position);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1690
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1691 set_account(store, &new_iter, account);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1692
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1693 gtk_list_store_remove(store, iter);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1694 }
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1695
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1696 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1697 drag_data_received_cb(GtkWidget *widget, GdkDragContext *ctx,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1698 guint x, guint y, GtkSelectionData *sd,
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1699 guint info, guint t, AccountsWindow *dialog)
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1700 {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1701 if (sd->target == gdk_atom_intern("GAIM_ACCOUNT", FALSE) && sd->data) {
12420
00bd43a1ac8a [gaim-migrate @ 14727]
Richard Laager <rlaager@pidgin.im>
parents: 12376
diff changeset
1702 gint dest_index;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1703 GaimAccount *a = NULL;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1704 GtkTreePath *path = NULL;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1705 GtkTreeViewDropPosition position;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1706
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1707 memcpy(&a, sd->data, sizeof(a));
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1708
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1709 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget), x, y,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1710 &path, &position)) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1711
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1712 GtkTreeIter iter;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1713 GaimAccount *account;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1714 GValue val;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1715
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1716 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1717 val.g_type = 0;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1718 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1719 COLUMN_DATA, &val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1720
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1721 account = g_value_get_pointer(&val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1722
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1723 switch (position) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1724 case GTK_TREE_VIEW_DROP_AFTER:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1725 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1726 move_account_after(dialog->model, &dialog->drag_iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1727 &iter);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1728 dest_index = g_list_index(gaim_accounts_get_all(),
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1729 account) + 1;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1730 break;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1731
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1732 case GTK_TREE_VIEW_DROP_BEFORE:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1733 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1734 dest_index = g_list_index(gaim_accounts_get_all(),
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1735 account);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1736
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1737 move_account_before(dialog->model, &dialog->drag_iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1738 &iter);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1739 break;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1740
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1741 default:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1742 return;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1743 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1744
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1745 gaim_accounts_reorder(a, dest_index);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1746 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1747 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1748 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1749
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1750 static gint
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1751 accedit_win_destroy_cb(GtkWidget *w, GdkEvent *event, AccountsWindow *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1752 {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1753 gaim_gtk_accounts_window_hide();
7159
7b8db8de4054 [gaim-migrate @ 7726]
Mark Doliner <markdoliner@pidgin.im>
parents: 7107
diff changeset
1754
6123
f6e1ae37ef35 [gaim-migrate @ 6597]
Mark Doliner <markdoliner@pidgin.im>
parents: 6122
diff changeset
1755 return 0;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1756 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1757
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1758 static gboolean
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1759 configure_cb(GtkWidget *w, GdkEventConfigure *event, AccountsWindow *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1760 {
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1761 if (GTK_WIDGET_VISIBLE(w)) {
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1762 int old_width = gaim_prefs_get_int("/gaim/gtk/accounts/dialog/width");
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1763 int col_width;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1764 int difference;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1765
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1766 gaim_prefs_set_int("/gaim/gtk/accounts/dialog/width", event->width);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1767 gaim_prefs_set_int("/gaim/gtk/accounts/dialog/height", event->height);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1768
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1769 col_width = gtk_tree_view_column_get_width(dialog->screenname_col);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1770
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1771 if (col_width == 0)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1772 return FALSE;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1773
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1774 difference = (MAX(old_width, event->width) -
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1775 MIN(old_width, event->width));
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1776
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1777 if (difference == 0)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1778 return FALSE;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1779
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1780 if (old_width < event->width)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1781 gtk_tree_view_column_set_min_width(dialog->screenname_col,
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1782 col_width + difference);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1783 else
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1784 gtk_tree_view_column_set_max_width(dialog->screenname_col,
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1785 col_width - difference);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1786 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1787
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1788 return FALSE;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1789 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1790
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1791 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1792 add_account_cb(GtkWidget *w, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1793 {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1794 gaim_gtk_account_dialog_show(GAIM_GTK_ADD_ACCOUNT_DIALOG, NULL);
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1795 }
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1796
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1797 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1798 modify_account_sel(GtkTreeModel *model, GtkTreePath *path,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1799 GtkTreeIter *iter, gpointer data)
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1800 {
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1801 GaimAccount *account;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1802
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1803 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1);
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1804
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1805 if (account != NULL)
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1806 gaim_gtk_account_dialog_show(GAIM_GTK_MODIFY_ACCOUNT_DIALOG, account);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1807 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1808
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1809 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1810 modify_account_cb(GtkWidget *w, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1811 {
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1812 GtkTreeSelection *selection;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1813
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1814 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1815
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1816 gtk_tree_selection_selected_foreach(selection, modify_account_sel, dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1817 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1818
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1819 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1820 delete_account_cb(GaimAccount *account)
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1821 {
6368
ab9f99269dfe [gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents: 6344
diff changeset
1822 gaim_accounts_delete(account);
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1823 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1824
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1825 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1826 ask_delete_account_sel(GtkTreeModel *model, GtkTreePath *path,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1827 GtkTreeIter *iter, gpointer data)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1828 {
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1829 GaimAccount *account;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1830
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1831 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1);
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1832
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1833 if (account != NULL) {
7677
4f40f17e1ad9 [gaim-migrate @ 8321]
Mark Doliner <markdoliner@pidgin.im>
parents: 7480
diff changeset
1834 char *buf;
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1835
7677
4f40f17e1ad9 [gaim-migrate @ 8321]
Mark Doliner <markdoliner@pidgin.im>
parents: 7480
diff changeset
1836 buf = g_strdup_printf(_("Are you sure you want to delete %s?"),
4f40f17e1ad9 [gaim-migrate @ 8321]
Mark Doliner <markdoliner@pidgin.im>
parents: 7480
diff changeset
1837 gaim_account_get_username(account));
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1838
9814
d2d665f68e4f [gaim-migrate @ 10685]
Dave West <kat@users.sourceforge.net>
parents: 9791
diff changeset
1839 gaim_request_close_with_handle(account);
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10014
diff changeset
1840 gaim_request_action(account, NULL, buf, NULL, 0, account, 2,
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1841 _("Delete"), delete_account_cb,
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1842 _("Cancel"), NULL);
7677
4f40f17e1ad9 [gaim-migrate @ 8321]
Mark Doliner <markdoliner@pidgin.im>
parents: 7480
diff changeset
1843 g_free(buf);
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1844 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1845 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1846
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1847 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1848 ask_delete_account_cb(GtkWidget *w, AccountsWindow *dialog)
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1849 {
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1850 GtkTreeSelection *selection;
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1851
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1852 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1853
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1854 gtk_tree_selection_selected_foreach(selection, ask_delete_account_sel,
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1855 dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1856 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1857
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1858 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1859 close_accounts_cb(GtkWidget *w, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1860 {
5617
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1861 gtk_widget_destroy(dialog->window);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1862
7159
7b8db8de4054 [gaim-migrate @ 7726]
Mark Doliner <markdoliner@pidgin.im>
parents: 7107
diff changeset
1863 gaim_gtk_accounts_window_hide();
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1864 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1865
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1866
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1867 static void
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1868 enabled_cb(GtkCellRendererToggle *renderer, gchar *path_str,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1869 gpointer data)
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1870 {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1871 AccountsWindow *dialog = (AccountsWindow *)data;
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1872 GaimAccount *account;
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1873 GtkTreeModel *model = GTK_TREE_MODEL(dialog->model);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1874 GtkTreeIter iter;
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1875 gboolean enabled;
11724
d3f71bc34b4f [gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents: 11654
diff changeset
1876 const GaimSavedStatus *saved_status;
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1877
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1878 gtk_tree_model_get_iter_from_string(model, &iter, path_str);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1879 gtk_tree_model_get(model, &iter,
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1880 COLUMN_DATA, &account,
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1881 COLUMN_ENABLED, &enabled,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1882 -1);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1883
14044
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1884 /*
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1885 * If we just enabled the account, then set the statuses
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1886 * to the current status.
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1887 */
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1888 if (!enabled)
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1889 {
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1890 saved_status = gaim_savedstatus_get_current();
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1891 gaim_savedstatus_activate_for_account(saved_status, account);
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1892 }
11724
d3f71bc34b4f [gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents: 11654
diff changeset
1893
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1894 gaim_account_set_enabled(account, GAIM_GTK_UI, !enabled);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1895 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1896
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1897 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1898 add_columns(GtkWidget *treeview, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1899 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1900 GtkCellRenderer *renderer;
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1901 GtkTreeViewColumn *column;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1902
10159
5e8afc7db137 [gaim-migrate @ 11240]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
1903 /* Screen Name column */
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1904 column = gtk_tree_view_column_new();
6623
75ba9eb9d3f8 [gaim-migrate @ 7147]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6621
diff changeset
1905 gtk_tree_view_column_set_title(column, _("Screen Name"));
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1906 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
9519
a01fc1d5872d [gaim-migrate @ 10346]
Luke Schierer <lschiere@pidgin.im>
parents: 9496
diff changeset
1907 gtk_tree_view_column_set_resizable(column, TRUE);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1908
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1909 /* Icon */
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1910 renderer = gtk_cell_renderer_pixbuf_new();
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1911 gtk_tree_view_column_pack_start(column, renderer, FALSE);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1912 gtk_tree_view_column_add_attribute(column, renderer,
5693
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1913 "pixbuf", COLUMN_ICON);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1914
10159
5e8afc7db137 [gaim-migrate @ 11240]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
1915 /* Screen Name */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1916 renderer = gtk_cell_renderer_text_new();
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1917 gtk_tree_view_column_pack_start(column, renderer, TRUE);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1918 gtk_tree_view_column_add_attribute(column, renderer,
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1919 "text", COLUMN_SCREENNAME);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1920 dialog->screenname_col = column;
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1921
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1922 /* Enabled */
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1923 renderer = gtk_cell_renderer_toggle_new();
5782
84530ccb6e23 [gaim-migrate @ 6207]
Christian Hammond <chipx86@chipx86.com>
parents: 5781
diff changeset
1924
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1925 g_signal_connect(G_OBJECT(renderer), "toggled",
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1926 G_CALLBACK(enabled_cb), dialog);
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1927
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1928 column = gtk_tree_view_column_new_with_attributes(_("Enabled"),
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1929 renderer, "active", COLUMN_ENABLED, NULL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1930
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1931 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
9519
a01fc1d5872d [gaim-migrate @ 10346]
Luke Schierer <lschiere@pidgin.im>
parents: 9496
diff changeset
1932 gtk_tree_view_column_set_resizable(column, TRUE);
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1933
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1934 /* Protocol name */
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1935 column = gtk_tree_view_column_new();
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1936 gtk_tree_view_column_set_title(column, _("Protocol"));
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1937 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
9519
a01fc1d5872d [gaim-migrate @ 10346]
Luke Schierer <lschiere@pidgin.im>
parents: 9496
diff changeset
1938 gtk_tree_view_column_set_resizable(column, TRUE);
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1939
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1940 renderer = gtk_cell_renderer_text_new();
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1941 gtk_tree_view_column_pack_start(column, renderer, TRUE);
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1942 gtk_tree_view_column_add_attribute(column, renderer,
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1943 "text", COLUMN_PROTOCOL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1944 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1945
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1946 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1947 set_account(GtkListStore *store, GtkTreeIter *iter, GaimAccount *account)
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1948 {
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1949 GdkPixbuf *pixbuf;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1950
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1951 pixbuf = gaim_gtk_create_prpl_icon(account, 0.5);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1952 if ((pixbuf != NULL) && gaim_account_is_disconnected(account))
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1953 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE);
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1954
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1955 gtk_list_store_set(store, iter,
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1956 COLUMN_ICON, pixbuf,
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1957 COLUMN_SCREENNAME, gaim_account_get_username(account),
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1958 COLUMN_ENABLED, gaim_account_get_enabled(account, GAIM_GTK_UI),
9699
d1ca5dd91cc2 [gaim-migrate @ 10558]
Mark Doliner <markdoliner@pidgin.im>
parents: 9662
diff changeset
1959 COLUMN_PROTOCOL, gaim_account_get_protocol_name(account),
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1960 COLUMN_DATA, account,
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1961 -1);
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1962
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1963 if (pixbuf != NULL)
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1964 g_object_unref(G_OBJECT(pixbuf));
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1965 }
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1966
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1967 static void
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1968 add_account_to_liststore(GaimAccount *account, gpointer user_data)
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1969 {
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1970 GtkTreeIter iter;
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1971
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1972 if (accounts_window == NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1973 return;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1974
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1975 gtk_list_store_append(accounts_window->model, &iter);
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1976 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook),1);
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1977
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1978 set_account(accounts_window->model, &iter, account);
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1979 }
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1980
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1981 static gboolean
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1982 populate_accounts_list(AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1983 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1984 GList *l;
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1985 gboolean ret = FALSE;
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1986
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1987 gtk_list_store_clear(dialog->model);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1988
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1989 for (l = gaim_accounts_get_all(); l != NULL; l = l->next) {
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1990 ret = TRUE;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1991 add_account_to_liststore((GaimAccount *)l->data, NULL);
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1992 }
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1993
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1994 return ret;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1995 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1996
8406
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
1997 #if !GTK_CHECK_VERSION(2,2,0)
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
1998 static void
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
1999 get_selected_helper(GtkTreeModel *model, GtkTreePath *path,
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2000 GtkTreeIter *iter, gpointer user_data)
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2001 {
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2002 *((gboolean *)user_data) = TRUE;
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2003 }
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2004 #endif
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2005
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2006 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2007 account_selected_cb(GtkTreeSelection *sel, AccountsWindow *dialog)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2008 {
8406
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2009 gboolean selected = FALSE;
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2010
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2011 #if GTK_CHECK_VERSION(2,2,0)
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2012 selected = (gtk_tree_selection_count_selected_rows(sel) > 0);
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2013 #else
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2014 gtk_tree_selection_selected_foreach(sel, get_selected_helper, &selected);
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2015 #endif
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2016
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2017 gtk_widget_set_sensitive(dialog->modify_button, selected);
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2018 gtk_widget_set_sensitive(dialog->delete_button, selected);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2019 }
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2020
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2021 static gboolean
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2022 account_treeview_double_click_cb(GtkTreeView *treeview, GdkEventButton *event, gpointer user_data)
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2023 {
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2024 AccountsWindow *dialog;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2025 GtkTreePath *path;
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2026 GtkTreeViewColumn *column;
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2027 GtkTreeIter iter;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2028 GaimAccount *account;
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2029 const gchar *title;
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2030
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2031 dialog = (AccountsWindow *)user_data;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2032
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2033 /* Figure out which node was clicked */
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2034 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(dialog->treeview), event->x, event->y, &path, &column, NULL, NULL))
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2035 return FALSE;
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2036 title = gtk_tree_view_column_get_title(column);
12671
6297334c5e74 [gaim-migrate @ 15014]
Will Thompson <resiak@pidgin.im>
parents: 12601
diff changeset
2037 /* The -1 is required because the first two columns of the list
6297334c5e74 [gaim-migrate @ 15014]
Will Thompson <resiak@pidgin.im>
parents: 12601
diff changeset
2038 * store are displayed as only one column in the tree view. */
6297334c5e74 [gaim-migrate @ 15014]
Will Thompson <resiak@pidgin.im>
parents: 12601
diff changeset
2039 column = gtk_tree_view_get_column(treeview, COLUMN_ENABLED-1);
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2040 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path);
10641
0a83c0aea347 [gaim-migrate @ 12149]
Mark Doliner <markdoliner@pidgin.im>
parents: 10640
diff changeset
2041 gtk_tree_path_free(path);
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2042 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, COLUMN_DATA, &account, -1);
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2043
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2044 if ((account != NULL) && (event->button == 1) &&
12121
cc63210cdc8b [gaim-migrate @ 14421]
Daniel Atallah <datallah@pidgin.im>
parents: 12106
diff changeset
2045 (event->type == GDK_2BUTTON_PRESS) &&
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2046 (strcmp(gtk_tree_view_column_get_title(column), title)))
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2047 {
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2048 gaim_gtk_account_dialog_show(GAIM_GTK_MODIFY_ACCOUNT_DIALOG, account);
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2049 return TRUE;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2050 }
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2051
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2052 return FALSE;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2053 }
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2054
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2055 static GtkWidget *
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2056 create_accounts_list(AccountsWindow *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2057 {
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2058 GtkWidget *frame;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2059 GtkWidget *sw;
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2060 GtkWidget *label;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2061 GtkWidget *treeview;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2062 GtkTreeSelection *sel;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2063 GtkTargetEntry gte[] = {{"GAIM_ACCOUNT", GTK_TARGET_SAME_APP, 0}};
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2064
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2065 frame = gtk_frame_new(NULL);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2066 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2067
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2068 accounts_window->notebook = gtk_notebook_new();
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2069 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(accounts_window->notebook), FALSE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2070 gtk_notebook_set_show_border(GTK_NOTEBOOK(accounts_window->notebook), FALSE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2071 gtk_container_add(GTK_CONTAINER(frame), accounts_window->notebook);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2072
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2073
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2074 /* Create a helpful first-time-use label */
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2075 label = gtk_label_new(NULL);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2076 gtk_label_set_markup(GTK_LABEL(label), _(
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2077 "<span size='larger' weight='bold'>Welcome to Gaim!</span>\n\n"
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2078
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2079 "You have no IM accounts configured. To start connecting with Gaim "
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2080 "press the <b>Add</b> button below and configure your first "
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2081 "account. If you want Gaim to connect to multiple IM accounts, "
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2082 "press <b>Add</b> again to configure them all.\n\n"
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2083
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2084 "You can come back to this window to add, edit, or remove "
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2085 "accounts from <b>Accounts \342\207\250 Add/Edit</b> in the Buddy "
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2086 "List window"));
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2087 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2088 gtk_widget_show(label);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2089
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2090 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2091 gtk_notebook_append_page(GTK_NOTEBOOK(accounts_window->notebook), label, NULL);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2092
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2093 /* Create the scrolled window. */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2094 sw = gtk_scrolled_window_new(0, 0);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2095 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
13775
aac9281f8da3 [gaim-migrate @ 16185]
Marc E. <santusmarc@gmail.com>
parents: 13702
diff changeset
2096 GTK_POLICY_AUTOMATIC,
aac9281f8da3 [gaim-migrate @ 16185]
Marc E. <santusmarc@gmail.com>
parents: 13702
diff changeset
2097 GTK_POLICY_AUTOMATIC);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2098 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2099 GTK_SHADOW_NONE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2100 gtk_notebook_append_page(GTK_NOTEBOOK(accounts_window->notebook), sw, NULL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2101 gtk_widget_show(sw);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2102
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2103 /* Create the list model. */
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
2104 dialog->model = gtk_list_store_new(NUM_COLUMNS,
14921
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2105 GDK_TYPE_PIXBUF, /* COLUMN_ICON */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2106 G_TYPE_STRING, /* COLUMN_SCREENNAME */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2107 G_TYPE_BOOLEAN, /* COLUMN_ENABLED */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2108 G_TYPE_STRING, /* COLUMN_PROTOCOL */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2109 G_TYPE_POINTER, /* COLUMN_DATA */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2110 G_TYPE_POINTER /* COLUMN_PULSE_DATA */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2111 );
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2112
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2113 /* And now the actual treeview */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2114 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model));
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
2115 dialog->treeview = treeview;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2116 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2117
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2118 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2119 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2120 g_signal_connect(G_OBJECT(sel), "changed",
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2121 G_CALLBACK(account_selected_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2122
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2123 /* Handle double-clicking */
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2124 g_signal_connect(G_OBJECT(treeview), "button_press_event",
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2125 G_CALLBACK(account_treeview_double_click_cb), dialog);
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2126
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2127 gtk_container_add(GTK_CONTAINER(sw), treeview);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2128
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2129 add_columns(treeview, dialog);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
2130
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2131 if (populate_accounts_list(dialog))
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2132 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook), 1);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2133 else
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2134 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook), 0);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2135
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2136 /* Setup DND. I wanna be an orc! */
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2137 gtk_tree_view_enable_model_drag_source(
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2138 GTK_TREE_VIEW(treeview), GDK_BUTTON1_MASK, gte,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
2139 1, GDK_ACTION_COPY);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2140 gtk_tree_view_enable_model_drag_dest(
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
2141 GTK_TREE_VIEW(treeview), gte, 1,
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2142 GDK_ACTION_COPY | GDK_ACTION_MOVE);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2143
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2144 g_signal_connect(G_OBJECT(treeview), "drag-data-received",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2145 G_CALLBACK(drag_data_received_cb), dialog);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2146 g_signal_connect(G_OBJECT(treeview), "drag-data-get",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2147 G_CALLBACK(drag_data_get_cb), dialog);
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2148
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2149 gtk_widget_show_all(frame);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2150 return frame;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2151 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2152
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2153 static void
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2154 account_modified_cb(GaimAccount *account, AccountsWindow *window)
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2155 {
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2156 GtkTreeIter iter;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2157
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2158 if (!accounts_window_find_account_in_treemodel(&iter, account))
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2159 return;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2160
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2161 set_account(window->model, &iter, account);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2162 }
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2163
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2164 void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2165 gaim_gtk_accounts_window_show(void)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2166 {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2167 AccountsWindow *dialog;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2168 GtkWidget *win;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2169 GtkWidget *vbox;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2170 GtkWidget *bbox;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2171 GtkWidget *sw;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2172 GtkWidget *button;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2173 int width, height;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2174
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6368
diff changeset
2175 if (accounts_window != NULL) {
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
2176 gtk_window_present(GTK_WINDOW(accounts_window->window));
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2177 return;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6368
diff changeset
2178 }
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2179
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2180 accounts_window = dialog = g_new0(AccountsWindow, 1);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2181
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2182 width = gaim_prefs_get_int("/gaim/gtk/accounts/dialog/width");
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2183 height = gaim_prefs_get_int("/gaim/gtk/accounts/dialog/height");
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2184
5803
4f448aede95e [gaim-migrate @ 6233]
Christian Hammond <chipx86@chipx86.com>
parents: 5802
diff changeset
2185 dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2186 gtk_window_set_default_size(GTK_WINDOW(win), width, height);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2187 gtk_window_set_role(GTK_WINDOW(win), "accounts");
5693
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
2188 gtk_window_set_title(GTK_WINDOW(win), _("Accounts"));
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
2189 gtk_container_set_border_width(GTK_CONTAINER(win), GAIM_HIG_BORDER);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2190
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2191 g_signal_connect(G_OBJECT(win), "delete_event",
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2192 G_CALLBACK(accedit_win_destroy_cb), accounts_window);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2193 g_signal_connect(G_OBJECT(win), "configure_event",
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2194 G_CALLBACK(configure_cb), accounts_window);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2195
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2196 /* Setup the vbox */
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
2197 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2198 gtk_container_add(GTK_CONTAINER(win), vbox);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2199 gtk_widget_show(vbox);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2200
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2201 /* Setup the scrolled window that will contain the list of accounts. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2202 sw = create_accounts_list(dialog);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2203 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2204 gtk_widget_show(sw);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2205
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2206 /* Button box. */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2207 bbox = gtk_hbutton_box_new();
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11137
diff changeset
2208 gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2209 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2210 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2211 gtk_widget_show(bbox);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2212
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2213 /* Add button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2214 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2215 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2216 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2217
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2218 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2219 G_CALLBACK(add_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2220
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2221 /* Modify button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2222 button = gtk_button_new_from_stock(GAIM_STOCK_MODIFY);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2223 dialog->modify_button = button;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2224 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2225 gtk_widget_set_sensitive(button, FALSE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2226 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2227
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2228 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2229 G_CALLBACK(modify_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2230
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2231 /* Delete button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2232 button = gtk_button_new_from_stock(GTK_STOCK_DELETE);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2233 dialog->delete_button = button;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2234 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2235 gtk_widget_set_sensitive(button, FALSE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2236 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2237
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2238 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2239 G_CALLBACK(ask_delete_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2240
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2241 /* Close button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2242 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2243 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2244 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2245
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2246 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2247 G_CALLBACK(close_accounts_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2248
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2249 gaim_signal_connect(gaim_gtk_account_get_handle(), "account-modified",
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2250 accounts_window,
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2251 GAIM_CALLBACK(account_modified_cb), accounts_window);
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
2252
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2253 gtk_widget_show(win);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2254 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2255
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2256 void
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2257 gaim_gtk_accounts_window_hide(void)
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2258 {
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2259 if (accounts_window == NULL)
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2260 return;
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2261
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2262 gaim_signals_disconnect_by_handle(accounts_window);
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2263
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2264 g_free(accounts_window);
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2265 accounts_window = NULL;
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2266
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2267 /* See if we're the main window here. */
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2268 if (GAIM_GTK_BLIST(gaim_get_blist())->window == NULL &&
10315
2738b56121ca [gaim-migrate @ 11515]
Sean Egan <seanegan@pidgin.im>
parents: 10297
diff changeset
2269 gaim_connections_get_all() == NULL) {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2270
6179
4df73df94250 [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6141
diff changeset
2271 gaim_core_quit();
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2272 }
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2273 }
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2274
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2275 static void
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2276 free_add_user_data(GaimGtkAccountAddUserData *data)
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2277 {
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2278 g_free(data->username);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
2279 g_free(data->alias);
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2280 g_free(data);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2281 }
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2282
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2283 static void
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2284 add_user_cb(GaimGtkAccountAddUserData *data)
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2285 {
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2286 GaimConnection *gc = gaim_account_get_connection(data->account);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2287
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2288 if (g_list_find(gaim_connections_get_all(), gc))
7060
717cbeb22b6d [gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
2289 {
717cbeb22b6d [gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
2290 gaim_blist_request_add_buddy(data->account, data->username,
717cbeb22b6d [gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
2291 NULL, data->alias);
717cbeb22b6d [gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
2292 }
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2293
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2294 free_add_user_data(data);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2295 }
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2296
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2297 static char *
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2298 make_info(GaimAccount *account, GaimConnection *gc, const char *remote_user,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2299 const char *id, const char *alias, const char *msg)
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2300 {
12976
aedbdb6f9adb [gaim-migrate @ 15329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12960
diff changeset
2301 if (msg != NULL && *msg == '\0')
12960
69571cc82fda [gaim-migrate @ 15313]
Richard Laager <rlaager@pidgin.im>
parents: 12843
diff changeset
2302 msg = NULL;
69571cc82fda [gaim-migrate @ 15313]
Richard Laager <rlaager@pidgin.im>
parents: 12843
diff changeset
2303
12286
08d994091c36 [gaim-migrate @ 14590]
Etan Reisner <deryni@pidgin.im>
parents: 12285
diff changeset
2304 return g_strdup_printf(_("%s%s%s%s has made %s his or her buddy%s%s"),
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2305 remote_user,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2306 (alias != NULL ? " (" : ""),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2307 (alias != NULL ? alias : ""),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2308 (alias != NULL ? ")" : ""),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2309 (id != NULL
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2310 ? id
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2311 : (gaim_connection_get_display_name(gc) != NULL
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2312 ? gaim_connection_get_display_name(gc)
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2313 : gaim_account_get_username(account))),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2314 (msg != NULL ? ": " : "."),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2315 (msg != NULL ? msg : ""));
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2316 }
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2317
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2318 static void
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2319 gaim_gtk_accounts_notify_added(GaimAccount *account, const char *remote_user,
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2320 const char *id, const char *alias,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2321 const char *msg)
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2322 {
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2323 char *buffer;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2324 GaimConnection *gc;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2325
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2326 gc = gaim_account_get_connection(account);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2327
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2328 buffer = make_info(account, gc, remote_user, id, alias, msg);
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2329
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2330 gaim_notify_info(NULL, NULL, buffer, NULL);
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2331
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2332 g_free(buffer);
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2333 }
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2334
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2335 static void
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2336 gaim_gtk_accounts_request_add(GaimAccount *account, const char *remote_user,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2337 const char *id, const char *alias,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2338 const char *msg)
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2339 {
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2340 char *buffer;
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2341 GaimConnection *gc;
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2342 GaimGtkAccountAddUserData *data;
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2343
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2344 gc = gaim_account_get_connection(account);
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2345
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2346 data = g_new0(GaimGtkAccountAddUserData, 1);
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2347 data->account = account;
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2348 data->username = g_strdup(remote_user);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
2349 data->alias = g_strdup(alias);
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2350
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2351 buffer = make_info(account, gc, remote_user, id, alias, msg);
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2352
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2353 gaim_request_action(NULL, NULL, _("Add buddy to your list?"),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2354 buffer, GAIM_DEFAULT_ACTION_NONE, data, 2,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2355 _("Add"), G_CALLBACK(add_user_cb),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2356 _("Cancel"), G_CALLBACK(free_add_user_data));
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2357
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2358 g_free(buffer);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2359 }
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2360
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2361 static GaimAccountUiOps ui_ops =
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2362 {
9944
71ef020ec4b0 [gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents: 9814
diff changeset
2363 gaim_gtk_accounts_notify_added,
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2364 NULL,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2365 gaim_gtk_accounts_request_add
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2366 };
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2367
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2368 GaimAccountUiOps *
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2369 gaim_gtk_accounts_get_ui_ops(void)
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2370 {
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2371 return &ui_ops;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2372 }
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2373
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2374 void *
13014
fa17f785b6fe [gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents: 12976
diff changeset
2375 gaim_gtk_account_get_handle(void) {
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2376 static int handle;
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2377
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2378 return &handle;
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2379 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2380
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2381 void
10163
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2382 gaim_gtk_account_init(void)
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2383 {
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2384 gaim_prefs_add_none("/gaim/gtk/accounts");
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2385 gaim_prefs_add_none("/gaim/gtk/accounts/dialog");
12336
bdcb02016b84 [gaim-migrate @ 14640]
Mark Doliner <markdoliner@pidgin.im>
parents: 12286
diff changeset
2386 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/width", 520);
bdcb02016b84 [gaim-migrate @ 14640]
Mark Doliner <markdoliner@pidgin.im>
parents: 12286
diff changeset
2387 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/height", 321);
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
2388 gaim_prefs_add_string("/gaim/gtk/accounts/buddyicon", NULL);
10163
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2389
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2390 gaim_signal_register(gaim_gtk_account_get_handle(), "account-modified",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2391 gaim_marshal_VOID__POINTER, NULL, 1,
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2392 gaim_value_new(GAIM_TYPE_SUBTYPE,
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2393 GAIM_SUBTYPE_ACCOUNT));
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2394
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2395 /* Setup some gaim signal handlers. */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2396 gaim_signal_connect(gaim_connections_get_handle(), "signed-on",
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2397 gaim_gtk_account_get_handle(),
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2398 GAIM_CALLBACK(signed_on_off_cb), NULL);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2399 gaim_signal_connect(gaim_connections_get_handle(), "signed-off",
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2400 gaim_gtk_account_get_handle(),
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2401 GAIM_CALLBACK(signed_on_off_cb), NULL);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2402 gaim_signal_connect(gaim_accounts_get_handle(), "account-added",
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2403 gaim_gtk_account_get_handle(),
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2404 GAIM_CALLBACK(add_account_to_liststore), NULL);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2405 gaim_signal_connect(gaim_accounts_get_handle(), "account-removed",
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2406 gaim_gtk_account_get_handle(),
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2407 GAIM_CALLBACK(account_removed_cb), NULL);
12070
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
2408 gaim_signal_connect(gaim_accounts_get_handle(), "account-disabled",
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
2409 gaim_gtk_account_get_handle(),
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
2410 GAIM_CALLBACK(account_abled_cb), GINT_TO_POINTER(FALSE));
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
2411 gaim_signal_connect(gaim_accounts_get_handle(), "account-enabled",
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
2412 gaim_gtk_account_get_handle(),
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
2413 GAIM_CALLBACK(account_abled_cb), GINT_TO_POINTER(TRUE));
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2414
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2415 account_pref_wins =
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2416 g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL);
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2417 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2418
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2419 void
10163
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2420 gaim_gtk_account_uninit(void)
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2421 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2422 /*
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2423 * TODO: Need to free all the dialogs in here. Could probably create
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2424 * a callback function to use for the free-some-data-function
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2425 * parameter of g_hash_table_new_full, above.
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2426 */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2427 g_hash_table_destroy(account_pref_wins);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2428
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2429 gaim_signals_disconnect_by_handle(gaim_gtk_account_get_handle());
9617
a455a3cfcfeb [gaim-migrate @ 10461]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9609
diff changeset
2430 gaim_signals_unregister_by_instance(gaim_gtk_account_get_handle());
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2431 }
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2432

mercurial