Mercurial > pidgin
comparison src/multi.c @ 2100:a93aeb6f813d
[gaim-migrate @ 2110]
implemented OPT_PROTO_NO_PASSWORD.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 01 Aug 2001 19:11:42 +0000 |
parents | 424a40f12a6c |
children | dd3aa315519d |
comparison
equal
deleted
inserted
replaced
2099:33a3b6b903d9 | 2100:a93aeb6f813d |
---|---|
17 * along with this program; if not, write to the Free Software | 17 * along with this program; if not, write to the Free Software |
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 <string.h> | |
22 #include <gtk/gtk.h> | 23 #include <gtk/gtk.h> |
23 #include "prpl.h" | 24 #include "prpl.h" |
24 #include "multi.h" | 25 #include "multi.h" |
25 #include "gaim.h" | 26 #include "gaim.h" |
26 #ifdef USE_APPLET | 27 #ifdef USE_APPLET |
45 static GtkWidget *list = NULL; /* the clist of names in the accteditor */ | 46 static GtkWidget *list = NULL; /* the clist of names in the accteditor */ |
46 static GtkWidget *newmod = NULL; /* the dialog for creating a new account */ | 47 static GtkWidget *newmod = NULL; /* the dialog for creating a new account */ |
47 static GtkWidget *newmain = NULL; /* the notebook that holds options */ | 48 static GtkWidget *newmain = NULL; /* the notebook that holds options */ |
48 static struct aim_user tmpusr = { "", "", "", OPT_USR_REM_PASS, DEFAULT_PROTO, | 49 static struct aim_user tmpusr = { "", "", "", OPT_USR_REM_PASS, DEFAULT_PROTO, |
49 { "", "", "", "", "", "", "" }, NULL, NULL, NULL, NULL, NULL, | 50 { "", "", "", "", "", "", "" }, NULL, NULL, NULL, NULL, NULL, |
50 OPT_USR_REM_PASS, DEFAULT_PROTO, NULL, NULL, NULL }; | 51 NULL, NULL, OPT_USR_REM_PASS, DEFAULT_PROTO, NULL, NULL, NULL }; |
51 | 52 |
52 static void generate_prpl_options(struct aim_user *, GtkWidget *); | 53 static void generate_prpl_options(struct aim_user *, GtkWidget *); |
53 | 54 |
54 struct mod_usr_opt { | 55 struct mod_usr_opt { |
55 struct aim_user *user; | 56 struct aim_user *user; |
273 } | 274 } |
274 | 275 |
275 static void set_prot(GtkWidget *opt, int proto) | 276 static void set_prot(GtkWidget *opt, int proto) |
276 { | 277 { |
277 struct aim_user *u = gtk_object_get_user_data(GTK_OBJECT(opt)); | 278 struct aim_user *u = gtk_object_get_user_data(GTK_OBJECT(opt)); |
279 struct prpl *p, *q; | |
280 q = find_prpl(proto); | |
278 if (u && (u->tmp_protocol != proto)) { | 281 if (u && (u->tmp_protocol != proto)) { |
279 int i; | 282 int i; |
280 for (i = 0; i < 7; i++) | 283 for (i = 0; i < 7; i++) |
281 u->proto_opt[i][0] = '\0'; | 284 u->proto_opt[i][0] = '\0'; |
285 p = find_prpl(u->tmp_protocol); | |
286 if (!(p->options & OPT_PROTO_NO_PASSWORD) && | |
287 (q->options & OPT_PROTO_NO_PASSWORD)) { | |
288 gtk_widget_hide(u->pwdbox); | |
289 gtk_widget_hide(u->rempass); | |
290 } else if ((p->options & OPT_PROTO_NO_PASSWORD) && | |
291 !(q->options & OPT_PROTO_NO_PASSWORD)) { | |
292 gtk_widget_show(u->pwdbox); | |
293 gtk_widget_show(u->rempass); | |
294 } | |
282 u->tmp_protocol = proto; | 295 u->tmp_protocol = proto; |
283 generate_prpl_options(u, u->main); | 296 generate_prpl_options(u, u->main); |
284 } else if (tmpusr.tmp_protocol != proto) { | 297 } else if (!u && (tmpusr.tmp_protocol != proto)) { |
285 int i; | 298 int i; |
286 for (i = 0; i < 7; i++) | 299 for (i = 0; i < 7; i++) |
287 tmpusr.proto_opt[i][0] = '\0'; | 300 tmpusr.proto_opt[i][0] = '\0'; |
301 p = find_prpl(tmpusr.tmp_protocol); | |
302 if (!(p->options & OPT_PROTO_NO_PASSWORD) && | |
303 (q->options & OPT_PROTO_NO_PASSWORD)) { | |
304 gtk_widget_hide(tmpusr.pwdbox); | |
305 gtk_widget_hide(tmpusr.rempass); | |
306 } else if ((p->options & OPT_PROTO_NO_PASSWORD) && | |
307 !(q->options & OPT_PROTO_NO_PASSWORD)) { | |
308 gtk_widget_show(tmpusr.pwdbox); | |
309 gtk_widget_show(tmpusr.rempass); | |
310 } | |
288 tmpusr.tmp_protocol = tmpusr.protocol = proto; | 311 tmpusr.tmp_protocol = tmpusr.protocol = proto; |
289 generate_prpl_options(NULL, newmain); | 312 generate_prpl_options(NULL, newmain); |
290 } | 313 } |
291 } | 314 } |
292 | 315 |
339 | 362 |
340 static void generate_general_options(struct aim_user *u, GtkWidget *book) | 363 static void generate_general_options(struct aim_user *u, GtkWidget *book) |
341 { | 364 { |
342 GtkWidget *vbox; | 365 GtkWidget *vbox; |
343 GtkWidget *hbox; | 366 GtkWidget *hbox; |
367 GtkWidget *pwdbox; | |
344 GtkWidget *label; | 368 GtkWidget *label; |
345 GtkWidget *name; | 369 GtkWidget *name; |
346 GtkWidget *pass; | 370 GtkWidget *pass; |
371 GtkWidget *rempass; | |
372 | |
373 struct prpl *p = NULL; | |
347 | 374 |
348 vbox = gtk_vbox_new(FALSE, 5); | 375 vbox = gtk_vbox_new(FALSE, 5); |
349 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); | 376 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
350 gtk_notebook_append_page(GTK_NOTEBOOK(book), vbox, gtk_label_new(_("General Options"))); | 377 gtk_notebook_append_page(GTK_NOTEBOOK(book), vbox, gtk_label_new(_("General Options"))); |
351 | 378 |
356 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | 383 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
357 | 384 |
358 name = gtk_entry_new(); | 385 name = gtk_entry_new(); |
359 gtk_box_pack_start(GTK_BOX(hbox), name, TRUE, TRUE, 0); | 386 gtk_box_pack_start(GTK_BOX(hbox), name, TRUE, TRUE, 0); |
360 | 387 |
361 hbox = gtk_hbox_new(FALSE, 5); | 388 pwdbox = gtk_hbox_new(FALSE, 5); |
362 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | 389 gtk_box_pack_start(GTK_BOX(vbox), pwdbox, FALSE, FALSE, 0); |
363 | 390 |
364 label = gtk_label_new(_("Password:")); | 391 label = gtk_label_new(_("Password:")); |
365 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | 392 gtk_box_pack_start(GTK_BOX(pwdbox), label, FALSE, FALSE, 0); |
366 | 393 |
367 pass = gtk_entry_new(); | 394 pass = gtk_entry_new(); |
368 gtk_box_pack_start(GTK_BOX(hbox), pass, TRUE, TRUE, 0); | 395 gtk_box_pack_start(GTK_BOX(pwdbox), pass, TRUE, TRUE, 0); |
369 gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE); | 396 gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE); |
370 | 397 |
371 hbox = gtk_hbox_new(FALSE, 5); | 398 hbox = gtk_hbox_new(FALSE, 5); |
372 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | 399 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
373 gtk_widget_show(hbox); | 400 gtk_widget_show(hbox); |
375 label = gtk_label_new(_("Protocol:")); | 402 label = gtk_label_new(_("Protocol:")); |
376 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | 403 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
377 | 404 |
378 make_protocol_menu(hbox, u); | 405 make_protocol_menu(hbox, u); |
379 | 406 |
380 acct_button(_("Remember Password"), u, OPT_USR_REM_PASS, vbox); | 407 rempass = acct_button(_("Remember Password"), u, OPT_USR_REM_PASS, vbox); |
381 acct_button(_("Auto-Login"), u, OPT_USR_AUTO, vbox); | 408 acct_button(_("Auto-Login"), u, OPT_USR_AUTO, vbox); |
382 /*acct_button(_("Send KeepAlive packet (6 bytes/second)"), u, OPT_USR_KEEPALV, vbox);*/ | 409 /*acct_button(_("Send KeepAlive packet (6 bytes/second)"), u, OPT_USR_KEEPALV, vbox);*/ |
383 | 410 |
411 gtk_widget_show_all(vbox); | |
412 | |
384 if (u) { | 413 if (u) { |
385 u->name = name; | 414 u->name = name; |
415 u->pwdbox = pwdbox; | |
386 u->pass = pass; | 416 u->pass = pass; |
417 u->rempass = rempass; | |
387 gtk_entry_set_text(GTK_ENTRY(name), u->username); | 418 gtk_entry_set_text(GTK_ENTRY(name), u->username); |
388 gtk_entry_set_text(GTK_ENTRY(pass), u->password); | 419 gtk_entry_set_text(GTK_ENTRY(pass), u->password); |
389 gtk_entry_set_editable(GTK_ENTRY(name), FALSE); | 420 gtk_entry_set_editable(GTK_ENTRY(name), FALSE); |
421 p = find_prpl(u->tmp_protocol); | |
390 } else { | 422 } else { |
391 tmpusr.name = name; | 423 tmpusr.name = name; |
424 tmpusr.pwdbox = pwdbox; | |
392 tmpusr.pass = pass; | 425 tmpusr.pass = pass; |
393 } | 426 tmpusr.rempass = rempass; |
394 | 427 p = find_prpl(tmpusr.tmp_protocol); |
395 gtk_widget_show_all(vbox); | 428 } |
429 if (p->options & OPT_PROTO_NO_PASSWORD) { | |
430 gtk_widget_hide(pwdbox); | |
431 gtk_widget_hide(rempass); | |
432 } | |
396 } | 433 } |
397 | 434 |
398 static void generate_prpl_options(struct aim_user *u, GtkWidget *book) | 435 static void generate_prpl_options(struct aim_user *u, GtkWidget *book) |
399 { | 436 { |
400 struct prpl *p; | 437 struct prpl *p; |