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;