// runnable takes an argument
static A onLeftClick(final A c, fO runnable) {
swing {
c.addMouseListener(leftClickMouseAdapter(runnable));
}
ret c;
}
// runnable takes no args
static TrayIcon onLeftClick(final TrayIcon c, final O runnable) {
swing {
c.addMouseListener(leftClickMouseAdapter_noPt(runnable));
}
ret c;
}
static A onLeftClick(fO runnable, A c) {
ret onLeftClick(c, runnable);
}