static PopupMenu makePopupMenu(O... x) { if (x == null) null; if (l(x) == 1 && x[0] instanceof PopupMenu) ret (PopupMenu) x[0]; new PopupMenu m; for i over x: { O o = x[i]; if (eqOneOf(o, "***", "---", "===", "")) m.addSeparator(); else if (o instanceof S && get(x, i+1) instanceof Runnable) m.add(menuItem((S) o, get(x, ++i))); else if (o instanceof S || o instanceof Menu || o instanceof MenuItem) call(m, "add", o); else print("Unknown menu item: " + o); } ret m; }