public void uimsg(String msg, Object... args) {
		if (msg == "pop") {
			is_ready = true;
			final int xoff = 50;
			if (inputs != null) {
				for (Widget w : inputs)
					w.unlink();
				for (Widget w : outputs)
					w.unlink();
			}
			inputs = new LinkedList<Widget>();
			outputs = new LinkedList<Widget>();
			int i;
			Coord c = new Coord(xoff, 10);
			for (i = 0; (Integer) args[i] >= 0; i += 2) {
				Widget box = new Inventory(c, new Coord(1, 1), this);
				inputs.add(box);
				c = c.add(new Coord(31, 0));
				new Item(Coord.z, (Integer) args[i], -1, box, null,
						(Integer) args[i + 1]);
			}
			c = new Coord(xoff, 65);
			for (i++; (i < args.length) && ((Integer) args[i] >= 0); i += 2) {
				Widget box = new Inventory(c, new Coord(1, 1), this);
				outputs.add(box);
				c = c.add(new Coord(31, 0));
				new Item(Coord.z, (Integer) args[i], -1, box, null,
						(Integer) args[i + 1]);
			}
		}
	}