public void uimsg(String msg, Object... args) {
        if (msg == "log") {
            Color col = null;
            if (args.length > 1)
                col = (Color) args[1];
            out.append((String) args[0], col);
        } else if (msg == "btns") {
            if (btns != null) {
                for (Button b : btns)
                    ui.destroy(b);
                btns = null;
            }
            if (args.length > 0) {
                int y = out.sz.y + 3;
                btns = new LinkedList<Button>();
                for (Object text : args) {
                    Button b = Button.wrapped(new Coord(0, y), out.sz.x, this, (String) text);
                    btns.add(b);
                    y += b.sz.y + 3;
                }
            }
            pack();
        } else {
            super.uimsg(msg, args);
        }
    }