comparison src/multi.c @ 981:7e231bc0018a

[gaim-migrate @ 991] I think I need a Pepsi. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Fri, 13 Oct 2000 07:24:40 +0000
parents 82c5865f7cfe
children 09e5065fe22c
comparison
equal deleted inserted replaced
980:82c5865f7cfe 981:7e231bc0018a
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 * 19 *
20 */ 20 */
21 21
22 #include <gtk/gtk.h> 22 #include <gtk/gtk.h>
23 #include "prpl.h"
23 #include "multi.h" 24 #include "multi.h"
24 #include "gaim.h" 25 #include "gaim.h"
25 #include "gnome_applet_mgr.h" 26 #include "gnome_applet_mgr.h"
26 #include "aim.h" 27 #include "aim.h"
27 28
47 48
48 struct gaim_connection *new_gaim_conn(int proto, char *username, char *password) 49 struct gaim_connection *new_gaim_conn(int proto, char *username, char *password)
49 { 50 {
50 struct gaim_connection *gc = g_new0(struct gaim_connection, 1); 51 struct gaim_connection *gc = g_new0(struct gaim_connection, 1);
51 gc->protocol = proto; 52 gc->protocol = proto;
53 gc->prpl = find_prpl(proto);
52 g_snprintf(gc->username, sizeof(gc->username), "%s", username); 54 g_snprintf(gc->username, sizeof(gc->username), "%s", username);
53 g_snprintf(gc->password, sizeof(gc->password), "%s", password); 55 g_snprintf(gc->password, sizeof(gc->password), "%s", password);
54 gc->keepalive = -1; 56 gc->keepalive = -1;
55 57
56 switch(proto) { 58 switch(proto) {
120 return FALSE; 122 return FALSE;
121 } 123 }
122 124
123 static char *proto_name(int proto) 125 static char *proto_name(int proto)
124 { 126 {
125 switch (proto) { 127 struct prpl *p = find_prpl(proto);
126 case PROTO_TOC: 128 if (p && p->name)
127 return "TOC"; 129 return (*p->name)();
128 case PROTO_OSCAR: 130 else
129 return "Oscar"; 131 return "Unknown";
130 default:
131 /* PRPL */
132 return "Other";
133 }
134 } 132 }
135 133
136 static GtkWidget *generate_list() 134 static GtkWidget *generate_list()
137 { 135 {
138 GtkWidget *win; 136 GtkWidget *win;
226 /* PRPL: also need to check protocol. remember TOC and Oscar are both AIM */ 224 /* PRPL: also need to check protocol. remember TOC and Oscar are both AIM */
227 gtk_widget_destroy(newmod); 225 gtk_widget_destroy(newmod);
228 return; 226 return;
229 } 227 }
230 u = g_new0(struct aim_user, 1); 228 u = g_new0(struct aim_user, 1);
231 u->protocol = PROTO_TOC;
232 g_snprintf(u->username, sizeof(u->username), "%s", txt); 229 g_snprintf(u->username, sizeof(u->username), "%s", txt);
233 txt = gtk_entry_get_text(GTK_ENTRY(tmpusr.pass)); 230 txt = gtk_entry_get_text(GTK_ENTRY(tmpusr.pass));
234 g_snprintf(u->password, sizeof(u->password), "%s", txt); 231 g_snprintf(u->password, sizeof(u->password), "%s", txt);
235 u->options = tmpusr.options; 232 u->options = tmpusr.options;
236 u->protocol = tmpusr.protocol; 233 u->protocol = tmpusr.protocol;
267 static GtkWidget *make_protocol_menu(GtkWidget *box, struct aim_user *u) 264 static GtkWidget *make_protocol_menu(GtkWidget *box, struct aim_user *u)
268 { 265 {
269 GtkWidget *optmenu; 266 GtkWidget *optmenu;
270 GtkWidget *menu; 267 GtkWidget *menu;
271 GtkWidget *opt; 268 GtkWidget *opt;
269 GSList *p = protocols;
270 struct prpl *e;
272 271
273 /* PRPL: should we set some way to update these when new protocols get added? */ 272 /* PRPL: should we set some way to update these when new protocols get added? */
274 optmenu = gtk_option_menu_new(); 273 optmenu = gtk_option_menu_new();
275 gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 5); 274 gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 5);
276 gtk_widget_show(optmenu); 275 gtk_widget_show(optmenu);
277 276
278 menu = gtk_menu_new(); 277 menu = gtk_menu_new();
279 278
280 /* PRPL: we need to have some way of getting all the plugin names, etc */ 279 while (p) {
281 opt = gtk_menu_item_new_with_label("TOC"); 280 e = (struct prpl *)p->data;
282 gtk_object_set_user_data(GTK_OBJECT(opt), u); 281 if (e->name)
283 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_prot), (void *)PROTO_TOC); 282 opt = gtk_menu_item_new_with_label((*e->name)());
284 gtk_menu_append(GTK_MENU(menu), opt); 283 else
285 gtk_widget_show(opt); 284 opt = gtk_menu_item_new_with_label("Unknown");
286 285 gtk_object_set_user_data(GTK_OBJECT(opt), u);
287 opt = gtk_menu_item_new_with_label("Oscar"); 286 gtk_signal_connect(GTK_OBJECT(opt), "activate",
288 gtk_object_set_user_data(GTK_OBJECT(opt), u); 287 GTK_SIGNAL_FUNC(set_prot), (void *)e->protocol);
289 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_prot), (void *)PROTO_OSCAR); 288 gtk_menu_append(GTK_MENU(menu), opt);
290 gtk_menu_append(GTK_MENU(menu), opt); 289 gtk_widget_show(opt);
291 gtk_widget_show(opt); 290 p = p->next;
291 }
292 292
293 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); 293 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu);
294 u->tmp_protocol = u->protocol; 294 u->tmp_protocol = u->protocol;
295 if (u) { 295 if (u) {
296 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), u->protocol); 296 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), u->protocol);