public BuddyWnd(Coord c, Widget parent) {
		super(c, new Coord(400, 370), parent, "Kin");
		instance = this;
		bl = new BuddyList(new Coord(10, 5), new Coord(180, 280), this) {
			public void changed(Buddy b) {
				if (b != null)
					BuddyWnd.this.wdgmsg("ch", b.id);
			}
		};
		bi = new BuddyInfo(new Coord(210, 5), new Coord(180, 280), this);
		new Button(new Coord(5, 290), 120, this, "Sort by status") {
			public void click() {
				setcmp(statuscmp);
			}
		};
		new Button(new Coord(140, 290), 120, this, "Sort by group") {
			public void click() {
				setcmp(groupcmp);
			}
		};
		new Button(new Coord(275, 290), 120, this,
				"Sort alphabetically") {
			public void click() {
				setcmp(alphacmp);
			}
		};
		String sort = Utils.getpref("buddysort", "");
		if (sort.equals("")) {
			bcmp = statuscmp;
		} else {
			if (sort.equals("alpha"))
				bcmp = alphacmp;
			if (sort.equals("group"))
				bcmp = groupcmp;
			if (sort.equals("status"))
				bcmp = statuscmp;
		}
		new Label(new Coord(0, 310), this, "My hearth secret:");
		new Label(new Coord(200, 310), this, "Make kin by hearth secret:");
		charpass = new TextEntry(new Coord(0, 325), new Coord(190, 20), this,
				"") {
			public void activate(String text) {
				BuddyWnd.this.wdgmsg("pwd", text);
			}
		};
		opass = new TextEntry(new Coord(200, 325), new Coord(190, 20), this, "") {
			public void activate(String text) {
				BuddyWnd.this.wdgmsg("bypwd", text);
				settext("");
			}
		};
		new Button(new Coord(0, 350), 50, this, "Set") {
			public void click() {
				sendpwd(charpass.text);
			}
		};
		new Button(new Coord(60, 350), 50, this, "Clear") {
			public void click() {
				sendpwd("");
			}
		};
		new Button(new Coord(120, 350), 50, this, "Random") {
			public void click() {
				sendpwd(randpwd());
			}
		};
		new Button(new Coord(200, 350), 50, this, "Add kin") {
			public void click() {
				BuddyWnd.this.wdgmsg("bypwd", opass.text);
				opass.settext("");
			}
		};
		bl.repop();
		visible = false;
	}