// runnable can take an argument (Pt)
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);
}
static A onLeftClick(Runnable runnable, A c) {
ret onLeftClick((O) runnable, c);
}
static A onLeftClick(A c, Runnable r) {
ret onLeftClick(r, c);
}
static A onLeftClick(A c, IVF1 r) {
ret onLeftClick(c, (O) r);
}