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);
        sbstatus = new Button(new Coord(5, 290), 120, this, "Sort by status") {
            public void click() {
                setcmp(statuscmp);
            }
        };
        sbgroup = new Button(new Coord(140, 290), 120, this, "Sort by group") {
            public void click() {
                setcmp(groupcmp);
            }
        };
        sbalpha = 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;
    }