Mercurial > pidgin
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); |
