src/gtkaccount.c

Sat, 12 Jul 2003 19:08:19 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sat, 12 Jul 2003 19:08:19 +0000
changeset 6101
c3762fa398c4
parent 6092
e1cc22bc2463
child 6119
5b4c66789a8c
permissions
-rw-r--r--

[gaim-migrate @ 6560]
This should fix some icon uploading looping.

Sean, the problem was that, when adding the md5 sum to ssi, the code was
checking if it existed by looking for an item named "0", but it was
actually adding an item named "1." So for accounts with no icon info yet,
Gaim would end up getting in a loop and spiraling into oblivion, only far
less dramatic.

5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file gtkaccount.c Account Editor dialog
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 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 * Copyright (C) 2002-2003, Christian Hammond <chipx86@gnupdate.org>
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 * 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
11 * the Free Software Foundation; either version 2 of the License, or
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * (at your option) any later version.
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * GNU General Public License for more details.
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 */
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
23 #include "internal.h"
5717
2f3a377de638 [gaim-migrate @ 6138]
Nathan Walp <nwalp@pidgin.im>
parents: 5715
diff changeset
24
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 #include "account.h"
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
26 #include "accountopt.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
27 #include "debug.h"
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
28 #include "event.h"
5852
33a438531278 [gaim-migrate @ 6283]
Christian Hammond <chipx86@chipx86.com>
parents: 5851
diff changeset
29 #include "plugin.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
30 #include "prefs.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
31 #include "request.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
32 #include "util.h"
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
33
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
34 #include "gaim-disclosure.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
35 #include "gtkaccount.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
36 #include "gtkblist.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
37 #include "gtkutils.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
38 #include "stock.h"
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
39
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
40 #include "ui.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
41
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
42 /* XXX for do_quit() */
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
43 #include "gaim.h"
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
44
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
45 enum
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
46 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
47 COLUMN_ICON,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
48 COLUMN_SCREENNAME,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
49 COLUMN_ONLINE,
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
50 COLUMN_AUTOLOGIN,
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
51 COLUMN_PROTOCOL,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
52 COLUMN_DATA,
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
53 NUM_COLUMNS
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
54 };
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
56 typedef enum
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
57 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
58 ADD_ACCOUNT_DIALOG,
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
59 MODIFY_ACCOUNT_DIALOG
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
60
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
61 } AccountPrefsDialogType;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
62
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 typedef struct
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 {
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 GtkWidget *window;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
66 GtkWidget *treeview;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
68 GtkWidget *modify_button;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
69 GtkWidget *delete_button;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
70
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
71 GtkListStore *model;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
72 GtkTreeIter drag_iter;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
73
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
74 GtkTreeViewColumn *screenname_col;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
75
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76 } AccountsDialog;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
78 typedef struct
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
79 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
80 AccountPrefsDialogType type;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
81
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
82 AccountsDialog *accounts_dialog;
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
83
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
84 GaimAccount *account;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
85 GaimProtocol protocol;
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
86 char *protocol_id;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
87 GaimPlugin *plugin;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
88 GaimPluginProtocolInfo *prpl_info;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
89
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
90 GaimProxyType new_proxy_type;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
91
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
92 GList *user_split_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
93 GList *protocol_opt_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
94
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
95 GtkSizeGroup *sg;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
96 GtkWidget *window;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
97
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
98 GtkWidget *top_vbox;
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
99 GtkWidget *bottom_vbox;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
100 GtkWidget *ok_button;
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
101
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
102 /* Login Options */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
103 GtkWidget *login_frame;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
104 GtkWidget *protocol_menu;
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
105 GtkWidget *password_box;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
106 GtkWidget *screenname_entry;
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
107 GtkWidget *password_entry;
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
108 GtkWidget *alias_entry;
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
109 GtkWidget *remember_pass_check;
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
110 GtkWidget *auto_login_check;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
111
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
112 /* User Options */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
113 GtkWidget *user_frame;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
114 GtkWidget *new_mail_check;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
115 GtkWidget *buddy_icon_hbox;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
116 GtkWidget *buddy_icon_entry;
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
117 GtkWidget *buddy_icon_filesel;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
118 GtkWidget *buddy_icon_preview;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
119 GtkWidget *buddy_icon_text;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
120
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
121 /* Protocol Options */
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
122 GtkWidget *protocol_frame;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
123
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
124 /* Proxy Options */
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
125 GtkWidget *proxy_frame;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
126 GtkWidget *proxy_vbox;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
127 GtkWidget *proxy_dropdown;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
128 GtkWidget *proxy_menu;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
129 GtkWidget *proxy_host_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
130 GtkWidget *proxy_port_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
131 GtkWidget *proxy_user_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
132 GtkWidget *proxy_pass_entry;
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
133
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
134 } AccountPrefsDialog;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
135
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
136
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
137 static AccountsDialog *accounts_dialog = NULL;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
138
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
139 static void add_account(AccountsDialog *dialog, GaimAccount *account);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
140 static void set_account(GtkListStore *store, GtkTreeIter *iter,
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
141 GaimAccount *account);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
142
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
143 static char *
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
144 proto_name(int proto)
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
145 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
146 GaimPlugin *p = gaim_find_prpl(proto);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
147
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
148 return ((p && p->info->name) ? _(p->info->name) : _("Unknown"));
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
149 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
150
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
151 /**************************************************************************
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
152 * Add/Modify Account dialog
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
153 **************************************************************************/
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
154 static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
155 static void add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
156 static void add_protocol_options(AccountPrefsDialog *dialog,
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
157 GtkWidget *parent);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
158 static void add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent);
5638
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 static GtkWidget *
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
161 add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent,
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
162 const char *text, GtkWidget *widget)
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
163 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
164 GtkWidget *hbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
165 GtkWidget *label;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
166
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
167 hbox = gtk_hbox_new(FALSE, 6);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
168 gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 0);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
169 gtk_widget_show(hbox);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
170
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
171 label = gtk_label_new_with_mnemonic(text);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
172 gtk_size_group_add_widget(dialog->sg, label);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
173 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
174 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
175 gtk_widget_show(label);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
176
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
177 gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
178 gtk_widget_show(widget);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
179
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
180 return hbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
181 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
182
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
183 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
184 set_account_protocol_cb(GtkWidget *item, GaimProtocol protocol,
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
185 AccountPrefsDialog *dialog)
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
186 {
5955
4f964635c095 [gaim-migrate @ 6399]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
187 if ((dialog->plugin = gaim_find_prpl(protocol)) != NULL) {
5943
8a052155157a [gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents: 5900
diff changeset
188 dialog->prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(dialog->plugin);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
189 dialog->protocol = dialog->prpl_info->protocol;
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
190
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
191 if (dialog->protocol_id != NULL)
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
192 g_free(dialog->protocol_id);
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
193
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
194 dialog->protocol_id = g_strdup(dialog->plugin->info->id);
5955
4f964635c095 [gaim-migrate @ 6399]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
195 }
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
196
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
197 add_login_options(dialog, dialog->top_vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
198 add_user_options(dialog, dialog->top_vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
199 add_protocol_options(dialog, dialog->bottom_vbox);
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
200 }
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
201
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
202 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
203 screenname_changed_cb(GtkEntry *entry, AccountPrefsDialog *dialog)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
204 {
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
205 if (dialog->ok_button == NULL)
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
206 return;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
207
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
208 gtk_widget_set_sensitive(dialog->ok_button,
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
209 *gtk_entry_get_text(entry) != '\0');
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
210 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
211
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
212 static void buddy_icon_filesel_delete_cb (GtkWidget *w, AccountPrefsDialog *dialog)
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
213 {
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
214 if (dialog->buddy_icon_filesel != NULL)
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
215 gtk_widget_destroy(dialog->buddy_icon_filesel);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
216 dialog->buddy_icon_filesel = NULL;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
217 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
218
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
219 static void buddy_icon_filesel_choose (GtkWidget *w, AccountPrefsDialog *dialog)
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
220 {
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
221 const char *filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->buddy_icon_filesel));
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
222
5959
827dbe4b5bb2 [gaim-migrate @ 6405]
Mark Doliner <markdoliner@pidgin.im>
parents: 5955
diff changeset
223 /* If they typed in a directory, change there */
5966
91a208b3e979 [gaim-migrate @ 6413]
Mark Doliner <markdoliner@pidgin.im>
parents: 5959
diff changeset
224 if (gaim_gtk_check_if_dir(filename, GTK_FILE_SELECTION(dialog->buddy_icon_filesel)))
5959
827dbe4b5bb2 [gaim-migrate @ 6405]
Mark Doliner <markdoliner@pidgin.im>
parents: 5955
diff changeset
225 return;
827dbe4b5bb2 [gaim-migrate @ 6405]
Mark Doliner <markdoliner@pidgin.im>
parents: 5955
diff changeset
226
6092
e1cc22bc2463 [gaim-migrate @ 6551]
Mark Doliner <markdoliner@pidgin.im>
parents: 6002
diff changeset
227 if (dialog->account)
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
228 gaim_account_set_buddy_icon(dialog->account, filename);
5900
14f49ef5a5b2 [gaim-migrate @ 6332]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
229
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
230 gtk_entry_set_text(GTK_ENTRY(dialog->buddy_icon_entry), filename);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
231 gtk_widget_destroy(dialog->buddy_icon_filesel);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
232 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
233
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
234 static void buddy_icon_preview_change_cb(GtkTreeSelection *sel, AccountPrefsDialog *dialog)
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
235 {
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
236 GdkPixbuf *pixbuf, *scale;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
237 int height, width;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
238 char *basename, *markup, *size;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
239 struct stat st;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
240
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
241 const char *filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->buddy_icon_filesel));
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
242 if (!filename || stat(filename, &st))
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
243 return;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
244
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
245 pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
246 if (!pixbuf) {
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
247 gtk_image_set_from_pixbuf(GTK_IMAGE(dialog->buddy_icon_preview), NULL);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
248 gtk_label_set_markup(GTK_LABEL(dialog->buddy_icon_text), "");
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
249 return;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
250 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
251
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
252 width = gdk_pixbuf_get_width(pixbuf);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
253 height = gdk_pixbuf_get_height(pixbuf);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
254 basename = g_path_get_basename(filename);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
255 size = gaim_get_size_string(st.st_size);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
256 markup = g_strdup_printf(_("<b>File:</b> %s\n<b>File size:</b> %s\n<b>Image size:</b> %dx%d"),
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
257 basename, size, width, height);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
258 scale = gdk_pixbuf_scale_simple(pixbuf, width * 50 / height, 50, GDK_INTERP_BILINEAR);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
259 gtk_image_set_from_pixbuf(GTK_IMAGE(dialog->buddy_icon_preview), scale);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
260 gtk_label_set_markup(GTK_LABEL(dialog->buddy_icon_text), markup);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
261
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
262 g_object_unref(G_OBJECT(pixbuf));
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
263 g_object_unref(G_OBJECT(scale));
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
264 g_free(basename);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
265 g_free(size);
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
266 g_free(markup);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
267 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
268
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
269 static void buddy_icon_select_cb(GtkWidget *button, AccountPrefsDialog *dialog)
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
270 {
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
271 GtkWidget *hbox;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
272 GtkWidget *tv;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
273 GtkTreeSelection *sel;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
274
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
275 if (dialog->buddy_icon_filesel) {
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
276 gtk_widget_show(GTK_WIDGET(dialog->buddy_icon_filesel));
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
277 gdk_window_raise(GDK_WINDOW(dialog->buddy_icon_filesel->window));
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
278 return;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
279 }
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
280
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
281 dialog->buddy_icon_filesel = gtk_file_selection_new(_("Buddy Icon"));
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
282 dialog->buddy_icon_preview = gtk_image_new();
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
283 dialog->buddy_icon_text = gtk_label_new(NULL);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
284 gtk_widget_set_size_request(GTK_WIDGET(dialog->buddy_icon_preview), -1, 50);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
285 hbox = gtk_hbox_new(FALSE, 6);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
286 gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(dialog->buddy_icon_filesel)->main_vbox), hbox,
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
287 FALSE, FALSE, 0);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
288 gtk_box_pack_end(GTK_BOX(hbox), dialog->buddy_icon_preview, FALSE, FALSE, 0);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
289 gtk_box_pack_end(GTK_BOX(hbox), dialog->buddy_icon_text, FALSE, FALSE, 0);
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
290
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
291 tv = GTK_FILE_SELECTION(dialog->buddy_icon_filesel)->file_list;
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
292 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
293 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(buddy_icon_preview_change_cb), dialog);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
294
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
295 g_signal_connect(G_OBJECT(dialog->buddy_icon_filesel), "destroy", G_CALLBACK(buddy_icon_filesel_delete_cb), dialog);
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
296 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(dialog->buddy_icon_filesel)->cancel_button), "clicked",
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
297 G_CALLBACK(buddy_icon_filesel_delete_cb), dialog);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
298 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(dialog->buddy_icon_filesel)->ok_button), "clicked", G_CALLBACK(buddy_icon_filesel_choose),
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
299 dialog);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
300
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
301 gtk_widget_show_all(GTK_WIDGET(dialog->buddy_icon_filesel));
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
302 if (dialog->account && (gaim_account_get_buddy_icon(dialog->account) != NULL)) {
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
303 gtk_file_selection_set_filename(GTK_FILE_SELECTION(dialog->buddy_icon_filesel),
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
304 gaim_account_get_buddy_icon(dialog->account));
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
305 buddy_icon_preview_change_cb(NULL, dialog);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
306 }
5870
950d7777b499 [gaim-migrate @ 6302]
Mark Doliner <markdoliner@pidgin.im>
parents: 5856
diff changeset
307
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
308 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
309
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
310 static void buddy_icon_reset_cb(GtkWidget *button, AccountPrefsDialog *dialog)
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 gtk_entry_set_text(GTK_ENTRY(dialog->buddy_icon_entry), "");
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
313 if (dialog->account)
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
314 gaim_account_set_buddy_icon(dialog->account, NULL);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
315 }
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
316
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
317 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
318 add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
319 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
320 GtkWidget *frame;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
321 GtkWidget *vbox;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
322 GtkWidget *entry;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
323 GList *user_splits;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
324 GList *l, *l2;
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
325 char *username = NULL;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
326
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
327 if (dialog->login_frame != NULL)
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
328 gtk_widget_destroy(dialog->login_frame);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
329
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
330 /* Build the login options frame. */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
331 frame = gaim_gtk_make_frame(parent, _("Login Options"));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
332
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
333 /* cringe */
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
334 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
335
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
336 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
337 gtk_widget_show(dialog->login_frame);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
338
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
339 /* Main vbox */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
340 vbox = gtk_vbox_new(FALSE, 6);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
341 gtk_container_add(GTK_CONTAINER(frame), vbox);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
342 gtk_widget_show(vbox);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
343
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
344 /* Protocol */
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
345 dialog->protocol_menu = gaim_gtk_protocol_option_menu_new(
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
346 dialog->protocol, G_CALLBACK(set_account_protocol_cb), dialog);
5644
bc4c2f9f2bf8 [gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents: 5641
diff changeset
347
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
348 add_pref_box(dialog, vbox, _("Protocol:"), dialog->protocol_menu);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
349
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
350 /* Screen Name */
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
351 dialog->screenname_entry = gtk_entry_new();
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
352
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
353 add_pref_box(dialog, vbox, _("Screenname:"), dialog->screenname_entry);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
354
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
355 g_signal_connect(G_OBJECT(dialog->screenname_entry), "changed",
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
356 G_CALLBACK(screenname_changed_cb), dialog);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
357
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
358 /* Do the user split thang */
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
359 if (dialog->plugin == NULL) /* Yeah right. */
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
360 user_splits = NULL;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
361 else
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
362 user_splits = dialog->prpl_info->user_splits;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
363
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
364 if (dialog->account != NULL)
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
365 username = g_strdup(gaim_account_get_username(dialog->account));
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
366
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
367 if (dialog->user_split_entries != NULL) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
368 g_list_free(dialog->user_split_entries);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
369 dialog->user_split_entries = NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
370 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
371
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
372 for (l = user_splits; l != NULL; l = l->next) {
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
373 GaimAccountUserSplit *split = l->data;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
374 char *buf;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
375
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
376 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
377
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
378 entry = gtk_entry_new();
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
379
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
380 add_pref_box(dialog, vbox, buf, entry);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
381
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
382 g_free(buf);
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
383
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
384 dialog->user_split_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
385 g_list_append(dialog->user_split_entries, entry);
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
386 }
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
387
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
388 for (l = g_list_last(dialog->user_split_entries),
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
389 l2 = g_list_last(user_splits);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
390 l != NULL && l2 != NULL;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
391 l = l->prev, l2 = l2->prev) {
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
392
5708
43f6fbb894d5 [gaim-migrate @ 6129]
Christian Hammond <chipx86@chipx86.com>
parents: 5705
diff changeset
393 GtkWidget *entry = l->data;
43f6fbb894d5 [gaim-migrate @ 6129]
Christian Hammond <chipx86@chipx86.com>
parents: 5705
diff changeset
394 GaimAccountUserSplit *split = l2->data;
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
395 const char *value = NULL;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
396 char *c;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
397
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
398 if (dialog->account != NULL) {
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
399 c = strrchr(username,
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
400 gaim_account_user_split_get_separator(split));
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
401
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
402 if (c != NULL) {
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
403 *c = '\0';
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
404 c++;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
405
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
406 value = c;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
407 }
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
408 }
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
409
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
410 if (value == NULL)
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
411 value = gaim_account_user_split_get_default_value(split);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
412
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
413 if (value != NULL)
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
414 gtk_entry_set_text(GTK_ENTRY(entry), value);
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
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
417 if (username != NULL)
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
418 gtk_entry_set_text(GTK_ENTRY(dialog->screenname_entry), username);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
419
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
420 g_free(username);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
421
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
422
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
423 /* Password */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
424 dialog->password_entry = gtk_entry_new();
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
425 gtk_entry_set_visibility(GTK_ENTRY(dialog->password_entry), FALSE);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
426 dialog->password_box = add_pref_box(dialog, vbox, _("Password:"),
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
427 dialog->password_entry);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
428
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
429 /* Alias */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
430 dialog->alias_entry = gtk_entry_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
431 add_pref_box(dialog, vbox, _("Alias:"), dialog->alias_entry);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
432
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
433 /* Remember Password */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
434 dialog->remember_pass_check =
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
435 gtk_check_button_new_with_label(_("Remember password"));
5783
0f26dee8622e [gaim-migrate @ 6208]
Christian Hammond <chipx86@chipx86.com>
parents: 5782
diff changeset
436 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->remember_pass_check),
0f26dee8622e [gaim-migrate @ 6208]
Christian Hammond <chipx86@chipx86.com>
parents: 5782
diff changeset
437 TRUE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
438 gtk_box_pack_start(GTK_BOX(vbox), dialog->remember_pass_check,
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
439 FALSE, FALSE, 0);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
440 gtk_widget_show(dialog->remember_pass_check);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
441
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
442 /* Auto-Login */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
443 dialog->auto_login_check =
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
444 gtk_check_button_new_with_label(_("Auto-login"));
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
445 gtk_box_pack_start(GTK_BOX(vbox), dialog->auto_login_check,
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
446 FALSE, FALSE, 0);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
447 gtk_widget_show(dialog->auto_login_check);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
448
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
449 /* Set the fields. */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
450 if (dialog->account != NULL) {
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
451 if (gaim_account_get_password(dialog->account))
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
452 gtk_entry_set_text(GTK_ENTRY(dialog->password_entry),
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
453 gaim_account_get_password(dialog->account));
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
454
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
455 if (gaim_account_get_alias(dialog->account))
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
456 gtk_entry_set_text(GTK_ENTRY(dialog->alias_entry),
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
457 gaim_account_get_alias(dialog->account));
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
458
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
459 gtk_toggle_button_set_active(
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
460 GTK_TOGGLE_BUTTON(dialog->remember_pass_check),
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
461 gaim_account_get_remember_password(dialog->account));
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
462
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
463 gtk_toggle_button_set_active(
5804
1c44d7ece6b1 [gaim-migrate @ 6234]
Nathan Walp <nwalp@pidgin.im>
parents: 5803
diff changeset
464 GTK_TOGGLE_BUTTON(dialog->auto_login_check),
1c44d7ece6b1 [gaim-migrate @ 6234]
Nathan Walp <nwalp@pidgin.im>
parents: 5803
diff changeset
465 gaim_account_get_auto_login(dialog->account, GAIM_GTK_UI));
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
466 }
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
467
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
468 if (dialog->prpl_info != NULL &&
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
469 (dialog->prpl_info->options & OPT_PROTO_NO_PASSWORD)) {
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
470
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
471 gtk_widget_hide(dialog->password_box);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
472 gtk_widget_hide(dialog->remember_pass_check);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
473 }
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
474 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
475
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
476 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
477 add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
478 {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
479 GtkWidget *frame;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
480 GtkWidget *vbox;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
481 GtkWidget *hbox;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
482 GtkWidget *button;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
483 GtkWidget *label;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
484
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
485 if (dialog->user_frame != NULL)
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
486 gtk_widget_destroy(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
487
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
488 /* Build the user options frame. */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
489 frame = gaim_gtk_make_frame(parent, _("User Options"));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
490 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
491
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
492 gtk_box_reorder_child(GTK_BOX(parent), dialog->user_frame, 1);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
493 gtk_widget_show(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
494
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
495 /* Main vbox */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
496 vbox = gtk_vbox_new(FALSE, 6);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
497 gtk_container_add(GTK_CONTAINER(frame), vbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
498 gtk_widget_show(vbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
499
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
500 /* New mail notifications */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
501 dialog->new_mail_check =
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
502 gtk_check_button_new_with_label(_("New mail notifications"));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
503 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
504 gtk_widget_show(dialog->new_mail_check);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
505
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
506 /* Buddy icon */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
507 dialog->buddy_icon_hbox = hbox = gtk_hbox_new(FALSE, 6);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
508 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
509 gtk_widget_show(hbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
510
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
511 label = gtk_label_new(_("Buddy icon file:"));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
512 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
513 gtk_widget_show(label);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
514
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
515 dialog->buddy_icon_entry = gtk_entry_new();
5840
19d6f7f354e0 [gaim-migrate @ 6271]
Nathan Walp <nwalp@pidgin.im>
parents: 5826
diff changeset
516 gtk_editable_set_editable(GTK_EDITABLE(dialog->buddy_icon_entry), FALSE);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
517 gtk_box_pack_start(GTK_BOX(hbox), dialog->buddy_icon_entry, TRUE, TRUE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
518 gtk_widget_show(dialog->buddy_icon_entry);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
519
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
520 button = gtk_button_new_with_mnemonic(_("_Browse"));
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
521 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
522 g_signal_connect(G_OBJECT(button), "clicked",
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
523 G_CALLBACK(buddy_icon_select_cb), dialog);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
524 gtk_widget_show(button);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
525
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
526 button = gtk_button_new_with_mnemonic(_("_Reset"));
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
527 g_signal_connect(G_OBJECT(button), "clicked",
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
528 G_CALLBACK(buddy_icon_reset_cb), dialog);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
529 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
530 gtk_widget_show(button);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
531
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
532 if (dialog->prpl_info != NULL) {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
533 if (!(dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK))
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
534 gtk_widget_hide(dialog->new_mail_check);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
535
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
536 if (!(dialog->prpl_info->options & OPT_PROTO_BUDDY_ICON))
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
537 gtk_widget_hide(dialog->buddy_icon_hbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
538 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
539
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
540 if (dialog->account != NULL) {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
541 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->new_mail_check),
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
542 gaim_account_get_check_mail(dialog->account));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
543
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
544 if (gaim_account_get_buddy_icon(dialog->account) != NULL)
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
545 gtk_entry_set_text(GTK_ENTRY(dialog->buddy_icon_entry),
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
546 gaim_account_get_buddy_icon(dialog->account));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
547 }
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 if (!(dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK) &&
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
550 !(dialog->prpl_info->options & OPT_PROTO_BUDDY_ICON)) {
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 /* Nothing to see :( aww. */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
553 gtk_widget_hide(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
554 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
555 }
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 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
558 add_protocol_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
559 {
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
560 GaimAccountOption *option;
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
561 GaimAccount *account;
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
562 GtkWidget *frame;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
563 GtkWidget *vbox;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
564 GtkWidget *check;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
565 GtkWidget *entry;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
566 GList *l;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
567 char buf[1024];
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
568 char *title;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
569 const char *str_value;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
570 gboolean bool_value;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
571 int int_value;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
572
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
573 if (dialog->protocol_frame != NULL) {
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
574 gtk_widget_destroy(dialog->protocol_frame);
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
575 dialog->protocol_frame = NULL;
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
576 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
577
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
578 if (dialog->prpl_info == NULL ||
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
579 dialog->prpl_info->protocol_options == NULL) {
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
580
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
581 return;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
582 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
583
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
584 account = dialog->account;
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
585
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
586 /* Build the protocol options frame. */
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
587 g_snprintf(buf, sizeof(buf), _("%s Options"), dialog->plugin->info->name);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
588
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
589 frame = gaim_gtk_make_frame(parent, buf);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
590 dialog->protocol_frame =
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
591 gtk_widget_get_parent(gtk_widget_get_parent(frame));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
592
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
593 gtk_box_reorder_child(GTK_BOX(parent), dialog->protocol_frame, 0);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
594 gtk_widget_show(dialog->protocol_frame);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
595
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
596 /* Main vbox */
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
597 vbox = gtk_vbox_new(FALSE, 6);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
598 gtk_container_add(GTK_CONTAINER(frame), vbox);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
599 gtk_widget_show(vbox);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
600
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
601 if (dialog->protocol_opt_entries != NULL) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
602 g_list_free(dialog->protocol_opt_entries);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
603 dialog->protocol_opt_entries = NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
604 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
605
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
606 for (l = dialog->prpl_info->protocol_options; l != NULL; l = l->next) {
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
607 option = (GaimAccountOption *)l->data;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
608
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
609 switch (gaim_account_option_get_type(option)) {
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
610 case GAIM_PREF_BOOLEAN:
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
611 if (account == NULL ||
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
612 gaim_account_get_protocol(account) != dialog->protocol) {
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
613
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
614 bool_value = gaim_account_option_get_default_bool(option);
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
615 }
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
616 else
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
617 bool_value = gaim_account_get_bool(account,
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
618 gaim_account_option_get_setting(option),
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
619 gaim_account_option_get_default_bool(option));
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
620
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
621 check = gtk_check_button_new_with_label(
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
622 gaim_account_option_get_text(option));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
623
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
624 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
625 bool_value);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
626
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
627 gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
628 gtk_widget_show(check);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
629
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
630 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
631 g_list_append(dialog->protocol_opt_entries, check);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
632
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
633 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
634
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
635 case GAIM_PREF_INT:
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
636 if (account == NULL ||
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
637 gaim_account_get_protocol(account) != dialog->protocol) {
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
638
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
639 int_value = gaim_account_option_get_default_int(option);
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
640 }
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
641 else
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
642 int_value = gaim_account_get_int(account,
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
643 gaim_account_option_get_setting(option),
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
644 gaim_account_option_get_default_int(option));
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
645
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
646 g_snprintf(buf, sizeof(buf), "%d", int_value);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
647
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
648 entry = gtk_entry_new();
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
649 gtk_entry_set_text(GTK_ENTRY(entry), buf);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
650
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
651 title = g_strdup_printf("%s:",
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
652 gaim_account_option_get_text(option));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
653
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
654 add_pref_box(dialog, vbox, title, entry);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
655
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
656 g_free(title);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
657
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
658 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
659 g_list_append(dialog->protocol_opt_entries, entry);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
660
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
661 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
662
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
663 case GAIM_PREF_STRING:
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
664 if (account == NULL ||
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
665 gaim_account_get_protocol(account) != dialog->protocol) {
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
666
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
667 str_value = gaim_account_option_get_default_string(option);
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
668 }
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
669 else
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
670 str_value = gaim_account_get_string(account,
5664
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
671 gaim_account_option_get_setting(option),
4adde60ed7da [gaim-migrate @ 6079]
Christian Hammond <chipx86@chipx86.com>
parents: 5663
diff changeset
672 gaim_account_option_get_default_string(option));
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
673
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
674 entry = gtk_entry_new();
5663
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
675
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
676 if (str_value != NULL)
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
677 gtk_entry_set_text(GTK_ENTRY(entry), str_value);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
678
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
679 title = g_strdup_printf("%s:",
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
680 gaim_account_option_get_text(option));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
681
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
682 add_pref_box(dialog, vbox, title, entry);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
683
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
684 g_free(title);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
685
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
686 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
687 g_list_append(dialog->protocol_opt_entries, entry);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
688
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
689 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
690
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
691 default:
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
692 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
693 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
694 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
695 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
696
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
697 static GtkWidget *
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
698 make_proxy_dropdown(void)
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
699 {
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
700 GtkWidget *dropdown;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
701 GtkWidget *menu;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
702 GtkWidget *item;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
703
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
704 dropdown = gtk_option_menu_new();
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
705 menu = gtk_menu_new();
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
706
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
707 /* Use Global Proxy Settings */
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
708 item = gtk_menu_item_new_with_label(_("Use Global Proxy Settings"));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
709 g_object_set_data(G_OBJECT(item), "proxytype",
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
710 GINT_TO_POINTER(GAIM_PROXY_USE_GLOBAL));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
711 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
712 gtk_widget_show(item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
713
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
714 /* No Proxy */
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
715 item = gtk_menu_item_new_with_label(_("No Proxy"));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
716 g_object_set_data(G_OBJECT(item), "proxytype",
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
717 GINT_TO_POINTER(GAIM_PROXY_NONE));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
718 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
719 gtk_widget_show(item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
720
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
721 /* SOCKS 4 */
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
722 item = gtk_menu_item_new_with_label(_("SOCKS 4"));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
723 g_object_set_data(G_OBJECT(item), "proxytype",
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
724 GINT_TO_POINTER(GAIM_PROXY_SOCKS4));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
725 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
726 gtk_widget_show(item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
727
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
728 /* SOCKS 5 */
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
729 item = gtk_menu_item_new_with_label(_("SOCKS 5"));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
730 g_object_set_data(G_OBJECT(item), "proxytype",
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
731 GINT_TO_POINTER(GAIM_PROXY_SOCKS5));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
732 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
733 gtk_widget_show(item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
734
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
735 /* HTTP */
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
736 item = gtk_menu_item_new_with_label(_("HTTP"));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
737 g_object_set_data(G_OBJECT(item), "proxytype",
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
738 GINT_TO_POINTER(GAIM_PROXY_HTTP));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
739 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
740 gtk_widget_show(item);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
741
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
742 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
743
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
744 return dropdown;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
745 }
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
746
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
747 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
748 proxy_type_changed_cb(GtkWidget *optmenu, AccountPrefsDialog *dialog)
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
749 {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
750 dialog->new_proxy_type =
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
751 gtk_option_menu_get_history(GTK_OPTION_MENU(optmenu)) - 1;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
752
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
753 if (dialog->new_proxy_type == GAIM_PROXY_USE_GLOBAL ||
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
754 dialog->new_proxy_type == GAIM_PROXY_NONE) {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
755
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
756 gtk_widget_hide_all(dialog->proxy_vbox);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
757 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
758 else
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
759 gtk_widget_show_all(dialog->proxy_vbox);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
760 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
761
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
762 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
763 port_popup_cb(GtkWidget *w, GtkMenu *menu, gpointer data)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
764 {
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
765 GtkWidget *item;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
766
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
767 item = gtk_menu_item_new_with_label(
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
768 _("you can see the butterflies mating"));
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
769 gtk_widget_show(item);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
770 gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), item);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
771
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
772 item = gtk_menu_item_new_with_label(_("If you look real closely"));
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
773 gtk_widget_show(item);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
774 gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), item);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
775 }
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
776
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
777 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
778 add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
779 {
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
780 GaimProxyInfo *proxy_info;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
781 GtkWidget *frame;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
782 GtkWidget *vbox;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
783 GtkWidget *vbox2;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
784
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
785 if (dialog->proxy_frame != NULL)
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
786 gtk_widget_destroy(dialog->proxy_frame);
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
787
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
788 frame = gaim_gtk_make_frame(parent, _("Proxy Options"));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
789 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
790
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
791 gtk_box_reorder_child(GTK_BOX(parent), dialog->proxy_frame, 1);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
792 gtk_widget_show(dialog->proxy_frame);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
793
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
794 /* Main vbox */
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
795 vbox = gtk_vbox_new(FALSE, 6);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
796 gtk_container_add(GTK_CONTAINER(frame), vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
797 gtk_widget_show(vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
798
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
799 /* Proxy Type drop-down. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
800 dialog->proxy_dropdown = make_proxy_dropdown();
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
801 dialog->proxy_menu =
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
802 gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->proxy_dropdown));
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
803
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
804 add_pref_box(dialog, vbox, _("Proxy _type:"), dialog->proxy_dropdown);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
805
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
806 /* Setup the second vbox, which may be hidden at times. */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
807 dialog->proxy_vbox = vbox2 = gtk_vbox_new(FALSE, 6);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
808 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, 0);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
809 gtk_widget_show(vbox2);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
810
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
811 /* Host */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
812 dialog->proxy_host_entry = gtk_entry_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
813 add_pref_box(dialog, vbox2, _("_Host:"), dialog->proxy_host_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
814
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
815 /* Port */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
816 dialog->proxy_port_entry = gtk_entry_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
817 add_pref_box(dialog, vbox2, _("_Port:"), dialog->proxy_port_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
818
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
819 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
820 G_CALLBACK(port_popup_cb), NULL);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
821
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
822 /* User */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
823 dialog->proxy_user_entry = gtk_entry_new();
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
824
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
825 add_pref_box(dialog, vbox2, _("_Username:"), dialog->proxy_user_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
826
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
827 /* Password */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
828 dialog->proxy_pass_entry = gtk_entry_new();
5700
8a0df68ba664 [gaim-migrate @ 6121]
Christian Hammond <chipx86@chipx86.com>
parents: 5699
diff changeset
829 gtk_entry_set_visibility(GTK_ENTRY(dialog->proxy_pass_entry), FALSE);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
830 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
831
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
832 if (dialog->account != NULL &&
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
833 (proxy_info = gaim_account_get_proxy_info(dialog->account)) != NULL) {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
834
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
835 GaimProxyType type = gaim_proxy_info_get_type(proxy_info);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
836
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
837 /* Hah! */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
838 gtk_option_menu_set_history(GTK_OPTION_MENU(dialog->proxy_dropdown),
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
839 (int)type + 1);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
840
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
841 if (type == GAIM_PROXY_NONE || type == GAIM_PROXY_USE_GLOBAL) {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
842 gtk_widget_hide_all(vbox2);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
843 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
844 else {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
845 const char *value;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
846 int int_val;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
847
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
848 if ((value = gaim_proxy_info_get_host(proxy_info)) != NULL)
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
849 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_host_entry), value);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
850
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
851 if ((int_val = gaim_proxy_info_get_port(proxy_info)) != 0) {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
852 char buf[32];
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
853
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
854 g_snprintf(buf, sizeof(buf), "%d", int_val);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
855
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
856 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
857 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
858
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
859 if ((value = gaim_proxy_info_get_username(proxy_info)) != NULL)
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
860 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_user_entry), value);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
861
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
862 if ((value = gaim_proxy_info_get_password(proxy_info)) != NULL)
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
863 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_pass_entry), value);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
864 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
865 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
866 else
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
867 gtk_widget_hide_all(vbox2);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
868
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
869 /* Connect signals. */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
870 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
871 G_CALLBACK(proxy_type_changed_cb), dialog);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
872 }
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
873
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
874 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
875 account_win_destroy_cb(GtkWidget *w, GdkEvent *event,
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
876 AccountPrefsDialog *dialog)
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
877 {
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
878 if (dialog->user_split_entries != NULL)
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
879 g_list_free(dialog->user_split_entries);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
880
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
881 if (dialog->protocol_opt_entries != NULL)
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
882 g_list_free(dialog->protocol_opt_entries);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
883
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
884 if (dialog->protocol_id != NULL)
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
885 g_free(dialog->protocol_id);
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
886
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
887 if (dialog->buddy_icon_filesel)
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
888 gtk_widget_destroy(dialog->buddy_icon_filesel);
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
889
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
890 g_free(dialog);
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
891 }
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
892
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
893 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
894 cancel_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
895 {
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
896 gtk_widget_destroy(dialog->window);
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
897
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
898 account_win_destroy_cb(NULL, NULL, dialog);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
899 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
900
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
901 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
902 ok_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
903 {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
904 GaimProxyInfo *proxy_info = NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
905 GList *l, *l2;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
906 const char *value;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
907 char *username;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
908 char *tmp;
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
909 size_t index;
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
910 GtkTreeIter iter;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
911
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
912 if (dialog->account == NULL) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
913 const char *screenname;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
914
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
915 screenname = gtk_entry_get_text(GTK_ENTRY(dialog->screenname_entry));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
916
5943
8a052155157a [gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents: 5900
diff changeset
917 dialog->account = gaim_account_new(screenname, dialog->protocol_id);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
918 }
5699
b47a3b7d1247 [gaim-migrate @ 6120]
Christian Hammond <chipx86@chipx86.com>
parents: 5698
diff changeset
919 else {
b47a3b7d1247 [gaim-migrate @ 6120]
Christian Hammond <chipx86@chipx86.com>
parents: 5698
diff changeset
920 /* Protocol */
5943
8a052155157a [gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents: 5900
diff changeset
921 gaim_account_set_protocol_id(dialog->account, dialog->protocol_id);
5699
b47a3b7d1247 [gaim-migrate @ 6120]
Christian Hammond <chipx86@chipx86.com>
parents: 5698
diff changeset
922 }
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
923
5979
d51d697d27fb [gaim-migrate @ 6426]
Christian Hammond <chipx86@chipx86.com>
parents: 5978
diff changeset
924 /* Clear the existing settings. */
d51d697d27fb [gaim-migrate @ 6426]
Christian Hammond <chipx86@chipx86.com>
parents: 5978
diff changeset
925 gaim_account_clear_settings(dialog->account);
d51d697d27fb [gaim-migrate @ 6426]
Christian Hammond <chipx86@chipx86.com>
parents: 5978
diff changeset
926
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
927 /* Alias */
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
928 value = gtk_entry_get_text(GTK_ENTRY(dialog->alias_entry));
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
929
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
930 if (*value != '\0')
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
931 gaim_account_set_alias(dialog->account, value);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
932 else
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
933 gaim_account_set_alias(dialog->account, NULL);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
934
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
935 /* Buddy Icon */
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
936 value = gtk_entry_get_text(GTK_ENTRY(dialog->buddy_icon_entry));
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
937
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
938 if ((dialog->prpl_info->options & OPT_PROTO_BUDDY_ICON) && *value != '\0')
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
939 gaim_account_set_buddy_icon(dialog->account, value);
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
940 else
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
941 gaim_account_set_buddy_icon(dialog->account, NULL);
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
942
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
943 /* Remember Password */
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
944 gaim_account_set_remember_password(dialog->account,
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
945 gtk_toggle_button_get_active(
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
946 GTK_TOGGLE_BUTTON(dialog->remember_pass_check)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
947
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
948 /* Check Mail */
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
949 if (dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK)
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
950 gaim_account_set_check_mail(dialog->account,
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
951 gtk_toggle_button_get_active(
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
952 GTK_TOGGLE_BUTTON(dialog->new_mail_check)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
953
5804
1c44d7ece6b1 [gaim-migrate @ 6234]
Nathan Walp <nwalp@pidgin.im>
parents: 5803
diff changeset
954 /* Auto Login */
1c44d7ece6b1 [gaim-migrate @ 6234]
Nathan Walp <nwalp@pidgin.im>
parents: 5803
diff changeset
955 gaim_account_set_auto_login(dialog->account, GAIM_GTK_UI,
1c44d7ece6b1 [gaim-migrate @ 6234]
Nathan Walp <nwalp@pidgin.im>
parents: 5803
diff changeset
956 gtk_toggle_button_get_active(
1c44d7ece6b1 [gaim-migrate @ 6234]
Nathan Walp <nwalp@pidgin.im>
parents: 5803
diff changeset
957 GTK_TOGGLE_BUTTON(dialog->auto_login_check)));
1c44d7ece6b1 [gaim-migrate @ 6234]
Nathan Walp <nwalp@pidgin.im>
parents: 5803
diff changeset
958
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
959 /* Password */
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
960 value = gtk_entry_get_text(GTK_ENTRY(dialog->password_entry));
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
961
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
962 if (gaim_account_get_remember_password(dialog->account) && *value != '\0')
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
963 gaim_account_set_password(dialog->account, value);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
964 else
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
965 gaim_account_set_password(dialog->account, NULL);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
966
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
967 /* Build the username string. */
5711
5aa3984f5f80 [gaim-migrate @ 6132]
Christian Hammond <chipx86@chipx86.com>
parents: 5710
diff changeset
968 username =
5aa3984f5f80 [gaim-migrate @ 6132]
Christian Hammond <chipx86@chipx86.com>
parents: 5710
diff changeset
969 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
970
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
971 for (l = dialog->prpl_info->user_splits, l2 = dialog->user_split_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
972 l != NULL && l2 != NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
973 l = l->next, l2 = l2->next) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
974
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
975 GaimAccountUserSplit *split = l->data;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
976 GtkEntry *entry = l2->data;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
977 char sep[2] = " ";
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
978
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
979 value = gtk_entry_get_text(entry);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
980
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
981 *sep = gaim_account_user_split_get_separator(split);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
982
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
983 tmp = g_strconcat(username, sep,
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
984 (*value ? value :
5710
3c2bf5725bb0 [gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents: 5709
diff changeset
985 gaim_account_user_split_get_default_value(split)),
3c2bf5725bb0 [gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents: 5709
diff changeset
986 NULL);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
987
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
988 g_free(username);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
989 username = tmp;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
990 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
991
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
992 gaim_account_set_username(dialog->account, username);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
993 g_free(username);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
994
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
995 /* Add the protocol settings */
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
996
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
997 for (l = dialog->prpl_info->protocol_options,
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
998 l2 = dialog->protocol_opt_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
999 l != NULL && l2 != NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1000 l = l->next, l2 = l2->next) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1001
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1002 GaimPrefType type;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1003 GaimAccountOption *option = l->data;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1004 GtkWidget *widget = l2->data;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1005 const char *setting;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1006 int int_value;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1007 gboolean bool_value;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1008
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1009 type = gaim_account_option_get_type(option);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1010
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1011 setting = gaim_account_option_get_setting(option);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1012
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1013 switch (type) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1014 case GAIM_PREF_STRING:
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1015 value = gtk_entry_get_text(GTK_ENTRY(widget));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1016 gaim_account_set_string(dialog->account, setting, value);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1017 break;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1018
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1019 case GAIM_PREF_INT:
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1020 int_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1021 gaim_account_set_int(dialog->account, setting, int_value);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1022 break;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1023
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1024 case GAIM_PREF_BOOLEAN:
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1025 bool_value =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1026 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1027 gaim_account_set_bool(dialog->account, setting, bool_value);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1028 break;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1029
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1030 default:
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1031 break;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1032 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1033 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1034
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1035 /* Set the proxy stuff. */
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1036 if (dialog->new_proxy_type == GAIM_PROXY_NONE) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1037 gaim_account_set_proxy_info(dialog->account, NULL);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1038 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1039 else {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1040 const char *port_str;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1041
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1042 proxy_info = gaim_account_get_proxy_info(dialog->account);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1043
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1044 if (proxy_info == NULL) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1045 proxy_info = gaim_proxy_info_new();
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1046 gaim_account_set_proxy_info(dialog->account, proxy_info);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1047 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1048
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1049 gaim_proxy_info_set_type(proxy_info, dialog->new_proxy_type);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1050
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1051 gaim_proxy_info_set_host(proxy_info,
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1052 gtk_entry_get_text(GTK_ENTRY(dialog->proxy_host_entry)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1053
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1054 port_str = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_port_entry));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1055
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1056 if (port_str != NULL)
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1057 gaim_proxy_info_set_port(proxy_info, atoi(port_str));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1058 else
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1059 gaim_proxy_info_set_port(proxy_info, 0);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1060
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1061 gaim_proxy_info_set_username(proxy_info,
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1062 gtk_entry_get_text(GTK_ENTRY(dialog->proxy_user_entry)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1063
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1064 gaim_proxy_info_set_password(proxy_info,
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1065 gtk_entry_get_text(GTK_ENTRY(dialog->proxy_pass_entry)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1066 }
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1067
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1068 /* Adds the account to the list, or modify the existing entry. */
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1069 index = g_list_index(gaim_accounts_get_all(), dialog->account);
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1070
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1071 if (index != -1 &&
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1072 (gtk_tree_model_iter_nth_child(
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1073 GTK_TREE_MODEL(dialog->accounts_dialog->model), &iter,
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1074 NULL, index))) {
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1075
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1076 set_account(dialog->accounts_dialog->model, &iter, dialog->account);
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1077 }
5710
3c2bf5725bb0 [gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents: 5709
diff changeset
1078 else {
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1079 add_account(dialog->accounts_dialog, dialog->account);
5710
3c2bf5725bb0 [gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents: 5709
diff changeset
1080 gaim_accounts_add(dialog->account);
3c2bf5725bb0 [gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents: 5709
diff changeset
1081 }
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1082
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1083 gtk_widget_destroy(dialog->window);
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1084
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1085 account_win_destroy_cb(NULL, NULL, dialog);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1086
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1087 gaim_accounts_sync();
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1088 }
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1089
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1090 static void
5851
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1091 register_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1092 {
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1093 GaimAccount *account = dialog->account;
5852
33a438531278 [gaim-migrate @ 6283]
Christian Hammond <chipx86@chipx86.com>
parents: 5851
diff changeset
1094 GaimPluginProtocolInfo *prpl_info = dialog->prpl_info;
5851
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1095
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1096 ok_account_prefs_cb(NULL, dialog);
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1097
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1098 prpl_info->register_user(account);
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1099 }
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1100
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1101 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1102 show_account_prefs(AccountPrefsDialogType type,
5851
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1103 AccountsDialog *accounts_dialog,
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1104 GaimAccount *account)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1105 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1106 AccountPrefsDialog *dialog;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1107 GtkWidget *win;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1108 GtkWidget *main_vbox;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1109 GtkWidget *vbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1110 GtkWidget *bbox;
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1111 GtkWidget *dbox;
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1112 GtkWidget *disclosure;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1113 GtkWidget *sep;
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1114 GtkWidget *button;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1115
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1116 dialog = g_new0(AccountPrefsDialog, 1);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1117
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1118 dialog->accounts_dialog = accounts_dialog;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1119 dialog->account = account;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1120 dialog->type = type;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1121 dialog->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1122
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1123 if (dialog->account == NULL) {
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1124 dialog->protocol_id = g_strdup("prpl-oscar");
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1125 dialog->protocol = GAIM_PROTO_OSCAR;
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1126 }
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1127 else {
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1128 dialog->protocol_id =
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1129 g_strdup(gaim_account_get_protocol_id(dialog->account));
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1130 dialog->protocol = gaim_account_get_protocol(dialog->account);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1131 }
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1132
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1133 if ((dialog->plugin = gaim_find_prpl(dialog->protocol)) != NULL)
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1134 dialog->prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(dialog->plugin);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1135
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1136
5661
9788e2d77d66 [gaim-migrate @ 6075]
Christian Hammond <chipx86@chipx86.com>
parents: 5660
diff changeset
1137 dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1138 gtk_window_set_role(GTK_WINDOW(win), "account");
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1139
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1140 if (type == ADD_ACCOUNT_DIALOG)
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1141 gtk_window_set_title(GTK_WINDOW(win), _("Add Account"));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1142 else
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1143 gtk_window_set_title(GTK_WINDOW(win), _("Modify Account"));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1144
5661
9788e2d77d66 [gaim-migrate @ 6075]
Christian Hammond <chipx86@chipx86.com>
parents: 5660
diff changeset
1145 gtk_window_set_resizable(GTK_WINDOW(win), FALSE);
9788e2d77d66 [gaim-migrate @ 6075]
Christian Hammond <chipx86@chipx86.com>
parents: 5660
diff changeset
1146
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1147 gtk_container_set_border_width(GTK_CONTAINER(win), 12);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1148
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1149 g_signal_connect(G_OBJECT(win), "delete_event",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1150 G_CALLBACK(account_win_destroy_cb), dialog);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1151
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1152 /* Setup the vbox */
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1153 main_vbox = gtk_vbox_new(FALSE, 12);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1154 gtk_container_add(GTK_CONTAINER(win), main_vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1155 gtk_widget_show(main_vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1156
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1157 /* Setup the inner vbox */
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
1158 dialog->top_vbox = vbox = gtk_vbox_new(FALSE, 18);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1159 gtk_box_pack_start(GTK_BOX(main_vbox), vbox, FALSE, FALSE, 0);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1160 gtk_widget_show(vbox);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1161
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1162 /* Setup the top frames. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1163 add_login_options(dialog, vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1164 add_user_options(dialog, vbox);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1165
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1166 /* Add the disclosure */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1167 disclosure = gaim_disclosure_new(_("Show more options"),
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1168 _("Show fewer options"));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1169 gtk_box_pack_start(GTK_BOX(vbox), disclosure, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1170 gtk_widget_show(disclosure);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
1171
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1172 /* Setup the box that the disclosure will cover. */
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
1173 dialog->bottom_vbox = dbox = gtk_vbox_new(FALSE, 18);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1174 gtk_box_pack_start(GTK_BOX(vbox), dbox, FALSE, FALSE, 0);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1175
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1176 gaim_disclosure_set_container(GAIM_DISCLOSURE(disclosure), dbox);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1177
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1178 /** Setup the bottom frames. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1179 add_protocol_options(dialog, dbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1180 add_proxy_options(dialog, dbox);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1181
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1182 /* Separator... */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1183 sep = gtk_hseparator_new();
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1184 gtk_box_pack_start(GTK_BOX(main_vbox), sep, FALSE, FALSE, 0);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1185 gtk_widget_show(sep);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1186
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1187 /* Setup the button box */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1188 bbox = gtk_hbutton_box_new();
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1189 gtk_box_set_spacing(GTK_BOX(bbox), 6);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1190 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
1191 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
1192 gtk_widget_show(bbox);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1193
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1194 if (dialog->prpl_info->register_user != NULL) {
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1195 /* Register button */
6002
5849a911f6bd [gaim-migrate @ 6450]
Claudio Satriano <satriano@na.infn.it>
parents: 5979
diff changeset
1196 button = gtk_button_new_with_label(_("Register"));
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1197 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1198 gtk_widget_show(button);
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1199
5851
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1200 g_signal_connect(G_OBJECT(button), "clicked",
44f203e1a418 [gaim-migrate @ 6282]
Christian Hammond <chipx86@chipx86.com>
parents: 5850
diff changeset
1201 G_CALLBACK(register_account_prefs_cb), dialog);
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1202 }
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1203
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1204 /* Cancel button */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1205 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1206 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1207 gtk_widget_show(button);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1208
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1209 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1210 G_CALLBACK(cancel_account_prefs_cb), dialog);
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1211
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1212 /* Save button */
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1213 button = gtk_button_new_from_stock(GTK_STOCK_SAVE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1214 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
1215
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1216 if (dialog->account == NULL)
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1217 gtk_widget_set_sensitive(button, FALSE);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1218
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1219 gtk_widget_show(button);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1220
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1221 dialog->ok_button = button;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1222
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1223 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1224 G_CALLBACK(ok_account_prefs_cb), dialog);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1225
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1226 /* Show the window. */
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
1227 gtk_widget_show(win);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1228 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1229
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1230 /**************************************************************************
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1231 * Accounts Dialog
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1232 **************************************************************************/
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1233
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1234 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1235 signed_on_off_cb(GaimConnection *gc, AccountsDialog *dialog)
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1236 {
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1237 GaimAccount *account = gaim_connection_get_account(gc);
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1238 GtkTreeModel *model = GTK_TREE_MODEL(dialog->model);
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1239 GtkTreeIter iter;
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1240 size_t index = g_list_index(gaim_accounts_get_all(), account);
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1241
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1242 if (gtk_tree_model_iter_nth_child(model, &iter, NULL, index)) {
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1243 gtk_list_store_set(dialog->model, &iter,
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1244 COLUMN_ONLINE, gaim_account_is_connected(account),
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1245 -1);
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1246 }
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1247 }
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1248
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1249 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1250 drag_data_get_cb(GtkWidget *widget, GdkDragContext *ctx,
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1251 GtkSelectionData *data, guint info, guint time,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1252 AccountsDialog *dialog)
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1253 {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1254 if (data->target == gdk_atom_intern("GAIM_ACCOUNT", FALSE)) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1255 GtkTreeRowReference *ref;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1256 GtkTreePath *source_row;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1257 GtkTreeIter iter;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1258 GaimAccount *account = NULL;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1259 GValue val = {0};
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1260
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1261 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
1262 source_row = gtk_tree_row_reference_get_path(ref);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1263
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1264 if (source_row == NULL)
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1265 return;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1266
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1267 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1268 source_row);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1269 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1270 COLUMN_DATA, &val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1271
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1272 dialog->drag_iter = iter;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1273
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1274 account = g_value_get_pointer(&val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1275
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1276 gtk_selection_data_set(data, gdk_atom_intern("GAIM_ACCOUNT", FALSE),
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1277 8, (void *)&account, sizeof(account));
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1278
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1279 gtk_tree_path_free(source_row);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1280 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1281 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1282
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1283 static void
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1284 move_account_after(GtkListStore *store, GtkTreeIter *iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1285 GtkTreeIter *position)
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1286 {
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1287 GtkTreeIter new_iter;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1288 GaimAccount *account;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1289
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1290 gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1291 COLUMN_DATA, &account,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1292 -1);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1293
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1294 gtk_list_store_insert_after(store, &new_iter, position);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1295
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1296 set_account(store, &new_iter, account);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1297
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1298 gtk_list_store_remove(store, iter);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1299 }
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1300
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1301 static void
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1302 move_account_before(GtkListStore *store, GtkTreeIter *iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1303 GtkTreeIter *position)
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1304 {
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1305 GtkTreeIter new_iter;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1306 GaimAccount *account;
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1307
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1308 gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1309 COLUMN_DATA, &account,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1310 -1);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1311
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1312 gtk_list_store_insert_before(store, &new_iter, position);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1313
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1314 set_account(store, &new_iter, account);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1315
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1316 gtk_list_store_remove(store, iter);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1317 }
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1318
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1319 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1320 drag_data_received_cb(GtkWidget *widget, GdkDragContext *ctx,
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1321 guint x, guint y, GtkSelectionData *sd,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1322 guint info, guint t, AccountsDialog *dialog)
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1323 {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1324 if (sd->target == gdk_atom_intern("GAIM_ACCOUNT", FALSE) && sd->data) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1325 size_t dest_index;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1326 GaimAccount *a = NULL;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1327 GtkTreePath *path = NULL;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1328 GtkTreeViewDropPosition position;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1329
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1330 memcpy(&a, sd->data, sizeof(a));
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1331
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1332 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
1333 &path, &position)) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1334
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1335 GtkTreeIter iter;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1336 GaimAccount *account;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1337 GValue val = {0};
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1338
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1339 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1340 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1341 COLUMN_DATA, &val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1342
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1343 account = g_value_get_pointer(&val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1344
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1345 switch (position) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1346 case GTK_TREE_VIEW_DROP_AFTER:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1347 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1348 move_account_after(dialog->model, &dialog->drag_iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1349 &iter);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1350 dest_index = g_list_index(gaim_accounts_get_all(),
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1351 account) + 1;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1352 break;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1353
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1354 case GTK_TREE_VIEW_DROP_BEFORE:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1355 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1356 dest_index = g_list_index(gaim_accounts_get_all(),
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1357 account);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1358
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1359 move_account_before(dialog->model, &dialog->drag_iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1360 &iter);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1361 break;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1362
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1363 default:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1364 return;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1365 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1366
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1367 gaim_accounts_reorder(a, dest_index);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1368 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1369 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1370 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1371
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1372 static gint
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1373 accedit_win_destroy_cb(GtkWidget *w, GdkEvent *event, AccountsDialog *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1374 {
5725
6a4612466158 [gaim-migrate @ 6147]
Nathan Walp <nwalp@pidgin.im>
parents: 5718
diff changeset
1375 gaim_signals_disconnect_by_handle(dialog);
6a4612466158 [gaim-migrate @ 6147]
Nathan Walp <nwalp@pidgin.im>
parents: 5718
diff changeset
1376
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1377 g_free(accounts_dialog);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1378 accounts_dialog = NULL;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1379
5709
0df32607f388 [gaim-migrate @ 6130]
Christian Hammond <chipx86@chipx86.com>
parents: 5708
diff changeset
1380
5617
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1381 /* See if we're the main window here. */
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1382 if (GAIM_GTK_BLIST(gaim_get_blist())->window == NULL &&
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1383 mainwindow == NULL && gaim_connections_get_all() == NULL) {
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1384
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1385 do_quit();
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1386 }
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1387
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1388 return FALSE;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1389 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1390
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1391 static gboolean
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1392 configure_cb(GtkWidget *w, GdkEventConfigure *event, AccountsDialog *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1393 {
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1394 if (GTK_WIDGET_VISIBLE(w)) {
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1395 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
1396 int col_width;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1397 int difference;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1398
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1399 gaim_prefs_set_int("/gaim/gtk/accounts/dialog/width", event->width);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1400 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
1401
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1402 col_width = gtk_tree_view_column_get_width(dialog->screenname_col);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1403
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1404 if (col_width == 0)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1405 return FALSE;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1406
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1407 difference = (MAX(old_width, event->width) -
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1408 MIN(old_width, event->width));
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1409
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1410 if (difference == 0)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1411 return FALSE;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1412
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1413 if (old_width < event->width)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1414 gtk_tree_view_column_set_min_width(dialog->screenname_col,
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1415 col_width + difference);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1416 else
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1417 gtk_tree_view_column_set_max_width(dialog->screenname_col,
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1418 col_width - difference);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1419 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1420
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1421 return FALSE;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1422 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1423
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1424 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1425 add_account_cb(GtkWidget *w, AccountsDialog *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1426 {
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1427 show_account_prefs(ADD_ACCOUNT_DIALOG, dialog, NULL);
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1428 }
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1429
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1430 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1431 modify_account_sel(GtkTreeModel *model, GtkTreePath *path,
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1432 GtkTreeIter *iter, gpointer data)
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1433 {
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1434 GaimAccount *account;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1435
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1436 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1);
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1437
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1438 if (account != NULL)
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1439 show_account_prefs(MODIFY_ACCOUNT_DIALOG, data, account);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1440 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1441
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1442 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1443 modify_account_cb(GtkWidget *w, AccountsDialog *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1444 {
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1445 GtkTreeSelection *selection;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1446
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1447 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1448
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1449 gtk_tree_selection_selected_foreach(selection, modify_account_sel,
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1450 dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1451 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1452
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1453 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1454 delete_account_cb(GaimAccount *account)
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1455 {
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1456 size_t index;
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1457 GtkTreeIter iter;
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1458
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1459 index = g_list_index(gaim_accounts_get_all(), account);
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1460
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1461 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(accounts_dialog->model),
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1462 &iter, NULL, index)) {
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1463
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1464 gtk_list_store_remove(accounts_dialog->model, &iter);
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1465 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1466
5710
3c2bf5725bb0 [gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents: 5709
diff changeset
1467 gaim_accounts_remove(account);
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1468 gaim_account_destroy(account);
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1469 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1470
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1471 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1472 ask_delete_account_sel(GtkTreeModel *model, GtkTreePath *path,
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1473 GtkTreeIter *iter, gpointer data)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1474 {
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1475 GaimAccount *account;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1476
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1477 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1);
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1478
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1479 if (account != NULL) {
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1480 char buf[8192];
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1481
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1482 g_snprintf(buf, sizeof(buf),
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1483 _("Are you sure you want to delete %s?"),
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1484 gaim_account_get_username(account));
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1485
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1486 gaim_request_action(NULL, NULL, buf, NULL, 1, account, 2,
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1487 _("Delete"), delete_account_cb,
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1488 _("Cancel"), NULL);
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1489 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1490 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1491
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1492 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1493 ask_delete_account_cb(GtkWidget *w, AccountsDialog *dialog)
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1494 {
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1495 GtkTreeSelection *selection;
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1496
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1497 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1498
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1499 gtk_tree_selection_selected_foreach(selection, ask_delete_account_sel,
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1500 dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1501 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1502
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1503 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1504 close_accounts_cb(GtkWidget *w, AccountsDialog *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1505 {
5617
6e2ddc60a41b [gaim-migrate @ 6024]
Christian Hammond <chipx86@chipx86.com>
parents: 5615
diff changeset
1506 gtk_widget_destroy(dialog->window);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1507
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1508 accedit_win_destroy_cb(NULL, NULL, dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1509 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1510
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1511 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1512 online_cb(GtkCellRendererToggle *renderer, gchar *path_str, gpointer data)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1513 {
5592
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1514 AccountsDialog *dialog = (AccountsDialog *)data;
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1515 GaimAccount *account;
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1516 GtkTreeModel *model = GTK_TREE_MODEL(dialog->model);
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1517 GtkTreeIter iter;
5637
78c02cfa43ea [gaim-migrate @ 6044]
Nathan Walp <nwalp@pidgin.im>
parents: 5620
diff changeset
1518 gboolean online;
5592
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1519
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1520 gtk_tree_model_get_iter_from_string(model, &iter, path_str);
5718
18d9021ce436 [gaim-migrate @ 6140]
Christian Hammond <chipx86@chipx86.com>
parents: 5717
diff changeset
1521 gtk_tree_model_get(model, &iter,
18d9021ce436 [gaim-migrate @ 6140]
Christian Hammond <chipx86@chipx86.com>
parents: 5717
diff changeset
1522 COLUMN_DATA, &account,
18d9021ce436 [gaim-migrate @ 6140]
Christian Hammond <chipx86@chipx86.com>
parents: 5717
diff changeset
1523 COLUMN_ONLINE, &online,
18d9021ce436 [gaim-migrate @ 6140]
Christian Hammond <chipx86@chipx86.com>
parents: 5717
diff changeset
1524 -1);
5592
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1525
5855
d95791d925db [gaim-migrate @ 6286]
Nathan Walp <nwalp@pidgin.im>
parents: 5852
diff changeset
1526 if (online) {
d95791d925db [gaim-migrate @ 6286]
Nathan Walp <nwalp@pidgin.im>
parents: 5852
diff changeset
1527 account->gc->wants_to_die = TRUE;
5592
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1528 gaim_account_disconnect(account);
5855
d95791d925db [gaim-migrate @ 6286]
Nathan Walp <nwalp@pidgin.im>
parents: 5852
diff changeset
1529 } else {
5592
695ba942011a [gaim-migrate @ 5996]
Christian Hammond <chipx86@chipx86.com>
parents: 5581
diff changeset
1530 gaim_account_connect(account);
5855
d95791d925db [gaim-migrate @ 6286]
Nathan Walp <nwalp@pidgin.im>
parents: 5852
diff changeset
1531 }
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1532 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1533
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1534 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1535 autologin_cb(GtkCellRendererToggle *renderer, gchar *path_str,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1536 gpointer data)
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1537 {
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1538 AccountsDialog *dialog = (AccountsDialog *)data;
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1539 GaimAccount *account;
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1540 GtkTreeModel *model = GTK_TREE_MODEL(dialog->model);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1541 GtkTreeIter iter;
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1542 gboolean autologin;
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1543
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1544 gtk_tree_model_get_iter_from_string(model, &iter, path_str);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1545 gtk_tree_model_get(model, &iter,
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1546 COLUMN_DATA, &account,
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1547 COLUMN_AUTOLOGIN, &autologin,
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1548 -1);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1549
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1550 gaim_account_set_auto_login(account, GAIM_GTK_UI, !autologin);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1551
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1552 gtk_list_store_set(dialog->model, &iter,
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1553 COLUMN_AUTOLOGIN, !autologin,
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1554 -1);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1555 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1556
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1557 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1558 add_columns(GtkWidget *treeview, AccountsDialog *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1559 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1560 GtkCellRenderer *renderer;
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1561 GtkTreeViewColumn *column;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1562
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1563 /* Screen name column */
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1564 column = gtk_tree_view_column_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1565 gtk_tree_view_column_set_title(column, _("Screenname"));
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1566 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1567
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1568 /* Icon */
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1569 renderer = gtk_cell_renderer_pixbuf_new();
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1570 gtk_tree_view_column_pack_start(column, renderer, FALSE);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1571 gtk_tree_view_column_add_attribute(column, renderer,
5693
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1572 "pixbuf", COLUMN_ICON);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1573
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1574 /* Screen name */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1575 renderer = gtk_cell_renderer_text_new();
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1576 gtk_tree_view_column_pack_start(column, renderer, TRUE);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1577 gtk_tree_view_column_add_attribute(column, renderer,
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1578 "text", COLUMN_SCREENNAME);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1579 dialog->screenname_col = column;
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1580
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1581 /* Online? */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1582 renderer = gtk_cell_renderer_toggle_new();
5782
84530ccb6e23 [gaim-migrate @ 6207]
Christian Hammond <chipx86@chipx86.com>
parents: 5781
diff changeset
1583
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1584 g_signal_connect(G_OBJECT(renderer), "toggled",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1585 G_CALLBACK(online_cb), dialog);
5693
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1586
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1587 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),
5693
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1588 -1, _("Online"),
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1589 renderer,
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1590 "active", COLUMN_ONLINE,
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1591 NULL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1592
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1593 /* Auto-login? */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1594 renderer = gtk_cell_renderer_toggle_new();
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1595
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1596 g_signal_connect(G_OBJECT(renderer), "toggled",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1597 G_CALLBACK(autologin_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1598
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1599 column = gtk_tree_view_column_new_with_attributes(_("Auto-login"),
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1600 renderer, "active", COLUMN_AUTOLOGIN, NULL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1601
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1602 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1603
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1604 /* Protocol name */
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1605 column = gtk_tree_view_column_new();
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1606 gtk_tree_view_column_set_title(column, _("Protocol"));
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1607 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1608
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1609 renderer = gtk_cell_renderer_text_new();
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1610 gtk_tree_view_column_pack_start(column, renderer, TRUE);
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1611 gtk_tree_view_column_add_attribute(column, renderer,
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1612 "text", COLUMN_PROTOCOL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1613 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1614
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1615 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1616 set_account(GtkListStore *store, GtkTreeIter *iter, GaimAccount *account)
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1617 {
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1618 GdkPixbuf *pixbuf;
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1619 GdkPixbuf *scale;
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1620
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1621 scale = NULL;
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1622
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1623 pixbuf = create_prpl_icon(account);
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1624
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1625 if (pixbuf != NULL)
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1626 scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, GDK_INTERP_BILINEAR);
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1627
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1628 gtk_list_store_set(store, iter,
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1629 COLUMN_ICON, scale,
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1630 COLUMN_SCREENNAME, gaim_account_get_username(account),
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1631 COLUMN_ONLINE, gaim_account_is_connected(account),
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1632 COLUMN_AUTOLOGIN, gaim_account_get_auto_login(account, GAIM_GTK_UI),
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1633 COLUMN_PROTOCOL, proto_name(gaim_account_get_protocol(account)),
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1634 COLUMN_DATA, account,
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1635 -1);
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1636
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1637 if (pixbuf != NULL) g_object_unref(G_OBJECT(pixbuf));
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1638 if (scale != NULL) g_object_unref(G_OBJECT(scale));
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1639 }
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1640
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1641 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1642 add_account(AccountsDialog *dialog, GaimAccount *account)
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1643 {
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1644 GtkTreeIter iter;
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1645
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1646 gtk_list_store_append(dialog->model, &iter);
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1647
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1648 set_account(dialog->model, &iter, account);
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1649 }
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1650
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1651 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1652 populate_accounts_list(AccountsDialog *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1653 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1654 GList *l;
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1655
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1656 gtk_list_store_clear(dialog->model);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1657
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
1658 for (l = gaim_accounts_get_all(); l != NULL; l = l->next)
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1659 add_account(dialog, (GaimAccount *)l->data);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1660 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1661
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1662 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1663 account_selected_cb(GtkTreeSelection *sel, AccountsDialog *dialog)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1664 {
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1665 gtk_widget_set_sensitive(dialog->modify_button, TRUE);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1666 gtk_widget_set_sensitive(dialog->delete_button, TRUE);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1667 }
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1668
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1669 static GtkWidget *
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1670 create_accounts_list(AccountsDialog *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1671 {
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1672 GtkWidget *sw;
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1673 GtkWidget *treeview;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1674 GtkTreeSelection *sel;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1675 GtkTargetEntry gte[] = {{"GAIM_ACCOUNT", GTK_TARGET_SAME_APP, 0}};
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1676
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1677 /* Create the scrolled window. */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1678 sw = gtk_scrolled_window_new(0, 0);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1679 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1680 GTK_POLICY_AUTOMATIC,
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1681 GTK_POLICY_ALWAYS);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1682 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1683 GTK_SHADOW_IN);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1684 gtk_widget_show(sw);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1685
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1686 /* Create the list model. */
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1687 dialog->model = gtk_list_store_new(NUM_COLUMNS,
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1688 GDK_TYPE_PIXBUF, G_TYPE_STRING,
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1689 G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
1690 G_TYPE_STRING, G_TYPE_POINTER);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1691
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1692 /* And now the actual treeview */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1693 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
1694 dialog->treeview = treeview;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1695 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1696 gtk_tree_selection_set_mode(
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1697 gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)),
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1698 GTK_SELECTION_MULTIPLE);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1699
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1700 gtk_container_add(GTK_CONTAINER(sw), treeview);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1701 gtk_widget_show(treeview);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1702
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1703 add_columns(treeview, dialog);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1704
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1705 populate_accounts_list(dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1706
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1707 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1708 g_signal_connect(G_OBJECT(sel), "changed",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1709 G_CALLBACK(account_selected_cb), dialog);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1710
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1711 /* Setup DND. I wanna be an orc! */
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1712 gtk_tree_view_enable_model_drag_source(
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1713 GTK_TREE_VIEW(treeview), GDK_BUTTON1_MASK, gte,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1714 1, GDK_ACTION_COPY);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1715 gtk_tree_view_enable_model_drag_dest(
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1716 GTK_TREE_VIEW(treeview), gte, 1,
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1717 GDK_ACTION_COPY | GDK_ACTION_MOVE);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1718
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1719 g_signal_connect(G_OBJECT(treeview), "drag-data-received",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1720 G_CALLBACK(drag_data_received_cb), dialog);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1721 g_signal_connect(G_OBJECT(treeview), "drag-data-get",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1722 G_CALLBACK(drag_data_get_cb), dialog);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1723
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1724 return sw;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1725 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1726
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1727 void
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1728 gaim_gtk_account_dialog_show(void)
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1729 {
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1730 AccountsDialog *dialog;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1731 GtkWidget *win;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1732 GtkWidget *vbox;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1733 GtkWidget *bbox;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1734 GtkWidget *sw;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1735 GtkWidget *sep;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1736 GtkWidget *button;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1737 int width, height;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1738
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1739 if (accounts_dialog != NULL)
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1740 return;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1741
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1742 accounts_dialog = dialog = g_new0(AccountsDialog, 1);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1743
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1744 width = gaim_prefs_get_int("/gaim/gtk/accounts/dialog/width");
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1745 height = gaim_prefs_get_int("/gaim/gtk/accounts/dialog/height");
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1746
5803
4f448aede95e [gaim-migrate @ 6233]
Christian Hammond <chipx86@chipx86.com>
parents: 5802
diff changeset
1747 dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1748 gtk_window_set_default_size(GTK_WINDOW(win), width, height);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1749 gtk_window_set_role(GTK_WINDOW(win), "accounts");
5693
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
1750 gtk_window_set_title(GTK_WINDOW(win), _("Accounts"));
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1751 gtk_container_set_border_width(GTK_CONTAINER(win), 12);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1752
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1753 g_signal_connect(G_OBJECT(win), "delete_event",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1754 G_CALLBACK(accedit_win_destroy_cb), accounts_dialog);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1755 g_signal_connect(G_OBJECT(win), "configure_event",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1756 G_CALLBACK(configure_cb), accounts_dialog);
5563
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 /* Setup the vbox */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1759 vbox = gtk_vbox_new(FALSE, 12);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1760 gtk_container_add(GTK_CONTAINER(win), vbox);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1761 gtk_widget_show(vbox);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1762
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1763 /* 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
1764 sw = create_accounts_list(dialog);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1765 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1766 gtk_widget_show(sw);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1767
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1768 /* Separator... */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1769 sep = gtk_hseparator_new();
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1770 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1771 gtk_widget_show(sep);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1772
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1773 /* Button box. */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1774 bbox = gtk_hbutton_box_new();
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1775 gtk_box_set_spacing(GTK_BOX(bbox), 6);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1776 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1777 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
1778 gtk_widget_show(bbox);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1779
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1780 /* Add button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1781 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1782 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1783 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1784
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1785 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1786 G_CALLBACK(add_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1787
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1788 /* Modify button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1789 button = gtk_button_new_from_stock(GAIM_STOCK_MODIFY);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1790 dialog->modify_button = button;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1791 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
1792 gtk_widget_set_sensitive(button, FALSE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1793 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1794
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1795 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1796 G_CALLBACK(modify_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1797
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1798 /* Delete button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1799 button = gtk_button_new_from_stock(GTK_STOCK_DELETE);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1800 dialog->delete_button = button;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1801 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
1802 gtk_widget_set_sensitive(button, FALSE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1803 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1804
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1805 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1806 G_CALLBACK(ask_delete_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1807
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1808 /* Close button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1809 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1810 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1811 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1812
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1813 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1814 G_CALLBACK(close_accounts_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1815
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1816 /* Setup some gaim signal handlers. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1817 gaim_signal_connect(dialog, event_signon, signed_on_off_cb, dialog);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1818 gaim_signal_connect(dialog, event_signoff, signed_on_off_cb, dialog);
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1819
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1820 gtk_widget_show(win);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1821 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1822

mercurial