annotate src/multi.c @ 4966:54cd43869333

[gaim-migrate @ 5300] fun stuff this makes the modify account dialog make a little more sense for jabber, and makes irc accounts distinguishable in the assorted dropdowns. however, there is a slight catch. IRC accounts now take the form of nick@server. The first time you log on with an IRC account, it will change it for you. However, if you try to edit the account before it gets signed on, the server will revert to the default (irc.freenode.net). So go log in with all of your IRC accounts before you go editing them ;-) committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Thu, 03 Apr 2003 02:34:48 +0000
parents b6fd57ba76e8
children 1f92610b0772
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1 /*
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2 * gaim
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3 *
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
5 *
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
9 * (at your option) any later version.
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
10 *
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
14 * GNU General Public License for more details.
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
15 *
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
19 *
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
20 */
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
21
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
22 #include <stdlib.h>
2100
a93aeb6f813d [gaim-migrate @ 2110]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2086
diff changeset
23 #include <string.h>
3067
b695cbbeee2d [gaim-migrate @ 3081]
Sean Egan <seanegan@gmail.com>
parents: 3066
diff changeset
24 #include <ctype.h>
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
25 #include <gtk/gtk.h>
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
26 #include "prpl.h"
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
27 #include "multi.h"
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
28 #include "gaim.h"
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
29 #include "conversation.h"
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
30 #include "gtklist.h"
4962
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
31 #include "gaim-disclosure.h"
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
32
4493
61ba567f9c64 [gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4491
diff changeset
33 #ifdef _WIN32
61ba567f9c64 [gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4491
diff changeset
34 #include "win32dep.h"
61ba567f9c64 [gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4491
diff changeset
35 #endif
61ba567f9c64 [gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4491
diff changeset
36
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1089
diff changeset
37 #define LOGIN_STEPS 5
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1089
diff changeset
38
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
39 GSList *connections;
3517
6b0cb60162f4 [gaim-migrate @ 3590]
Sean Egan <seanegan@gmail.com>
parents: 3510
diff changeset
40 int connecting_count = 0;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
41
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
42 static GtkWidget *acctedit = NULL;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
43 static GtkWidget *treeview = NULL; /* the treeview of names in the accteditor */
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
44 static GtkListStore *model = NULL;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
45
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
46 static GSList *mod_accounts = NULL;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
47
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
48 enum
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
49 {
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
50 COLUMN_SCREENNAME,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
51 COLUMN_ONLINE,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
52 COLUMN_AUTOLOGIN,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
53 COLUMN_PROTOCOL,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
54 COLUMN_DATA,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
55 NUM_COLUMNS
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
56 };
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
57
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
58 struct mod_account {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
59 struct gaim_account *account;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
60
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
61 /* these are temporary */
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
62 char username[64];
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
63 char show[400];
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
64 char password[32];
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
65 int options;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
66 int protocol;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
67 char proto_opt[7][256];
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
68
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
69 /* stuff for modify window */
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
70 GtkWidget *mod;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
71 GtkWidget *main;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
72 GtkWidget *name;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
73 GtkWidget *alias;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
74 GtkWidget *pwdbox;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
75 GtkWidget *pass;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
76 GtkWidget *rempass;
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
77 GtkWidget *login_frame;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
78 GtkWidget *user_frame;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
79 GtkWidget *proto_frame;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
80 GtkSizeGroup *sg;
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
81 GList *user_split_entries;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
82 GList *opt_entries;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
83
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
84 /* stuff for icon selection */
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
85 char iconfile[256];
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
86 GtkWidget *iconsel;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
87 GtkWidget *iconentry;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
88 GtkWidget *icondlg;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
89
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
90 /* stuff for mail check prompt */
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
91 GtkWidget *checkmail;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
92
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
93 /* stuff for register with server */
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
94 GtkWidget *register_user;
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
95
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
96 /* stuff for proxy options */
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
97 GtkWidget *proxy_frame;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
98 GtkWidget *proxy_host_box;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
99 GtkWidget *proxytype_menu;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
100 GtkWidget *proxyhost_entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
101 GtkWidget *proxyport_entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
102 GtkWidget *proxyuser_entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
103 GtkWidget *proxypass_entry;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
104 };
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
105
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
106
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
107 struct mod_account_opt {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
108 struct mod_account *ma;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
109 int opt;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
110 };
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
111
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
112 static void acct_signin(GtkCellRendererToggle *cell, gchar *path_str,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
113 gpointer d);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
114 static void acct_autologin(GtkCellRendererToggle *cell, gchar *path_str,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
115 gpointer d);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
116
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
117 static struct mod_account *mod_account_find(struct gaim_account *a)
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
118 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
119 GSList *m = mod_accounts;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
120 while (m) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
121 struct mod_account *ma = m->data;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
122 if (ma->account == a)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
123 return ma;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
124 m = m->next;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
125 }
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
126 return NULL;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
127 }
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
128
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
129
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
130 struct gaim_connection *new_gaim_conn(struct gaim_account *account)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
131 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
132 struct gaim_connection *gc = g_new0(struct gaim_connection, 1);
1391
d606da211acb [gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
133 gc->edittype = EDIT_GC;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
134 gc->protocol = account->protocol;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
135 gc->prpl = find_prpl(account->protocol);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
136 g_snprintf(gc->username, sizeof(gc->username), "%s", account->username);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
137 g_snprintf(gc->password, sizeof(gc->password), "%s", account->password);
1153
3063e6743913 [gaim-migrate @ 1163]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1124
diff changeset
138 gc->keepalive = 0;
2382
569ae9f2bb89 [gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2380
diff changeset
139 gc->inpa = 0;
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 993
diff changeset
140 gc->buddy_chats = NULL;
4111
ee884f1d7ae3 [gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents: 4082
diff changeset
141 gc->away = NULL;
ee884f1d7ae3 [gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents: 4082
diff changeset
142 gc->away_state = NULL;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
143
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
144 connections = g_slist_append(connections, gc);
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
145
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
146 account->gc = gc;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
147 gc->account = account;
1089
f0f5c10cce63 [gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1086
diff changeset
148
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
149 return gc;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
150 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
151
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
152 struct meter_window {
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
153 GtkWidget *window;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
154 GtkTable *table;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
155 gint rows;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
156 gint active_count;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
157 } *meter_win = NULL;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
158
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
159 void destroy_gaim_conn(struct gaim_connection *gc)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
160 {
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
161 GaimBlistNode *gnode,*bnode;
1063
e1408fb04c36 [gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1058
diff changeset
162 struct group *m;
e1408fb04c36 [gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1058
diff changeset
163 struct buddy *n;
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
164 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
165 if(!GAIM_BLIST_NODE_IS_GROUP(gnode))
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
166 continue;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
167 m = (struct group *)gnode;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
168 for(bnode = gnode->child; bnode; bnode = bnode->next) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
169 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode))
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
170 continue;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
171 n = (struct buddy *)bnode;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
172 if(n->account == gc->account) {
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
173 n->present = 0;
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
174 }
1063
e1408fb04c36 [gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1058
diff changeset
175 }
2597
2ced57c58653 [gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2568
diff changeset
176 }
4111
ee884f1d7ae3 [gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents: 4082
diff changeset
177 g_free(gc->away);
ee884f1d7ae3 [gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents: 4082
diff changeset
178 g_free(gc->away_state);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
179 g_free(gc);
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
180
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
181 if (!connections && mainwindow)
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
182 gtk_widget_show(mainwindow);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
183 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
184
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
185 static void quit_acctedit(gpointer d)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
186 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
187 if (acctedit) {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
188 save_prefs();
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
189 gtk_widget_destroy(acctedit);
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
190 acctedit = NULL;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
191 }
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
192
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
193 treeview = NULL;
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
194
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
195 if (!d && !GAIM_GTK_BLIST(gaim_get_blist())->window &&
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
196 !mainwindow && !connections) {
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
197
4082
4b04ecb3eb97 [gaim-migrate @ 4297]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
198 do_quit();
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
199 }
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
200 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
201
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
202 static void on_delete_acctedit(GtkWidget *w, GdkEvent *ev, gpointer d)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
203 {
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
204 quit_acctedit(d);
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
205 }
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
206
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
207 static void on_close_acctedit(GtkButton *button, gpointer d)
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
208 {
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
209 quit_acctedit(d);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
210 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
211
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
212 static char *proto_name(int proto)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
213 {
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
214 struct prpl *p = find_prpl(proto);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
215 if (p && p->name)
3572
bdd0bebd2d04 [gaim-migrate @ 3670]
Sean Egan <seanegan@gmail.com>
parents: 3570
diff changeset
216 return p->name;
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
217 else
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
218 return "Unknown";
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
219 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
220
2204
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
221 void regenerate_user_list()
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
222 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
223 GSList *accounts = gaim_accounts;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
224 struct gaim_account *a;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
225 GtkTreeIter iter;
2204
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
226
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
227 if (!acctedit)
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
228 return;
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
229
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
230 gtk_list_store_clear(model);
2204
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
231
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
232 while (accounts) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
233 a = (struct gaim_account *)accounts->data;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
234
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
235 gtk_list_store_append(model, &iter);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
236 gtk_list_store_set(model, &iter,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
237 COLUMN_SCREENNAME, a->username,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
238 COLUMN_ONLINE, (a->gc ? TRUE : FALSE),
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
239 COLUMN_AUTOLOGIN, (a->options & OPT_ACCT_AUTO),
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
240 COLUMN_PROTOCOL, proto_name(a->protocol),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
241 COLUMN_DATA, a,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
242 -1);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
243 accounts = accounts->next;
2204
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
244 }
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
245 }
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
246
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
247 static gboolean get_iter_from_data(GtkTreeView *treeview,
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
248 struct gaim_account *a, GtkTreeIter *iter)
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
249 {
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
250 return gtk_tree_model_iter_nth_child(gtk_tree_view_get_model(treeview),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
251 iter, NULL,
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
252 g_slist_index(gaim_accounts, a));
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
253 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
254
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
255 static void add_columns(GtkWidget *treeview)
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
256 {
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
257 GtkCellRenderer *renderer;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
258 /* GtkTreeViewColumn *column; */
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
259
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
260 /* Screennames */
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
261 renderer = gtk_cell_renderer_text_new();
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
262 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
263 -1, _("Screenname"),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
264 renderer,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
265 "text", COLUMN_SCREENNAME,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
266 NULL);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
267
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
268 /* Online? */
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
269 renderer = gtk_cell_renderer_toggle_new();
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
270 g_signal_connect(G_OBJECT(renderer), "toggled",
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
271 G_CALLBACK(acct_signin), model);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
272 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
273 -1, _("Online"),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
274 renderer,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
275 "active", COLUMN_ONLINE,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
276 NULL);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
277
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
278 /* Auto-login? */
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
279 renderer = gtk_cell_renderer_toggle_new();
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
280 g_signal_connect(G_OBJECT(renderer), "toggled",
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
281 G_CALLBACK(acct_autologin), model);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
282 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
283 -1, _("Auto-login"),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
284 renderer,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
285 "active", COLUMN_AUTOLOGIN,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
286 NULL);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
287
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
288 /* Protocol */
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
289 renderer = gtk_cell_renderer_text_new();
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
290 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
291 -1, _("Protocol"),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
292 renderer,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
293 "text", COLUMN_PROTOCOL,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
294 NULL);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
295
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
296 /* Data */
4630
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4617
diff changeset
297 /*
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
298 column = gtk_tree_view_column_new();
4630
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4617
diff changeset
299 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
300 gtk_tree_view_column_set_visible(column, FALSE);
4630
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4617
diff changeset
301 */
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
302 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
303
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
304 static GtkWidget *generate_list()
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
305 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
306 GtkWidget *win;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
307
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
308 win = gtk_scrolled_window_new(0, 0);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
309 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(win),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
310 GTK_POLICY_AUTOMATIC,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
311 GTK_POLICY_ALWAYS);
4550
972af41f277c [gaim-migrate @ 4830]
Christian Hammond <chipx86@chipx86.com>
parents: 4493
diff changeset
312 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(win),
972af41f277c [gaim-migrate @ 4830]
Christian Hammond <chipx86@chipx86.com>
parents: 4493
diff changeset
313 GTK_SHADOW_IN);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
314
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
315 /* Create the list model. */
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
316 model = gtk_list_store_new(NUM_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
317 G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
318
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
319 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
320 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
321 gtk_tree_selection_set_mode(
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
322 gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
323 GTK_SELECTION_MULTIPLE);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
324
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
325 add_columns(treeview);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
326
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
327 gtk_container_add(GTK_CONTAINER(win), treeview);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
328 gtk_widget_show(treeview);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
329
2204
5014b802eb41 [gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2203
diff changeset
330 regenerate_user_list();
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
331 gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
332 gtk_widget_show(win);
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
333 return win;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
334 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
335
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
336 static void delmod(GtkWidget *w, struct mod_account *ma)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
337 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
338 mod_accounts = g_slist_remove(mod_accounts, ma);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
339 g_free(ma);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
340 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
341
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
342 static void mod_opt(GtkWidget *b, struct mod_account_opt *mao)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
343 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
344 mao->ma->options = mao->ma->options ^ mao->opt;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
345 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
346
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
347 static void free_mao(GtkWidget *b, struct mod_account_opt *mao)
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
348 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
349 g_free(mao);
1051
713b0e14e0a9 [gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
350 }
713b0e14e0a9 [gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
351
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
352 static GtkWidget *acct_button(const char *text, struct mod_account *ma, int option, GtkWidget *box)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
353 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
354 GtkWidget *button;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
355 struct mod_account_opt *mao = g_new0(struct mod_account_opt, 1);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
356 button = gtk_check_button_new_with_label(text);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
357 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), (ma->options & option));
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
358 gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
359 mao->ma = ma;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
360 mao->opt = option;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
361 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(mod_opt), mao);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
362 g_signal_connect(GTK_OBJECT(button), "destroy", G_CALLBACK(free_mao), mao);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
363 gtk_widget_show(button);
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
364 return button;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
365 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
366
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
367 static void process_login_opts(struct mod_account *ma) {
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
368 struct prpl *p = find_prpl(ma->protocol);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
369 const char *entry_text;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
370 char *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(ma->name)));
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
371 char *tmp;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
372 GList *entries = ma->user_split_entries;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
373 GList *user_splits = NULL;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
374 if(p)
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
375 user_splits = p->user_splits;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
376 while(user_splits) {
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
377 GtkWidget *entry = entries->data;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
378 struct proto_user_split *pus = user_splits->data;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
379 char tmp_sep[2] = " ";
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
380 entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
381
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
382 tmp_sep[0] = pus->sep;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
383 tmp = g_strconcat(username, tmp_sep, *entry_text ? entry_text : pus->def, NULL);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
384 g_free(username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
385 username = tmp;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
386
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
387 entries = entries->next;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
388 user_splits = user_splits->next;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
389 }
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
390
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
391 g_snprintf(ma->username, sizeof(ma->username), "%s", username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
392 g_free(username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
393
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
394 entry_text = gtk_entry_get_text(GTK_ENTRY(ma->pass));
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
395 g_snprintf(ma->password, sizeof(ma->password), "%s", entry_text);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
396
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
397 entry_text = gtk_entry_get_text(GTK_ENTRY(ma->alias));
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
398 g_snprintf(ma->show, sizeof(ma->show), "%s", entry_text);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
399 }
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
400
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
401 static void ok_mod(GtkWidget *w, struct mod_account *ma)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
402 {
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
403 GList *tmp;
1954
c15c3a3f6cd4 [gaim-migrate @ 1964]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1942
diff changeset
404 const char *txt;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
405 struct gaim_account *a;
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
406 struct prpl *p = find_prpl(ma->protocol);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
407 GtkTreeIter iter;
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
408 int proxytype;
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
409
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
410 if (!ma->account) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
411 txt = gtk_entry_get_text(GTK_ENTRY(ma->name));
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
412 ma->account = gaim_account_new(txt, ma->protocol, ma->options);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
413 }
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
414 a = ma->account;
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
415
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
416 a->options = ma->options;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
417 a->protocol = ma->protocol;
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
418
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
419 process_login_opts(ma);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
420 g_snprintf(a->username, sizeof(a->username), "%s", ma->username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
421 g_snprintf(a->alias, sizeof(a->alias), "%s", ma->show);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
422
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
423 if (a->options & OPT_ACCT_REM_PASS)
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
424 g_snprintf(a->password, sizeof(a->password), "%s", ma->password);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
425 else
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
426 a->password[0] = '\0';
2190
24d947eff811 [gaim-migrate @ 2200]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2165
diff changeset
427
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
428 if (get_iter_from_data(GTK_TREE_VIEW(treeview), a, &iter)) {
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
429 gtk_list_store_set(model, &iter,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
430 COLUMN_SCREENNAME, a->username,
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
431 COLUMN_AUTOLOGIN, (a->options & OPT_ACCT_AUTO),
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
432 COLUMN_PROTOCOL, proto_name(a->protocol),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
433 -1);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
434 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
435
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
436 #if 0
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
437 i = gtk_clist_find_row_from_data(GTK_CLIST(list), a);
2628
4054a0849461 [gaim-migrate @ 2641]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2627
diff changeset
438 gtk_clist_set_text(GTK_CLIST(list), i, 0, a->username);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
439 gtk_clist_set_text(GTK_CLIST(list), i, 2,
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
440 (a->options & OPT_ACCT_AUTO) ? "True" : "False");
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
441 gtk_clist_set_text(GTK_CLIST(list), i, 3, proto_name(a->protocol));
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
442 #endif
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
443
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
444 tmp = ma->opt_entries;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
445 while (tmp) {
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
446 GtkEntry *entry = tmp->data;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
447 int pos = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(entry), "position"));
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
448 g_snprintf(a->proto_opt[pos], sizeof(a->proto_opt[pos]), "%s",
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2364
diff changeset
449 gtk_entry_get_text(entry));
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
450 tmp = tmp->next;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
451 }
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
452 if (ma->opt_entries)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
453 g_list_free(ma->opt_entries);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
454 ma->opt_entries = NULL;
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
455
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
456 g_snprintf(a->iconfile, sizeof(a->iconfile), "%s", ma->iconfile);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
457 if (ma->icondlg)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
458 gtk_widget_destroy(ma->icondlg);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
459 ma->icondlg = NULL;
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
460
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
461 if(ma->account->gpi)
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
462 g_free(ma->account->gpi);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
463 ma->account->gpi = NULL;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
464
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
465 proxytype = GPOINTER_TO_INT(g_object_get_data(
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
466 G_OBJECT(gtk_menu_get_active(GTK_MENU(ma->proxytype_menu))),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
467 "proxytype"));
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
468
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
469 if(proxytype != PROXY_USE_GLOBAL) {
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
470 struct gaim_proxy_info *gpi = g_new0(struct gaim_proxy_info, 1);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
471 gpi->proxytype = proxytype;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
472 g_snprintf(gpi->proxyhost, sizeof(gpi->proxyhost), "%s", gtk_entry_get_text(GTK_ENTRY(ma->proxyhost_entry)));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
473 gpi->proxyport = atoi(gtk_entry_get_text(GTK_ENTRY(ma->proxyport_entry)));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
474 g_snprintf(gpi->proxyuser, sizeof(gpi->proxyuser), "%s", gtk_entry_get_text(GTK_ENTRY(ma->proxyuser_entry)));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
475 g_snprintf(gpi->proxypass, sizeof(gpi->proxypass), "%s", gtk_entry_get_text(GTK_ENTRY(ma->proxypass_entry)));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
476
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
477 ma->account->gpi = gpi;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
478 }
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
479
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
480 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
481 * See if user registration is supported/required
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
482 */
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
483 if(!p) {
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
484 /* TBD: error dialog here! (This should never happen, you know...) */
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
485 fprintf(stderr, "dbg: couldn't find protocol for protocol number %d!\n", ma->protocol);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
486 fflush(stderr);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
487 } else {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
488 if(p->register_user != NULL &&
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
489 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ma->register_user)) == TRUE) {
4040
89b56ab2b692 [gaim-migrate @ 4248]
Luke Schierer <lschiere@pidgin.im>
parents: 3885
diff changeset
490 ref_protocol(p);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
491 p->register_user(a);
4040
89b56ab2b692 [gaim-migrate @ 4248]
Luke Schierer <lschiere@pidgin.im>
parents: 3885
diff changeset
492 /* we don't unref the protocol because register user has callbacks
89b56ab2b692 [gaim-migrate @ 4248]
Luke Schierer <lschiere@pidgin.im>
parents: 3885
diff changeset
493 * that need to get called first, then they will unref the protocol
89b56ab2b692 [gaim-migrate @ 4248]
Luke Schierer <lschiere@pidgin.im>
parents: 3885
diff changeset
494 * appropriately */
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
495 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
496 }
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
497
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
498 save_prefs();
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
499
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
500 gtk_widget_destroy(ma->mod);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
501 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
502
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
503 static void cancel_mod(GtkWidget *w, struct mod_account *ma)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
504 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
505 if (ma->opt_entries)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
506 g_list_free(ma->opt_entries);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
507 ma->opt_entries = NULL;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
508 if (ma->icondlg)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
509 gtk_widget_destroy(ma->icondlg);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
510 ma->icondlg = NULL;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
511 gtk_widget_destroy(ma->mod);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
512 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
513
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
514 static void generate_login_options(struct mod_account *ma, GtkWidget *box);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
515 static void generate_user_options(struct mod_account *ma, GtkWidget *box);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
516 static void generate_protocol_options(struct mod_account *ma, GtkWidget *box);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
517
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
518 static void set_prot(GtkWidget *opt, int proto)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
519 {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
520 struct mod_account *ma = g_object_get_data(G_OBJECT(opt), "mod_account");
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
521 struct prpl *p;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
522 if (ma->protocol != proto) {
1086
ce201056e7a6 [gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1075
diff changeset
523 int i;
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
524
1878
75643b9f4261 [gaim-migrate @ 1888]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1817
diff changeset
525 for (i = 0; i < 7; i++)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
526 ma->proto_opt[i][0] = '\0';
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
527 p = find_prpl(ma->protocol);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
528
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
529 process_login_opts(ma);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
530
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
531 ma->protocol = proto;
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
532
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
533 if(!ma->account)
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
534 g_snprintf(ma->username, sizeof(ma->username), "%s",
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
535 gtk_entry_get_text(GTK_ENTRY(ma->name)));
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
536
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
537 generate_login_options(ma, ma->main);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
538 generate_user_options(ma, ma->main);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
539 generate_protocol_options(ma, ma->main);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
540 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
541 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
542
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
543 static GtkWidget *make_protocol_menu(GtkWidget *box, struct mod_account *ma)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
544 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
545 GtkWidget *optmenu;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
546 GtkWidget *menu;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
547 GtkWidget *opt;
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
548 GSList *p = protocols;
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
549 struct prpl *e;
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
550 int count = 0;
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
551 gboolean found = FALSE;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
552
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
553 optmenu = gtk_option_menu_new();
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
554 gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 5);
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
555 gtk_widget_show(optmenu);
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
556
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
557 menu = gtk_menu_new();
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
558
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
559 while (p) {
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
560 e = (struct prpl *)p->data;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
561 if (e->protocol == ma->protocol)
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
562 found = TRUE;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
563 if (!found)
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
564 count++;
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
565 if (e->name)
3572
bdd0bebd2d04 [gaim-migrate @ 3670]
Sean Egan <seanegan@gmail.com>
parents: 3570
diff changeset
566 opt = gtk_menu_item_new_with_label(e->name);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
567 else
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
568 opt = gtk_menu_item_new_with_label("Unknown");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
569 g_object_set_data(G_OBJECT(opt), "mod_account", ma);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
570 g_signal_connect(GTK_OBJECT(opt), "activate",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
571 G_CALLBACK(set_prot), (void *)e->protocol);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
572 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
573 gtk_widget_show(opt);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
574 p = p->next;
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
575 }
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
576
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
577 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu);
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
578 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), count);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
579
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
580 return optmenu;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
581 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
582
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
583 static void des_icon_sel(GtkWidget *w, struct mod_account *ma)
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
584 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
585 w = ma->icondlg;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
586 if (ma->icondlg)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
587 ma->icondlg = NULL;
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
588 if (w)
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
589 gtk_widget_destroy(w);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
590 }
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
591
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
592 static void set_icon(GtkWidget *w, struct mod_account *ma)
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
593 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
594 GtkWidget *sel = ma->icondlg;
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3458
diff changeset
595 const char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(sel));
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
596
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
597 if (file_is_dir(file, sel))
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
598 return;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
599
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
600 gtk_entry_set_text(GTK_ENTRY(ma->iconentry), file);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
601 g_snprintf(ma->iconfile, sizeof(ma->iconfile), "%s", file);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
602 ma->icondlg = NULL;
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
603
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
604 gtk_widget_destroy(sel);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
605 }
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
606
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
607 static void sel_icon_dlg(GtkWidget *w, struct mod_account *ma)
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
608 {
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
609 GtkWidget *dlg;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
610 char buf[256];
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
611
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
612 if (ma->icondlg) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
613 gtk_widget_show(ma->icondlg);
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
614 return;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
615 }
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
616
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
617 dlg = gtk_file_selection_new(_("Load Buddy Icon"));
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
618 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(dlg));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
619 if (ma->iconfile) {
4738
34fdf9e313d5 [gaim-migrate @ 5053]
Mark Doliner <mark@kingant.net>
parents: 4703
diff changeset
620 char *tmp = g_path_get_dirname(ma->iconfile);
34fdf9e313d5 [gaim-migrate @ 5053]
Mark Doliner <mark@kingant.net>
parents: 4703
diff changeset
621 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S, tmp);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
622 g_free(tmp);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
623 } else {
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
624 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S, gaim_home_dir());
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
625 }
4738
34fdf9e313d5 [gaim-migrate @ 5053]
Mark Doliner <mark@kingant.net>
parents: 4703
diff changeset
626 gtk_file_selection_set_filename(GTK_FILE_SELECTION(dlg), buf);
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
627
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
628 g_signal_connect(GTK_OBJECT(dlg), "destroy", G_CALLBACK(des_icon_sel), ma);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
629 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(dlg)->cancel_button), "clicked",
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
630 G_CALLBACK(des_icon_sel), ma);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
631 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(dlg)->ok_button), "clicked",
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
632 G_CALLBACK(set_icon), ma);
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
633
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
634 ma->icondlg = dlg;
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
635
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
636 gtk_widget_show(dlg);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
637 }
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
638
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
639 static void reset_icon(GtkWidget *w, struct mod_account *ma)
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
640 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
641 ma->iconfile[0] = 0;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
642 gtk_entry_set_text(GTK_ENTRY(ma->iconentry), "");
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
643 }
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
644
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
645 static GtkWidget *build_icon_selection(struct mod_account *ma, GtkWidget *box)
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
646 {
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
647 GtkWidget *hbox;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
648 GtkWidget *label;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
649 GtkWidget *name;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
650 GtkWidget *browse;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
651 GtkWidget *reset;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
652
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
653 if (ma->account)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
654 g_snprintf(ma->iconfile, sizeof(ma->iconfile), "%s", ma->account->iconfile);
2431
5948060f486c [gaim-migrate @ 2444]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2411
diff changeset
655
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
656 hbox = gtk_hbox_new(FALSE, 0);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
657 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
658 gtk_widget_show(hbox);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
659
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
660 label = gtk_label_new(_("Buddy Icon File:"));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
661 gtk_size_group_add_widget(ma->sg, label);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
662 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
663 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
664 gtk_widget_show(label);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
665
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
666 name = gtk_entry_new();
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
667 gtk_entry_set_text(GTK_ENTRY(name), ma->iconfile);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
668 gtk_editable_set_editable(GTK_EDITABLE(name), FALSE);
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
669 gtk_box_pack_start(GTK_BOX(hbox), name, TRUE, TRUE, 5);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
670 gtk_widget_show(name);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
671 ma->iconentry = name;
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
672
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
673 browse = gtk_button_new_with_label(_("Browse"));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
674 g_signal_connect(GTK_OBJECT(browse), "clicked", G_CALLBACK(sel_icon_dlg), ma);
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
675 gtk_box_pack_start(GTK_BOX(hbox), browse, FALSE, FALSE, 0);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
676 gtk_widget_show(browse);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
677
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
678 reset = gtk_button_new_with_label(_("Reset"));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
679 g_signal_connect(GTK_OBJECT(reset), "clicked", G_CALLBACK(reset_icon), ma);
2411
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
680 gtk_box_pack_start(GTK_BOX(hbox), reset, FALSE, FALSE, 0);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
681 gtk_widget_show(reset);
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
682
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
683 return hbox;
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
684 }
123aaa84109a [gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2403
diff changeset
685
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
686 static void generate_login_options(struct mod_account *ma, GtkWidget *box)
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
687 {
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
688 GtkWidget *frame;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
689 GtkWidget *vbox;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
690 GtkWidget *hbox;
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
691 GtkWidget *label;
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
692 GList *user_splits = NULL;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
693 GList *split_entries;
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
694
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
695 struct prpl *p;
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
696
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
697 char *username = NULL;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
698 char *start;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
699
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
700 if(ma->login_frame)
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
701 gtk_widget_destroy(ma->login_frame);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
702 ma->login_frame = NULL;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
703
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
704 frame = make_frame(box, _("Login Options"));
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
705 ma->login_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
706
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
707 vbox = gtk_vbox_new(FALSE, 5);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
708 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
709 gtk_container_add(GTK_CONTAINER(frame), vbox);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
710
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
711 hbox = gtk_hbox_new(FALSE, 5);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
712 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
713 gtk_widget_show(hbox);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
714
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
715 label = gtk_label_new(_("Protocol:"));
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
716 gtk_size_group_add_widget(ma->sg, label);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
717 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
718 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
719
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
720 make_protocol_menu(hbox, ma);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
721
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
722 hbox = gtk_hbox_new(FALSE, 5);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
723 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
724
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
725 p = find_prpl(ma->protocol);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
726 if(p)
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
727 user_splits = p->user_splits;
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
728
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
729 label = gtk_label_new(_("Screenname:"));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
730 gtk_size_group_add_widget(ma->sg, label);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
731 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
732 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
733
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
734 ma->name = gtk_entry_new();
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
735 gtk_box_pack_start(GTK_BOX(hbox), ma->name, TRUE, TRUE, 0);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
736
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
737 if(ma->user_split_entries) {
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
738 g_list_free(ma->user_split_entries);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
739 ma->user_split_entries = NULL;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
740 }
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
741
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
742 while(user_splits) {
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
743 struct proto_user_split *pus = user_splits->data;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
744 GtkWidget *entry;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
745
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
746 hbox = gtk_hbox_new(FALSE, 5);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
747 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
748
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
749 label = gtk_label_new(pus->label);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
750 gtk_size_group_add_widget(ma->sg, label);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
751 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
752 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
753 user_splits = user_splits->next;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
754
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
755 entry = gtk_entry_new();
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
756 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
757
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
758 ma->user_split_entries = g_list_append(ma->user_split_entries, entry);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
759 }
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
760
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
761 ma->pwdbox = gtk_hbox_new(FALSE, 5);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
762 gtk_box_pack_start(GTK_BOX(vbox), ma->pwdbox, FALSE, FALSE, 0);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
763
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
764 label = gtk_label_new(_("Password:"));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
765 gtk_size_group_add_widget(ma->sg, label);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
766 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
767 gtk_box_pack_start(GTK_BOX(ma->pwdbox), label, FALSE, FALSE, 0);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
768
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
769 ma->pass = gtk_entry_new();
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
770 gtk_box_pack_start(GTK_BOX(ma->pwdbox), ma->pass, TRUE, TRUE, 0);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
771 gtk_entry_set_visibility(GTK_ENTRY(ma->pass), FALSE);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
772
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
773 hbox = gtk_hbox_new(FALSE, 5);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
774 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
3205
332df87cf3d6 [gaim-migrate @ 3222]
Sean Egan <seanegan@gmail.com>
parents: 3111
diff changeset
775
332df87cf3d6 [gaim-migrate @ 3222]
Sean Egan <seanegan@gmail.com>
parents: 3111
diff changeset
776 label = gtk_label_new(_("Alias:"));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
777 gtk_size_group_add_widget(ma->sg, label);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
778 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
3205
332df87cf3d6 [gaim-migrate @ 3222]
Sean Egan <seanegan@gmail.com>
parents: 3111
diff changeset
779 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
332df87cf3d6 [gaim-migrate @ 3222]
Sean Egan <seanegan@gmail.com>
parents: 3111
diff changeset
780
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
781 ma->alias = gtk_entry_new();
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
782 gtk_box_pack_start(GTK_BOX(hbox), ma->alias, TRUE, TRUE, 0);
3205
332df87cf3d6 [gaim-migrate @ 3222]
Sean Egan <seanegan@gmail.com>
parents: 3111
diff changeset
783
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
784 ma->rempass = acct_button(_("Remember Password"), ma, OPT_ACCT_REM_PASS, vbox);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
785 acct_button(_("Auto-Login"), ma, OPT_ACCT_AUTO, vbox);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
786
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
787 gtk_widget_show_all(ma->login_frame);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
788
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
789 if(p)
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
790 user_splits = g_list_last(p->user_splits);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
791
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
792 username = g_strdup(ma->username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
793 split_entries = g_list_last(ma->user_split_entries);
2100
a93aeb6f813d [gaim-migrate @ 2110]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2086
diff changeset
794
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
795 while(user_splits) {
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
796 struct proto_user_split *pus = user_splits->data;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
797 GtkWidget *entry = split_entries->data;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
798 start = strrchr(username, pus->sep);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
799 if(start) {
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
800 *start = '\0';
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
801 start++;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
802 gtk_entry_set_text(GTK_ENTRY(entry), start);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
803 } else {
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
804 gtk_entry_set_text(GTK_ENTRY(entry), pus->def);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
805 }
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
806 user_splits = user_splits->prev;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
807 split_entries = split_entries->prev;
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
808 }
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
809
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
810 gtk_entry_set_text(GTK_ENTRY(ma->name), username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
811 gtk_entry_set_text(GTK_ENTRY(ma->alias), ma->show);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
812 gtk_entry_set_text(GTK_ENTRY(ma->pass), ma->password);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
813 g_free(username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
814
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
815 if (p && (p->options & OPT_PROTO_NO_PASSWORD)) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
816 gtk_widget_hide(ma->pwdbox);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
817 gtk_widget_hide(ma->rempass);
2444
13ce96daf30f [gaim-migrate @ 2457]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2442
diff changeset
818 }
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
819 }
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
820
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
821 static void generate_user_options(struct mod_account *ma, GtkWidget *box)
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
822 {
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
823 /* This function will add the appropriate (depending on the current
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
824 * protocol) widgets to frame and return TRUE if there anything
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
825 * was added (meaning the frame should be shown)
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
826 * Eric will most likely change this (as he does all other submitted code)
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
827 * so that it will accept the vbox as an argument and create, add, and show
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
828 * the frame itself (like generate_protocol_options). I'd do it myself, but I'm
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
829 * tired and I don't care. */
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
830 /* Sean was right. I did do that. I told him I would. */
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
831
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
832 GtkWidget *vbox;
3756
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
833 GtkWidget *frame;
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
834
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
835 struct prpl *p = find_prpl(ma->protocol);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
836
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
837 if(ma->user_frame)
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
838 gtk_widget_destroy(ma->user_frame);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
839 ma->user_frame = NULL;
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
840
3756
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
841 frame = make_frame(box, _("User Options"));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
842 ma->user_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
843 gtk_widget_show_all(ma->user_frame);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
844
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
845 vbox = gtk_vbox_new(FALSE, 5);
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
846 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
3756
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
847 gtk_container_add(GTK_CONTAINER(frame), vbox);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
848 gtk_widget_show(vbox);
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
849
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
850 ma->checkmail = acct_button(_("New Mail Notifications"), ma, OPT_ACCT_MAIL_CHECK, vbox);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
851 ma->iconsel = build_icon_selection(ma, vbox);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
852
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
853 if (!p) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
854 gtk_widget_hide(ma->user_frame);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
855 return;
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
856 }
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
857
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
858 if (!(p->options & OPT_PROTO_MAIL_CHECK))
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
859 gtk_widget_hide(ma->checkmail);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
860 if (!(p->options & OPT_PROTO_BUDDY_ICON))
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
861 gtk_widget_hide(ma->iconsel);
2525
4fc6aac9da94 [gaim-migrate @ 2538]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2522
diff changeset
862
4fc6aac9da94 [gaim-migrate @ 2538]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2522
diff changeset
863 if ((p->options & OPT_PROTO_BUDDY_ICON) || (p->options & OPT_PROTO_MAIL_CHECK))
4fc6aac9da94 [gaim-migrate @ 2538]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2522
diff changeset
864 return;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
865 gtk_widget_hide(ma->user_frame);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
866 }
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
867
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
868 static void generate_protocol_options(struct mod_account *ma, GtkWidget *box)
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
869 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
870 struct prpl *p = find_prpl(ma->protocol);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
871
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
872 GList *op, *tmp;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
873
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
874 GtkWidget *vbox;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
875 GtkWidget *hbox;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
876 GtkWidget *label;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
877 GtkWidget *entry;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
878 GtkWidget *frame;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
879
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
880 char buf[256];
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
881
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
882 if (ma->proto_frame)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
883 gtk_widget_destroy(ma->proto_frame);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
884 ma->proto_frame = NULL;
2203
14100685c95f [gaim-migrate @ 2213]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2200
diff changeset
885
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
886 if (ma->opt_entries) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
887 g_list_free(ma->opt_entries);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
888 ma->opt_entries = NULL;
2190
24d947eff811 [gaim-migrate @ 2200]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2165
diff changeset
889 }
24d947eff811 [gaim-migrate @ 2200]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2165
diff changeset
890
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
891 if (!p)
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
892 return;
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
893
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
894 if (!p->user_opts)
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
895 return;
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
896
3572
bdd0bebd2d04 [gaim-migrate @ 3670]
Sean Egan <seanegan@gmail.com>
parents: 3570
diff changeset
897 tmp = op = p->user_opts;
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
898
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
899 if (!op)
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
900 return;
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
901
4169
40d35a98f481 [gaim-migrate @ 4398]
Luke Schierer <lschiere@pidgin.im>
parents: 4162
diff changeset
902 g_snprintf(buf, sizeof(buf), _("%s Options"), p->name);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
903 frame = make_frame(box, buf);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
904
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
905 /* BLEH */
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
906 ma->proto_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
907 gtk_widget_show_all(ma->proto_frame);
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
908
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
909 vbox = gtk_vbox_new(FALSE, 5);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
910 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
911 gtk_container_add(GTK_CONTAINER(frame), vbox);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
912 gtk_widget_show(vbox);
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
913
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
914 while (op) {
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
915 struct proto_user_opt *puo = op->data;
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
916
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
917 hbox = gtk_hbox_new(FALSE, 5);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
918 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
919 gtk_widget_show(hbox);
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
920
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
921 label = gtk_label_new(puo->label);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
922 gtk_size_group_add_widget(ma->sg, label);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
923 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
924 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
925 gtk_widget_show(label);
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
926
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
927 entry = gtk_entry_new();
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
928 gtk_box_pack_end(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
929 g_object_set_data(G_OBJECT(entry), "position", GINT_TO_POINTER(puo->pos));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
930 if (ma->proto_opt[puo->pos][0]) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
931 debug_printf("setting text %s\n", ma->proto_opt[puo->pos]);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
932 gtk_entry_set_text(GTK_ENTRY(entry), ma->proto_opt[puo->pos]);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
933 } else {
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
934 gtk_entry_set_text(GTK_ENTRY(entry), puo->def);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
935 }
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
936 gtk_widget_show(entry);
2154
cff133e0ec0c [gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2153
diff changeset
937
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
938 ma->opt_entries = g_list_append(ma->opt_entries, entry);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
939
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
940 op = op->next;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
941 }
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
942
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
943 if(p->register_user != NULL) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
944 ma->register_user = gtk_check_button_new_with_label(_("Register with server"));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
945 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ma->register_user), FALSE);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
946 gtk_box_pack_start(GTK_BOX(vbox), ma->register_user, FALSE, FALSE, 0);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
947 gtk_widget_show(ma->register_user);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
948 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
949
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
950 }
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
951
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
952 static void proxy_dropdown_set(GObject *w, struct mod_account *ma) {
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
953 int opt = GPOINTER_TO_INT(g_object_get_data(w, "proxytype"));
4856
ac9ed6c5594f [gaim-migrate @ 5183]
Nathan Walp <nwalp@pidgin.im>
parents: 4834
diff changeset
954 if(opt == PROXY_NONE || opt == PROXY_USE_GLOBAL)
ac9ed6c5594f [gaim-migrate @ 5183]
Nathan Walp <nwalp@pidgin.im>
parents: 4834
diff changeset
955 gtk_widget_hide_all(ma->proxy_host_box);
ac9ed6c5594f [gaim-migrate @ 5183]
Nathan Walp <nwalp@pidgin.im>
parents: 4834
diff changeset
956 else {
ac9ed6c5594f [gaim-migrate @ 5183]
Nathan Walp <nwalp@pidgin.im>
parents: 4834
diff changeset
957 gtk_widget_show_all(ma->proxy_host_box);
ac9ed6c5594f [gaim-migrate @ 5183]
Nathan Walp <nwalp@pidgin.im>
parents: 4834
diff changeset
958 }
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
959 }
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
960
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
961 static void generate_proxy_options(struct mod_account *ma, GtkWidget *box) {
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
962 GtkWidget *frame;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
963 GtkWidget *hbox;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
964 GtkWidget *vbox;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
965 GtkWidget *label;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
966 GtkWidget *menu;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
967 GtkWidget *dropdown;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
968 GtkWidget *opt;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
969 GtkWidget *entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
970 GtkWidget *vbox2;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
971
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
972 struct gaim_proxy_info *gpi = NULL;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
973
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
974 if(ma->account)
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
975 gpi = ma->account->gpi;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
976
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
977 frame = make_frame(box, _("Proxy Options"));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
978 ma->proxy_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
979 gtk_widget_show_all(ma->proxy_frame);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
980
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
981 vbox = gtk_vbox_new(FALSE, 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
982 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
983 gtk_container_add(GTK_CONTAINER(frame), vbox);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
984 gtk_widget_show(vbox);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
985
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
986 /* make the dropdown w/o the benefit of the easy helper funcs in prefs.c */
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
987 hbox = gtk_hbox_new(FALSE, 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
988 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
989 gtk_widget_show(hbox);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
990
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
991 label = gtk_label_new_with_mnemonic(_("Proxy _Type"));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
992 gtk_size_group_add_widget(ma->sg, label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
993 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
994 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
995 gtk_widget_show(label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
996
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
997 dropdown = gtk_option_menu_new();
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
998 menu = gtk_menu_new();
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
999
4834
0ed37c803503 [gaim-migrate @ 5159]
Luke Schierer <lschiere@pidgin.im>
parents: 4785
diff changeset
1000 opt = gtk_menu_item_new_with_label(_("Use Global Proxy Settings"));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1001 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_USE_GLOBAL));
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1002 g_signal_connect(G_OBJECT(opt), "activate",
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1003 G_CALLBACK(proxy_dropdown_set), ma);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1004 gtk_widget_show(opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1005 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1006 if(!gpi)
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1007 gtk_menu_set_active(GTK_MENU(menu), 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1008
4834
0ed37c803503 [gaim-migrate @ 5159]
Luke Schierer <lschiere@pidgin.im>
parents: 4785
diff changeset
1009 opt = gtk_menu_item_new_with_label(_("No Proxy"));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1010 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_NONE));
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1011 g_signal_connect(G_OBJECT(opt), "activate",
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1012 G_CALLBACK(proxy_dropdown_set), ma);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1013 gtk_widget_show(opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1014 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1015 if(gpi && gpi->proxytype == PROXY_NONE)
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1016 gtk_menu_set_active(GTK_MENU(menu), 1);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1017
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1018 opt = gtk_menu_item_new_with_label("SOCKS 4");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1019 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_SOCKS4));
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1020 g_signal_connect(G_OBJECT(opt), "activate",
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1021 G_CALLBACK(proxy_dropdown_set), ma);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1022 gtk_widget_show(opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1023 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1024 if(gpi && gpi->proxytype == PROXY_SOCKS4)
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1025 gtk_menu_set_active(GTK_MENU(menu), 2);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1026
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1027 opt = gtk_menu_item_new_with_label("SOCKS 5");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1028 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_SOCKS5));
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1029 g_signal_connect(G_OBJECT(opt), "activate",
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1030 G_CALLBACK(proxy_dropdown_set), ma);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1031 gtk_widget_show(opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1032 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1033 if(gpi && gpi->proxytype == PROXY_SOCKS5)
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1034 gtk_menu_set_active(GTK_MENU(menu), 3);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1035
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1036 opt = gtk_menu_item_new_with_label("HTTP");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1037 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_HTTP));
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1038 g_signal_connect(G_OBJECT(opt), "activate",
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1039 G_CALLBACK(proxy_dropdown_set), ma);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1040 gtk_widget_show(opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1041 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1042 if(gpi && gpi->proxytype == PROXY_HTTP)
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1043 gtk_menu_set_active(GTK_MENU(menu), 4);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1044
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1045 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1046 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1047 gtk_widget_show(dropdown);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1048
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1049 ma->proxytype_menu = menu;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1050
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1051
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1052 vbox2 = gtk_vbox_new(FALSE, 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1053 gtk_container_add(GTK_CONTAINER(vbox), vbox2);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1054 gtk_widget_show(vbox2);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1055 ma->proxy_host_box = vbox2;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1056
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1057 hbox = gtk_hbox_new(FALSE, 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1058 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1059 gtk_widget_show(hbox);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1060
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1061 label = gtk_label_new_with_mnemonic(_("_Host:"));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1062 gtk_size_group_add_widget(ma->sg, label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1063 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1064 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1065 gtk_widget_show(label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1066 entry = gtk_entry_new();
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1067 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1068 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1069 gtk_entry_set_text(GTK_ENTRY(entry), gpi ? gpi->proxyhost : "");
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1070 gtk_widget_show(entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1071 ma->proxyhost_entry = entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1072
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1073 hbox = gtk_hbox_new(FALSE, 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1074 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1075 gtk_widget_show(hbox);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1076
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1077 label = gtk_label_new_with_mnemonic(_("Port:"));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1078 gtk_size_group_add_widget(ma->sg, label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1079 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1080 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1081 gtk_widget_show(label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1082 entry = gtk_entry_new();
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1083 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1084 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1085 if(gpi && gpi->proxyport) {
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1086 char buf[128];
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1087 g_snprintf(buf, sizeof(buf), "%d", gpi->proxyport);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1088 gtk_entry_set_text(GTK_ENTRY(entry), buf);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1089 }
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1090 gtk_widget_show(entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1091 ma->proxyport_entry = entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1092
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1093 hbox = gtk_hbox_new(FALSE, 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1094 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1095 gtk_widget_show(hbox);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1096
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1097 label = gtk_label_new_with_mnemonic(_("_User:"));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1098 gtk_size_group_add_widget(ma->sg, label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1099 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1100 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1101 gtk_widget_show(label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1102 entry = gtk_entry_new();
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1103 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1104 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1105 gtk_entry_set_text(GTK_ENTRY(entry), gpi ? gpi->proxyuser : "");
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1106 gtk_widget_show(entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1107 ma->proxyuser_entry = entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1108
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1109 hbox = gtk_hbox_new(FALSE, 5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1110 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1111 gtk_widget_show(hbox);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1112
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1113 label = gtk_label_new_with_mnemonic(_("Pa_ssword:"));
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1114 gtk_size_group_add_widget(ma->sg, label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1115 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1116 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1117 gtk_widget_show(label);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1118 entry = gtk_entry_new();
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1119 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1120 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1121 gtk_entry_set_text(GTK_ENTRY(entry), gpi ? gpi->proxypass : "");
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1122 gtk_widget_show(entry);
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1123 ma->proxypass_entry = entry;
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1124
4856
ac9ed6c5594f [gaim-migrate @ 5183]
Nathan Walp <nwalp@pidgin.im>
parents: 4834
diff changeset
1125 if(gpi == NULL || gpi->proxytype == PROXY_NONE)
ac9ed6c5594f [gaim-migrate @ 5183]
Nathan Walp <nwalp@pidgin.im>
parents: 4834
diff changeset
1126 gtk_widget_hide_all(vbox2);
4634
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1127 }
d19872836812 [gaim-migrate @ 4941]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1128
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1129 static void show_acct_mod(struct gaim_account *a)
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1130 {
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
1131 /* This is the fucking modify account dialog. I've fucking seperated it into
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
1132 * three fucking frames:
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
1133 * a fucking Login Options frame, a fucking User Options frame and a fucking
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1134 * Protcol Options frame. This fucking removes the two fucking tabs, which
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1135 * were quite fucking uneccessary. Fuck. */
2522
108b3eab22aa [gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2458
diff changeset
1136 /* -- SeanEgan */
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1137 /* YEAH!! -- ChipX86 */
4962
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1138 GtkWidget *hbox, *vbox, *disc, *dbox;
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1139 GtkWidget *button;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1140 GtkWidget *sep;
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1141 GtkSizeGroup *button_sg;
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1142
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1143 struct mod_account *ma = mod_account_find(a);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1144
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1145 if (!ma) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1146 ma = g_new0(struct mod_account, 1);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1147 ma->account = a;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1148 mod_accounts = g_slist_append(mod_accounts, ma);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1149
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1150 if (a) {
2458
8208e2016d9b [gaim-migrate @ 2471]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2445
diff changeset
1151 int i;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1152 ma->options = a->options;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1153 if (find_prpl(a->protocol))
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1154 ma->protocol = a->protocol;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1155 else if (protocols)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1156 ma->protocol = ((struct prpl *)protocols->data)->protocol;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1157 else
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1158 ma->protocol = -1;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1159 g_snprintf(ma->iconfile, sizeof(ma->iconfile), "%s", a->iconfile);
4966
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
1160 g_snprintf(ma->username, sizeof(ma->username), "%s", a->username);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
1161 g_snprintf(ma->show, sizeof(ma->show), "%s", a->alias);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
1162 g_snprintf(ma->password, sizeof(ma->password), "%s", a->password);
54cd43869333 [gaim-migrate @ 5300]
Nathan Walp <nwalp@pidgin.im>
parents: 4962
diff changeset
1163
2458
8208e2016d9b [gaim-migrate @ 2471]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2445
diff changeset
1164 for (i = 0; i < 7; i++)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1165 g_snprintf(ma->proto_opt[i], sizeof(ma->proto_opt[i]), "%s",
2458
8208e2016d9b [gaim-migrate @ 2471]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2445
diff changeset
1166 a->proto_opt[i]);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1167 } else {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1168 ma->options = OPT_ACCT_REM_PASS;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1169 if (find_prpl(DEFAULT_PROTO))
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1170 ma->protocol = DEFAULT_PROTO;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1171 else if (protocols)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1172 ma->protocol = ((struct prpl *)protocols->data)->protocol;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1173 else
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1174 ma->protocol = -1;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1175 }
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1176 } else {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1177 gtk_widget_show(ma->mod);
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1178 return;
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1179 }
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1180
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1181 ma->mod = gtk_window_new(GTK_WINDOW_TOPLEVEL);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1182 gtk_window_set_role(GTK_WINDOW(ma->mod), "account");
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1183 gtk_widget_realize(ma->mod);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
1184 gtk_window_set_title(GTK_WINDOW(ma->mod), _("Modify Account"));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1185 gtk_window_set_resizable(GTK_WINDOW(ma->mod), FALSE); /* nothing odd here :) */
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1186 g_signal_connect(GTK_OBJECT(ma->mod), "destroy", G_CALLBACK(delmod), ma);
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1187
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1188 vbox = gtk_vbox_new(FALSE, 6);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1189 gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1190 gtk_container_add(GTK_CONTAINER(ma->mod), vbox);
3756
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
1191 gtk_widget_show(vbox);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1192
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1193 ma->main = gtk_vbox_new(FALSE, 12);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1194 gtk_container_set_border_width(GTK_CONTAINER(ma->main), 6);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1195 gtk_box_pack_start(GTK_BOX(vbox), ma->main, FALSE, FALSE, 0);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1196 gtk_widget_show(ma->main);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1197
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1198 ma->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1199
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1200 generate_login_options(ma, ma->main);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1201 generate_user_options(ma, ma->main);
4962
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1202 disc = gaim_disclosure_new(_("Show more options"), _("Show fewer options"));
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1203 gtk_box_pack_start(GTK_BOX(ma->main), disc, FALSE, FALSE, 0);
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1204 gtk_widget_show(disc);
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1205 dbox = gtk_vbox_new(FALSE, 12);
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1206 gtk_container_set_border_width(GTK_CONTAINER(dbox), 6);
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1207 gtk_box_pack_start(GTK_BOX(ma->main), dbox, FALSE, FALSE, 0);
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1208 gaim_disclosure_set_container(GAIM_DISCLOSURE(disc), dbox);
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1209 generate_protocol_options(ma, dbox);
b6fd57ba76e8 [gaim-migrate @ 5296]
Sean Egan <seanegan@gmail.com>
parents: 4890
diff changeset
1210 generate_proxy_options(ma, dbox);
1075
2fe18b2d6105 [gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1074
diff changeset
1211
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1212 hbox = gtk_hbox_new(FALSE, 6);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1213 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1214 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1215
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1216 button_sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1217
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1218 button = gtk_button_new_from_stock(GTK_STOCK_OK);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1219 gtk_size_group_add_widget(button_sg, button);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1220 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1221 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(ok_mod), ma);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1222
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1223 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1224 gtk_size_group_add_widget(button_sg, button);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1225 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1226 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(cancel_mod), ma);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1227
3756
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
1228 sep = gtk_hseparator_new();
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
1229 gtk_box_pack_end (GTK_BOX (vbox), sep, FALSE, FALSE, 0);
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
1230 gtk_widget_show(sep);
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
1231
08742bf8a7be [gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents: 3755
diff changeset
1232 gtk_widget_show_all(hbox);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1233 gtk_widget_show(ma->mod);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1234 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1235
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1236 static void add_acct(GtkWidget *w, gpointer d)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1237 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1238 show_acct_mod(NULL);
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1239 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1240
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1241 static void mod_acct_func(GtkTreeModel *model, GtkTreePath *path,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1242 GtkTreeIter *iter, gpointer data)
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1243 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1244 struct gaim_account *a;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1245
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1246 gtk_tree_model_get(model, iter, COLUMN_DATA, &a, -1);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1247
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1248 if (a != NULL)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1249 show_acct_mod(a);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1250 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1251
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1252 static void mod_acct(GtkWidget *w, gpointer d)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1253 {
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1254 GtkTreeSelection *selection;
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1255
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1256 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1257
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1258 gtk_tree_selection_selected_foreach(selection, mod_acct_func, NULL);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1259 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1260
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1261 struct pass_prompt {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1262 struct gaim_account *account;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1263 GtkWidget *win;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1264 GtkWidget *entry;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1265 };
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1266 static GSList *passes = NULL;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1267
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1268 static struct pass_prompt *find_pass_prompt(struct gaim_account *account)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1269 {
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1270 GSList *p = passes;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1271 while (p) {
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1272 struct pass_prompt *r = p->data;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1273 if (r->account == account)
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1274 return r;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1275 p = p->next;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1276 }
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1277 return NULL;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1278 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1279
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1280 static void pass_callback(GtkDialog *d, gint resp, struct pass_prompt *p)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1281 {
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1282 if (resp == GTK_RESPONSE_YES) {
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1283 const char *txt = gtk_entry_get_text(GTK_ENTRY(p->entry));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1284 g_snprintf(p->account->password, sizeof(p->account->password), "%s", txt);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1285 serv_login(p->account);
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1286 }
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1287 passes = g_slist_remove(passes, p);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1288 gtk_widget_destroy(p->win);
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1289 g_free(p);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1290 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1291
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1292 static void do_pass_dlg(struct gaim_account *account)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1293 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1294 /* we can safely assume that u is not NULL */
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1295 struct pass_prompt *p = find_pass_prompt(account);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1296 GtkWidget *label;
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1297 GtkWidget *hbox, *vbox;
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1298 char *labeltext=NULL;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1299 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_auth.png", NULL);
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1300 GtkWidget *img = gtk_image_new_from_file(filename);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1301 g_free(filename);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1302
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1303
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1304 if (p) {
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1305 gtk_widget_show(p->win);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1306 return;
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1307 }
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1308
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1309 p = g_new0(struct pass_prompt, 1);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1310 p->account = account;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1311 passes = g_slist_append(passes, p);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1312
4778
85c6c3a60503 [gaim-migrate @ 5098]
Mark Doliner <mark@kingant.net>
parents: 4772
diff changeset
1313 p->win = gtk_dialog_new_with_buttons("", NULL, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1314 _("_Login"), GTK_RESPONSE_YES, NULL);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1315
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1316 gtk_dialog_set_default_response (GTK_DIALOG(p->win), GTK_RESPONSE_YES);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1317 g_signal_connect(G_OBJECT(p->win), "response", G_CALLBACK(pass_callback), p);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1318
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1319 gtk_container_set_border_width (GTK_CONTAINER(p->win), 6);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1320 gtk_window_set_resizable(GTK_WINDOW(p->win), FALSE);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1321 gtk_dialog_set_has_separator(GTK_DIALOG(p->win), FALSE);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1322 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(p->win)->vbox), 12);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1323 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(p->win)->vbox), 6);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1324
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1325 hbox = gtk_hbox_new(FALSE, 12);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1326 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(p->win)->vbox), hbox);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1327 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1328
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1329 vbox = gtk_vbox_new(FALSE, 0);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1330 gtk_container_add(GTK_CONTAINER(hbox), vbox);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1331
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1332 labeltext = g_strdup_printf(_("Please enter your password for %s.\n\n"),
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1333 account->username);
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1334 label = gtk_label_new(labeltext);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1335 g_free(labeltext);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1336
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1337 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1338 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1339 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1340
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1341 hbox = gtk_hbox_new(FALSE, 5);
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1342 gtk_container_add(GTK_CONTAINER(vbox), hbox);
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1343 label = gtk_label_new_with_mnemonic(_("_Password"));
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1344 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1345 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1346
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1347 p->entry = gtk_entry_new();
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1348 gtk_entry_set_visibility(GTK_ENTRY(p->entry), FALSE);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1349 gtk_box_pack_start(GTK_BOX(hbox), p->entry, FALSE, FALSE, 5);
4483
109948475ecc [gaim-migrate @ 4758]
Sean Egan <seanegan@gmail.com>
parents: 4448
diff changeset
1350 gtk_label_set_mnemonic_widget(GTK_LABEL(label), p->entry);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1351 gtk_widget_grab_focus(p->entry);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1352
4413
a00bfe984e7e [gaim-migrate @ 4686]
Sean Egan <seanegan@gmail.com>
parents: 4388
diff changeset
1353 gtk_widget_show_all(p->win);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1354 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1355
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1356 static void acct_signin(GtkCellRendererToggle *cell, gchar *path_str,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1357 gpointer d)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1358 {
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1359 GtkTreeModel *model = (GtkTreeModel *)d;
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1360 GtkTreeIter iter;
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1361
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1362 struct gaim_account *account = NULL;
3069
cbb8b9b4ca4a [gaim-migrate @ 3083]
Sean Egan <seanegan@gmail.com>
parents: 3067
diff changeset
1363 struct prpl *p = NULL;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1364
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1365 gtk_tree_model_get_iter_from_string(model, &iter, path_str);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1366 gtk_tree_model_get(model, &iter, COLUMN_DATA, &account, -1);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1367
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1368 p = find_prpl(account->protocol);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1369 if (!account->gc && p && p->login) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1370 struct prpl *p = find_prpl(account->protocol);
3789
fb519383a058 [gaim-migrate @ 3929]
Rob Flynn <gaim@robflynn.com>
parents: 3764
diff changeset
1371 if (p && !(p->options & OPT_PROTO_NO_PASSWORD) &&
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1372 !(p->options & OPT_PROTO_PASSWORD_OPTIONAL) && !account->password[0]) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1373 do_pass_dlg(account);
3069
cbb8b9b4ca4a [gaim-migrate @ 3083]
Sean Egan <seanegan@gmail.com>
parents: 3067
diff changeset
1374 } else {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1375 serv_login(account);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1376 }
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1377 } else if (account->gc) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1378 account->gc->wants_to_die = TRUE;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1379 signoff(account->gc);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1380 } else {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1381 if (account->protocol == PROTO_TOC)
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1382 do_error_dialog(_("TOC not found."),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1383 _("You have attempted to login an IM account using the "
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1384 "TOC protocol. Because this protocol is inferior to "
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1385 "OSCAR, it is now compiled as a plugin by default. "
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1386 "To login, edit this account to use OSCAR or load the "
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1387 "TOC plugin."), GAIM_ERROR);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1388 else
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1389 do_error_dialog(_("Protocol not found."),
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1390 _("You cannot log this account in; you do not have "
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1391 "the protocol it uses loaded, or the protocol does "
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1392 "not have a login function."), GAIM_ERROR);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1393 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1394 }
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1395
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1396 static void acct_autologin(GtkCellRendererToggle *cell, gchar *path_str,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1397 gpointer d)
2007
948a67a691a6 [gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1956
diff changeset
1398 {
3867
43e396e94095 [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
1399 GtkTreeModel *model = (GtkTreeModel *)d;
43e396e94095 [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3789
diff changeset
1400 GtkTreeIter iter;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1401
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1402 struct gaim_account *account = NULL;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1403
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1404 gtk_tree_model_get_iter_from_string(model, &iter, path_str);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1405 gtk_tree_model_get(model, &iter, COLUMN_DATA, &account, -1);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1406
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1407 account->options ^= OPT_ACCT_AUTO;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1408
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1409 gtk_list_store_set(GTK_LIST_STORE(model), &iter,
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1410 COLUMN_AUTOLOGIN, (account->options & OPT_ACCT_AUTO), -1);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1411
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1412 save_prefs();
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1413 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1414
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1415 static void do_del_acct(struct gaim_account *account)
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1416 {
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1417 GtkTreeIter iter;
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1418 GaimBlistNode *gnode,*bnode;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1419
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1420 if (account->gc) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1421 account->gc->wants_to_die = TRUE;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1422 signoff(account->gc);
2007
948a67a691a6 [gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1956
diff changeset
1423 }
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1424
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1425 if (get_iter_from_data(GTK_TREE_VIEW(treeview), account, &iter)) {
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1426 gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1427 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1428
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1429
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1430 /* remove the buddies for the account we just destroyed */
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1431 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1432 struct group *g = (struct group *)gnode;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1433 if(!GAIM_BLIST_NODE_IS_GROUP(gnode))
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1434 continue;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1435 for(bnode = gnode->child; bnode; bnode = bnode->next) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1436 struct buddy *b = (struct buddy *)bnode;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1437 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode))
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1438 continue;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1439 if(b->account == account) {
4770
c4c28874ecd3 [gaim-migrate @ 5088]
Sean Egan <seanegan@gmail.com>
parents: 4738
diff changeset
1440 gaim_blist_remove_buddy(b);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1441 }
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1442 }
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1443 if(!gnode->child) {
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1444 gaim_blist_remove_group(g);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1445 }
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1446 }
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1447
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1448 gaim_accounts = g_slist_remove(gaim_accounts, account);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1449
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1450 gaim_blist_save();
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1451
2007
948a67a691a6 [gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1956
diff changeset
1452 save_prefs();
948a67a691a6 [gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1956
diff changeset
1453 }
948a67a691a6 [gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1956
diff changeset
1454
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1455 static void del_acct_func(GtkTreeModel *model, GtkTreePath *path,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1456 GtkTreeIter *iter, gpointer data)
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1457 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1458 struct gaim_account *account;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1459
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1460 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1461
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1462 if (account != NULL) {
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1463 char buf[8192];
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1464
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1465 g_snprintf(buf, sizeof(buf),
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1466 _("Are you sure you want to delete %s?"), account->username);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1467 do_ask_dialog(buf, NULL, account, _("Delete"), do_del_acct, _("Cancel"), NULL, NULL, FALSE);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1468 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1469 }
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1470
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1471 static void del_acct(GtkWidget *w, gpointer d)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1472 {
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1473 GtkTreeSelection *selection;
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1474
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1475 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1476
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1477 gtk_tree_selection_selected_foreach(selection, del_acct_func, NULL);
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1478 }
2007
948a67a691a6 [gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1956
diff changeset
1479
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1480 void account_editor(GtkWidget *w, GtkWidget *W)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1481 {
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1482 /* please kill me */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1483 GtkWidget *vbox;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1484 GtkWidget *hbox;
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1485 GtkWidget *sw;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1486 GtkWidget *button; /* used for many things */
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1487 GtkWidget *sep;
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1488 GtkSizeGroup *sg;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1489
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1490 if (acctedit) {
3472
d33ec392a5e1 [gaim-migrate @ 3523]
Sean Egan <seanegan@gmail.com>
parents: 3466
diff changeset
1491 gtk_window_present(GTK_WINDOW(acctedit));
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1492 return;
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1493 }
3764
6400b37e0c35 [gaim-migrate @ 3903]
Rob Flynn <gaim@robflynn.com>
parents: 3760
diff changeset
1494
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1495 acctedit = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
1496 gtk_window_set_title(GTK_WINDOW(acctedit), _("Account Editor"));
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4040
diff changeset
1497 gtk_window_set_role(GTK_WINDOW(acctedit), "accounteditor");
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1498 gtk_widget_realize(acctedit);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1499 gtk_widget_set_size_request(acctedit, -1, 250);
3755
a868e1181321 [gaim-migrate @ 3894]
Sean Egan <seanegan@gmail.com>
parents: 3754
diff changeset
1500 gtk_window_set_default_size(GTK_WINDOW(acctedit), 550, 250);
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
1501 g_signal_connect(GTK_OBJECT(acctedit), "delete_event", G_CALLBACK(on_delete_acctedit), W);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1502
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1503 vbox = gtk_vbox_new(FALSE, 6);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1504 gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1505 gtk_container_add(GTK_CONTAINER(acctedit), vbox);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1506
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1507 sw = generate_list();
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1508 hbox = gtk_hbox_new(FALSE, 6);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1509 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 6);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1510
4550
972af41f277c [gaim-migrate @ 4830]
Christian Hammond <chipx86@chipx86.com>
parents: 4493
diff changeset
1511 gtk_box_pack_start(GTK_BOX(hbox), sw, TRUE, TRUE, 0);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1512
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1513 #if 0
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1514 vbox2 = gtk_vbox_new(TRUE, 5);
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1515 gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0);
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1516
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1517 button = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1518 gtk_button_set_use_stock(GTK_BUTTON(button), FALSE);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1519 gtk_button_set_label(GTK_BUTTON(button), "Select All");
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1520 // button = picture_button2(acctedit, _("Select All"), tb_refresh_xpm, 2);
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1521 gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, TRUE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1522 g_signal_connect_swapped(GTK_OBJECT(button), "clicked",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1523 G_CALLBACK(gtk_clist_select_all), GTK_OBJECT(list));
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1524
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1525 button = gtk_button_new_from_stock(GTK_STOCK_REDO);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1526 gtk_button_set_use_stock(GTK_BUTTON(button), FALSE);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1527 // gtk_button_set_label(button, "Select Autos");
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1528 // button = picture_button2(acctedit, _("Select Autos"), tb_redo_xpm, 2);
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1529 gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, TRUE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1530 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(sel_auto), NULL);
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1531
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1532 button = gtk_button_new_from_stock(GTK_STOCK_UNDO);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1533 gtk_button_set_use_stock(GTK_BUTTON(button), FALSE);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1534 gtk_button_set_label(GTK_BUTTON(button), "Select None");
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1535 // button = picture_button2(acctedit, _("Select None"), tb_undo_xpm, 2);
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1536 gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, TRUE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1537 g_signal_connect_swapped(GTK_OBJECT(button), "clicked",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1538 G_CALLBACK(gtk_clist_unselect_all), GTK_OBJECT(list));
2008
6f049002d963 [gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2007
diff changeset
1539
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1540 #endif
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1541
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1542 sep = gtk_hseparator_new();
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1543 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1544
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1545 hbox = gtk_hbox_new(FALSE, 6);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1546 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1547 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1548
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1549 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1550
3885
94852b7cc81f [gaim-migrate @ 4037]
Rob Flynn <gaim@robflynn.com>
parents: 3867
diff changeset
1551 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1552 gtk_size_group_add_widget(sg, button);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1553 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
1554 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(on_close_acctedit), W);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1555
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1556 button = gtk_button_new_from_stock(GTK_STOCK_DELETE);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1557 gtk_size_group_add_widget(sg, button);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1558 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1559 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(del_acct), NULL);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1560
4114
fa5075168c23 [gaim-migrate @ 4330]
Luke Schierer <lschiere@pidgin.im>
parents: 4111
diff changeset
1561 button = gaim_pixbuf_button_from_stock(_("_Modify"), GTK_STOCK_PREFERENCES,
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1562 GAIM_BUTTON_HORIZONTAL);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1563 gtk_size_group_add_widget(sg, button);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1564 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1565 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(mod_acct), NULL);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1566
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1567 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1568 gtk_size_group_add_widget(sg, button);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1569 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1570 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(add_acct), NULL);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1571
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1572 gtk_widget_show_all(acctedit);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1573 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1574
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1575 struct signon_meter {
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1576 struct gaim_connection *gc;
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1577 GtkWidget *button;
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1578 GtkWidget *progress;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1579 GtkWidget *status;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1580 };
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1581 static GSList *meters = NULL;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1582
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1583 GtkWidget* create_meter_pixmap (struct gaim_connection *gc)
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1584 {
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1585 GdkPixbuf *pb = create_prpl_icon(gc->account);
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1586 GdkPixbuf *scale = gdk_pixbuf_scale_simple(pb, 30,30,GDK_INTERP_BILINEAR);
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1587 GtkWidget *image =
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1588 gtk_image_new_from_pixbuf(scale);
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1589 g_object_unref(G_OBJECT(pb));
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1590 g_object_unref(G_OBJECT(scale));
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1591 return image;
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1592 }
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1593
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1594 static struct signon_meter *find_signon_meter(struct gaim_connection *gc)
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1595 {
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1596 GSList *m = meters;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1597 while (m) {
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1598 if (((struct signon_meter *)m->data)->gc == gc)
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1599 return m->data;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1600 m = m->next;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1601 }
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1602 return NULL;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1603 }
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1604
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1605 void kill_meter(struct signon_meter *meter) {
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1606 gtk_widget_set_sensitive (meter->button, FALSE);
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
1607 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(meter->progress), 1);
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1608 gtk_statusbar_pop(GTK_STATUSBAR(meter->status), 1);
4169
40d35a98f481 [gaim-migrate @ 4398]
Luke Schierer <lschiere@pidgin.im>
parents: 4162
diff changeset
1609 gtk_statusbar_push(GTK_STATUSBAR(meter->status), 1, _("Done."));
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1610 meter_win->active_count--;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1611 if (meter_win->active_count == 0) {
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1612 gtk_widget_destroy(meter_win->window);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1613 g_free (meter_win);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1614 meter_win = NULL;
3554
cf00549c53d7 [gaim-migrate @ 3644]
Sean Egan <seanegan@gmail.com>
parents: 3517
diff changeset
1615 }
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1616 }
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1617
4890
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1618 void away_on_login(char *mesg)
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1619 {
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1620 GSList *awy = away_messages;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1621 struct away_message *a, *message = NULL;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1622 struct gaim_gtk_buddy_list *gtkblist;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1623
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1624 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1625
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1626 if (!gtkblist->window) {
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1627 return;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1628 }
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1629
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1630 if (mesg == NULL) {
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1631 /* Use default message */
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1632 do_away_message(NULL, default_away);
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1633 } else {
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1634 /* Use argument */
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1635 while (awy) {
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1636 a = (struct away_message *)awy->data;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1637 if (strcmp(a->name, mesg) == 0) {
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1638 message = a;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1639 break;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1640 }
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1641 awy = awy->next;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1642 }
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1643 if (message == NULL)
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1644 message = default_away;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1645 do_away_message(NULL, message);
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1646 }
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1647 return;
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1648 }
89cb14edf8cf [gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents: 4856
diff changeset
1649
1089
f0f5c10cce63 [gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1086
diff changeset
1650 void account_online(struct gaim_connection *gc)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1651 {
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1652 struct signon_meter *meter = find_signon_meter(gc);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1653 GList *wins;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1654 GtkTreeIter iter;
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1655 GaimBlistNode *gnode,*bnode;
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1656 GList *add_buds=NULL;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1657 GList *l;
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1658
4333
cc2f780c0505 [gaim-migrate @ 4597]
Mark Doliner <mark@kingant.net>
parents: 4275
diff changeset
1659 /* Set the time the account came online */
cc2f780c0505 [gaim-migrate @ 4597]
Mark Doliner <mark@kingant.net>
parents: 4275
diff changeset
1660 time(&gc->login_time);
cc2f780c0505 [gaim-migrate @ 4597]
Mark Doliner <mark@kingant.net>
parents: 4275
diff changeset
1661
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1662 /* first we hide the login progress meter */
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1663 if (meter) {
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1664 kill_meter(meter);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1665 meters = g_slist_remove(meters, meter);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1666 g_free(meter);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1667 }
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1668
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1669 /* then we do the buddy list stuff */
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1670 if (mainwindow)
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1671 gtk_widget_hide(mainwindow);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1672
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1673 gaim_blist_show();
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1674
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
1675 update_privacy_connections();
1401
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1391
diff changeset
1676 do_away_menu();
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1474
diff changeset
1677 do_proto_menu();
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1678
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1679 /*
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1680 * XXX This is a hack! Remove this and replace it with a better event
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1681 * notification system.
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1682 */
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1683 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1684 struct gaim_window *win = (struct gaim_window *)wins->data;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1685 gaim_conversation_update(gaim_window_get_conversation_at(win, 0),
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1686 GAIM_CONV_ACCOUNT_ONLINE);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1687 }
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1688
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1689 gaim_setup(gc);
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1690
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1691 gc->account->connecting = FALSE;
3726
d85208a99af2 [gaim-migrate @ 3862]
Luke Schierer <lschiere@pidgin.im>
parents: 3717
diff changeset
1692 connecting_count--;
3570
b791019b2492 [gaim-migrate @ 3666]
Sean Egan <seanegan@gmail.com>
parents: 3554
diff changeset
1693 debug_printf("connecting_count: %d\n", connecting_count);
b791019b2492 [gaim-migrate @ 3666]
Sean Egan <seanegan@gmail.com>
parents: 3554
diff changeset
1694
3517
6b0cb60162f4 [gaim-migrate @ 3590]
Sean Egan <seanegan@gmail.com>
parents: 3510
diff changeset
1695 plugin_event(event_signon, gc);
1575
427e1409917c [gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
1696 system_log(log_signon, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1697
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1698 /* away option given? */
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1699 if (opt_away) {
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1700 away_on_login(opt_away_arg);
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1701 /* don't do it again */
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1702 opt_away = 0;
1401
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1391
diff changeset
1703 } else if (awaymessage) {
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1391
diff changeset
1704 serv_set_away(gc, GAIM_AWAY_CUSTOM, awaymessage->message);
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1705 }
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1706 if (opt_away_arg != NULL) {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2364
diff changeset
1707 g_free(opt_away_arg);
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1708 opt_away_arg = NULL;
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1709 }
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1710
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1711 /* let the prpl know what buddies we pulled out of the local list */
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1712 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1713 if(!GAIM_BLIST_NODE_IS_GROUP(gnode))
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1714 continue;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1715 for(bnode = gnode->child; bnode; bnode = bnode->next) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1716 struct buddy *b = (struct buddy *)bnode;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1717 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode))
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4778
diff changeset
1718 continue;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1719 if(b->account == gc->account) {
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1720 add_buds = g_list_append(add_buds, b->name);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1721 }
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1722 }
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1723 }
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1724
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1725 if(add_buds) {
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1726 serv_add_buddies(gc, add_buds);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1727 g_list_free(add_buds);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1728 }
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1729
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1730 serv_set_permit_deny(gc);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1731
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1732 /* everything for the account editor */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1733 if (!acctedit)
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1734 return;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1735
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1736 if (get_iter_from_data(GTK_TREE_VIEW(treeview), gc->account, &iter)) {
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1737 gtk_list_store_set(model, &iter,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1738 COLUMN_ONLINE, TRUE,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1739 COLUMN_PROTOCOL, gc->prpl->name,
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1740 -1);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1741 }
1002
1d8f05ea6bdf [gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 998
diff changeset
1742
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1743 /* Update the conversation windows that use this account. */
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1744 for (l = gaim_get_conversations(); l != NULL; l = l->next) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1745 struct gaim_conversation *conv = (struct gaim_conversation *)l->data;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1746
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1747 if (gaim_conversation_get_account(conv) == gc->account) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1748 gaim_conversation_update(conv, GAIM_CONV_UPDATE_ACCOUNT);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1749 }
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1750 }
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1751 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1752
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1753 void account_offline(struct gaim_connection *gc)
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1754 {
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1755 struct signon_meter *meter = find_signon_meter(gc);
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1756 GtkTreeIter iter;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1757 GList *l;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1758
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1759 if (meter) {
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1760 kill_meter(meter);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1761 meters = g_slist_remove(meters, meter);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1762 g_free(meter);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1763 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1764 debug_printf("Disconnecting. user = %p, gc = %p (%p)\n",
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1765 gc->account, gc->account->gc, gc);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1766 gc->account->gc = NULL; /* wasn't that awkward? */
4388
bf6ac19d0d63 [gaim-migrate @ 4654]
Nathan Walp <nwalp@pidgin.im>
parents: 4359
diff changeset
1767
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1768 if (!acctedit)
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1769 return;
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1770
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1771 if (get_iter_from_data(GTK_TREE_VIEW(treeview), gc->account, &iter)) {
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1772 gtk_list_store_set(model, &iter, COLUMN_ONLINE, FALSE, -1);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
1773 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1774
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1775 /* Update the conversation windows that use this account. */
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1776 for (l = gaim_get_conversations(); l != NULL; l = l->next) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1777 struct gaim_conversation *conv = (struct gaim_conversation *)l->data;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1778
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1779 if (gaim_conversation_get_account(conv) == gc->account) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1780 gaim_conversation_update(conv, GAIM_CONV_UPDATE_ACCOUNT);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1781 }
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1782 }
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1783 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1784
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1785 void auto_login()
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1786 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1787 GSList *accts = gaim_accounts;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1788 struct gaim_account *a = NULL;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1789
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1790 while (accts) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1791 a = (struct gaim_account *)accts->data;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1792 if ((a->options & OPT_ACCT_AUTO) && (a->options & OPT_ACCT_REM_PASS)) {
980
82c5865f7cfe [gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 977
diff changeset
1793 serv_login(a);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1794 }
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1795 accts = accts->next;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1796 }
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1797 }
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1798
3458
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1799 /*
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1800 * d:)->-<
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1801 *
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1802 * d:O-\-<
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1803 *
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1804 * d:D-/-<
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1805 *
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1806 * d8D->-< DANCE!
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1807 */
66b1ad9782a9 [gaim-migrate @ 3506]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1808
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1809 static void cancel_signon(GtkWidget *button, struct signon_meter *meter)
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1810 {
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1811 meter->gc->wants_to_die = TRUE;
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1812 signoff(meter->gc);
1089
f0f5c10cce63 [gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1086
diff changeset
1813 }
f0f5c10cce63 [gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1086
diff changeset
1814
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1815 static gint meter_destroy(GtkWidget *window, GdkEvent *evt, struct signon_meter *meter)
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1816 {
1089
f0f5c10cce63 [gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1086
diff changeset
1817 return TRUE;
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1818 }
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1819
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1820 static struct signon_meter *register_meter(struct gaim_connection *gc, GtkWidget *widget, GtkTable *table, gint *rows)
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1821 {
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1822 GtkWidget *graphic;
3378
8c394e9f0dfb [gaim-migrate @ 3397]
Sean Egan <seanegan@gmail.com>
parents: 3375
diff changeset
1823 GtkWidget *label;
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1824 GtkWidget *nest_vbox;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1825 GString *name_to_print;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1826 struct signon_meter *meter;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1827
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1828 name_to_print = g_string_new(gc->username);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1829
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1830 meter = g_new0(struct signon_meter, 1);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1831
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1832 (*rows)++;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1833 gtk_table_resize (table, *rows, 4);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1834
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
1835 graphic = create_meter_pixmap(gc);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1836
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1837 nest_vbox = gtk_vbox_new (FALSE, 0);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1838
4225
76ea459c8b5b [gaim-migrate @ 4469]
Luke Schierer <lschiere@pidgin.im>
parents: 4169
diff changeset
1839 g_string_prepend(name_to_print, _("Signon: "));
3378
8c394e9f0dfb [gaim-migrate @ 3397]
Sean Egan <seanegan@gmail.com>
parents: 3375
diff changeset
1840 label = gtk_label_new (name_to_print->str);
4225
76ea459c8b5b [gaim-migrate @ 4469]
Luke Schierer <lschiere@pidgin.im>
parents: 4169
diff changeset
1841 g_string_free(name_to_print, TRUE);
3378
8c394e9f0dfb [gaim-migrate @ 3397]
Sean Egan <seanegan@gmail.com>
parents: 3375
diff changeset
1842 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1843
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1844 meter->status = gtk_statusbar_new();
4639
2c9f1ac20b36 [gaim-migrate @ 4947]
Nathan Walp <nwalp@pidgin.im>
parents: 4635
diff changeset
1845 gtk_widget_set_size_request(meter->status, 250, -1);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1846
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1847 meter->progress = gtk_progress_bar_new ();
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1848
4114
fa5075168c23 [gaim-migrate @ 4330]
Luke Schierer <lschiere@pidgin.im>
parents: 4111
diff changeset
1849 meter->button = gtk_button_new_with_label (_("Cancel"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1850 g_signal_connect (GTK_OBJECT (meter->button), "clicked", G_CALLBACK (cancel_signon), meter);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1851
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1852 gtk_table_attach (GTK_TABLE (table), graphic, 0, 1, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1853 gtk_table_attach (GTK_TABLE (table), nest_vbox, 1, 2, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
3378
8c394e9f0dfb [gaim-migrate @ 3397]
Sean Egan <seanegan@gmail.com>
parents: 3375
diff changeset
1854 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (label), FALSE, FALSE, 0);
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1855 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (meter->status), FALSE, FALSE, 0);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1856 gtk_table_attach (GTK_TABLE (table), meter->progress, 2, 3, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1857 gtk_table_attach (GTK_TABLE (table), meter->button, 3, 4, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1858
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1859 gtk_widget_show_all (GTK_WIDGET (meter_win->window));
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1860
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1861 meter_win->active_count++;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1862
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1863 return meter;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1864 }
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1865
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1866 static void loop_cancel () {
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1867 GSList *m = meters;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1868 struct signon_meter *meter = NULL;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1869
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1870 while (m) {
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1871 meter = (struct signon_meter *) (m->data);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1872 meter->gc->wants_to_die = TRUE;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1873 signoff((struct gaim_connection *) meter->gc);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1874 m = meters;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1875 }
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1876 }
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1877
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1878 void set_login_progress(struct gaim_connection *gc, float howfar, char *message)
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1172
diff changeset
1879 {
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1880 struct signon_meter *meter = find_signon_meter(gc);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1881
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1882 if (mainwindow)
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1883 gtk_widget_hide(mainwindow);
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1884
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1885 if (!meter_win) {
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1886 GtkWidget *cancel_button;
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1887 GtkWidget *vbox;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1888
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1889 meter_win = g_new0(struct meter_window, 1);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1890 meter_win->rows=0;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1891
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1892 meter_win->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1893 GAIM_DIALOG(meter_win->window);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1894 gtk_window_set_resizable(GTK_WINDOW(meter_win->window), FALSE);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4040
diff changeset
1895 gtk_window_set_role(GTK_WINDOW(meter_win->window), "signon");
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1896 gtk_container_set_border_width(GTK_CONTAINER(meter_win->window), 5);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
1897 gtk_window_set_title (GTK_WINDOW (meter_win->window), _("Signon"));
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1898 gtk_widget_realize(meter_win->window);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
1899
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1900 vbox = gtk_vbox_new (FALSE, 0);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1901 gtk_container_add (GTK_CONTAINER (meter_win->window), GTK_WIDGET (vbox));
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1902
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1903 meter_win->table = (GtkTable *) gtk_table_new (1 , 4, FALSE);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1904 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (meter_win->table), FALSE, FALSE, 0);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1905 gtk_container_set_border_width (GTK_CONTAINER (meter_win->table), 5);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1906 gtk_table_set_row_spacings (GTK_TABLE (meter_win->table), 5);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1907 gtk_table_set_col_spacings (GTK_TABLE (meter_win->table), 10);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1908
4114
fa5075168c23 [gaim-migrate @ 4330]
Luke Schierer <lschiere@pidgin.im>
parents: 4111
diff changeset
1909 cancel_button = gtk_button_new_with_label (_("Cancel All"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1910 g_signal_connect_swapped (GTK_OBJECT (cancel_button), "clicked", G_CALLBACK (loop_cancel), NULL);
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1911 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (cancel_button), FALSE, FALSE, 0);
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1912
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1913 g_signal_connect (GTK_OBJECT (meter_win->window), "delete_event", G_CALLBACK (meter_destroy), NULL);
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1914 }
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1915
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1916 if (!meter) {
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1917 char buf[256];
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1918
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1919 meter = register_meter(gc, GTK_WIDGET (meter_win->window), GTK_TABLE (meter_win->table), (gint *) &meter_win->rows);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1920 meter->gc = gc;
2403
8555e48c02df [gaim-migrate @ 2416]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2402
diff changeset
1921 meters = g_slist_append(meters, meter);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1922
3572
bdd0bebd2d04 [gaim-migrate @ 3670]
Sean Egan <seanegan@gmail.com>
parents: 3570
diff changeset
1923 g_snprintf(buf, sizeof(buf), "%s Signing On (using %s)", gc->username, gc->prpl->name);
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1924 }
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1925
4275
5ce5b252cdb1 [gaim-migrate @ 4526]
Luke Schierer <lschiere@pidgin.im>
parents: 4249
diff changeset
1926 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(meter->progress), howfar / LOGIN_STEPS);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1927 gtk_statusbar_pop(GTK_STATUSBAR(meter->status), 1);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1928 gtk_statusbar_push(GTK_STATUSBAR(meter->status), 1, message);
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1929 }
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1930
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1931 struct kick_dlg {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1932 struct gaim_account *account;
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1933 GtkWidget *dlg;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1934 };
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1935 static GSList *kicks = NULL;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1936
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1937 static struct kick_dlg *find_kick_dlg(struct gaim_account *account)
1817
b367beee6448 [gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1772
diff changeset
1938 {
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1939 GSList *k = kicks;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1940 while (k) {
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1941 struct kick_dlg *d = k->data;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1942 if (d->account == account)
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1943 return d;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1944 k = k->next;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1945 }
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1946 return NULL;
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1947 }
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1948
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1949 static void set_kick_null(GtkObject *obj, struct kick_dlg *k)
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1950 {
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1951 kicks = g_slist_remove(kicks, k);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1952 g_free(k);
1817
b367beee6448 [gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1772
diff changeset
1953 }
b367beee6448 [gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1772
diff changeset
1954
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1955 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1956 * Common code for hide_login_progress(), and hide_login_progress_info()
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1957 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1958 static void hide_login_progress_common(struct gaim_connection *gc,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1959 char *details,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1960 char *title,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1961 char *prologue)
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1962 {
4617
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
1963 gchar *buf;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1964 struct kick_dlg *k = find_kick_dlg(gc->account);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1965 struct signon_meter *meter = find_signon_meter(gc);
4617
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
1966 buf = g_strdup_printf(_("%s\n%s: %s"), full_date(), prologue, details);
2442
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1967 if (k)
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1968 gtk_widget_destroy(k->dlg);
895e2469cb3a [gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2438
diff changeset
1969 k = g_new0(struct kick_dlg, 1);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
1970 k->account = gc->account;
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3391
diff changeset
1971 k->dlg = do_error_dialog(title, buf, GAIM_ERROR);
2709
df0832a9ccec [gaim-migrate @ 2722]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2707
diff changeset
1972 kicks = g_slist_append(kicks, k);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4114
diff changeset
1973 g_signal_connect(GTK_OBJECT(k->dlg), "destroy", G_CALLBACK(set_kick_null), k);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1974 if (meter) {
3060
4f2f12bf4408 [gaim-migrate @ 3074]
Sean Egan <seanegan@gmail.com>
parents: 2975
diff changeset
1975 kill_meter(meter);
2402
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1976 meters = g_slist_remove(meters, meter);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1977 g_free(meter);
6e3dc0b3b9b1 [gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
1978 }
4617
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
1979 g_free(buf);
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 984
diff changeset
1980 }
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
1981
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1982 void hide_login_progress(struct gaim_connection *gc, char *why)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1983 {
4617
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
1984 gchar *buf;
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1985
4617
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
1986 plugin_event(event_error, gc, why);
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
1987 buf = g_strdup_printf(_("%s was unable to sign on"), gc->username);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1988 hide_login_progress_common(gc, why, _("Signon Error"), buf);
4617
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
1989 g_free(buf);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1990 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1991
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1992 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1993 * Like hide_login_progress(), but for informational, not error/warning,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1994 * messages.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1995 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1996 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1997 void hide_login_progress_notice(struct gaim_connection *gc, char *why)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1998 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
1999 hide_login_progress_common(gc, why, _("Notice"), gc->username);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
2000 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
2001
3074
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2002 /*
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2003 * Like hide_login_progress(), but for non-signon error messages.
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2004 *
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2005 */
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2006 void hide_login_progress_error(struct gaim_connection *gc, char *why)
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2007 {
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2008 char buf[2048];
4617
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
2009
858979ab3867 [gaim-migrate @ 4908]
Mark Doliner <mark@kingant.net>
parents: 4550
diff changeset
2010 plugin_event(event_error, gc, why);
3074
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2011 g_snprintf(buf, sizeof(buf), _("%s has been signed off"), gc->username);
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2012 hide_login_progress_common(gc, why, _("Connection Error"), buf);
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2013 }
793fb2e9d53b [gaim-migrate @ 3088]
Sean Egan <seanegan@gmail.com>
parents: 3069
diff changeset
2014
2559
e49ab50736bf [gaim-migrate @ 2572]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2525
diff changeset
2015 void signoff_all()
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2016 {
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2017 GSList *c = connections;
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2018 struct gaim_connection *g = NULL;
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2019
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2020 while (c) {
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2021 g = (struct gaim_connection *)c->data;
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2022 g->wants_to_die = TRUE;
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2023 signoff(g);
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2024 c = connections;
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2025 }
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2026 }
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2027
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2028 void signoff(struct gaim_connection *gc)
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2029 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2030 GList *wins;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2031
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2032 /* UI stuff */
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2033 /* CONV XXX
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2034 convo_menu_remove(gc);
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2035 remove_icon_data(gc);
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
2036 */
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
2037
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
2038 gaim_blist_remove_account(gc->account);
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2039
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2040 /* core stuff */
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2041 /* remove this here so plugins get a sensible count of connections */
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2042 connections = g_slist_remove(connections, gc);
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2043 debug_printf("date: %s\n", full_date());
3517
6b0cb60162f4 [gaim-migrate @ 3590]
Sean Egan <seanegan@gmail.com>
parents: 3510
diff changeset
2044 plugin_event(event_signoff, gc);
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2045 system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2046 /* set this in case the plugin died before really connecting.
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2047 do it after calling the plugins so they can determine if
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2048 this user was ever on-line or not */
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2049 if (gc->account->connecting) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2050 gc->account->connecting = FALSE;
3726
d85208a99af2 [gaim-migrate @ 3862]
Luke Schierer <lschiere@pidgin.im>
parents: 3717
diff changeset
2051 connecting_count--;
3517
6b0cb60162f4 [gaim-migrate @ 3590]
Sean Egan <seanegan@gmail.com>
parents: 3510
diff changeset
2052 }
3570
b791019b2492 [gaim-migrate @ 3666]
Sean Egan <seanegan@gmail.com>
parents: 3554
diff changeset
2053 debug_printf("connecting_count: %d\n", connecting_count);
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2054 serv_close(gc);
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2055
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2056 /* more UI stuff */
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2057 do_away_menu();
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2058 do_proto_menu();
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2059
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2060 /*
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2061 * XXX This is a hack! Remove this and replace it with a better event
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2062 * notification system.
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2063 */
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2064 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2065 struct gaim_window *win = (struct gaim_window *)wins->data;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2066 gaim_conversation_update(gaim_window_get_conversation_at(win, 0),
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2067 GAIM_CONV_ACCOUNT_OFFLINE);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2068 }
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
2069
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
2070 update_privacy_connections();
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2071
3510
e23909729192 [gaim-migrate @ 3576]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
2072 /* in, out, shake it all about */
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2073 if (connections)
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2074 return;
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2075
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2076 destroy_all_dialogs();
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4639
diff changeset
2077 gaim_blist_destroy();
3472
d33ec392a5e1 [gaim-migrate @ 3523]
Sean Egan <seanegan@gmail.com>
parents: 3466
diff changeset
2078
2380
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2079 show_login();
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2080 }
6f83c22d9e70 [gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
2081
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2082 struct gaim_account *gaim_account_new(const char *name, int proto, int opts)
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
2083 {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2084 struct gaim_account *account = g_new0(struct gaim_account, 1);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2085 g_snprintf(account->username, sizeof(account->username), "%s", name);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2086 g_snprintf(account->user_info, sizeof(account->user_info), "%s", DEFAULT_INFO);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2087 account->protocol = proto;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2088 account->options = opts;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2089 account->permit = NULL;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2090 account->deny = NULL;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2091 gaim_accounts = g_slist_append(gaim_accounts, account);
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
2092
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
2093 if (treeview) {
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
2094 GtkTreeIter iter;
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
2095
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
2096 gtk_list_store_append(model, &iter);
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
2097 gtk_list_store_set(model, &iter,
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2098 COLUMN_SCREENNAME, account->username,
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2099 COLUMN_ONLINE, (account->gc ? TRUE : FALSE),
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2100 COLUMN_AUTOLOGIN, (account->options & OPT_ACCT_AUTO),
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2101 COLUMN_PROTOCOL, proto_name(account->protocol),
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2102 COLUMN_DATA, account,
3754
599194293ee5 [gaim-migrate @ 3893]
Sean Egan <seanegan@gmail.com>
parents: 3730
diff changeset
2103 -1);
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
2104 }
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
2105
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4484
diff changeset
2106 return account;
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1261
diff changeset
2107 }