!7 cmodule LockScreenWithCPU > DynSingleFunction { switchable bool withConfirm; // to filter out accidental clicks transient JFrame frame; transient JLabel label; start { dm_require("#1026796/CombinedCPUTrayIcon"); dm_vmBus_onMessage_q newCombinedCPUTrayImage(voidfunc(O mod, BufferedImage image) { setImage(label, image); } } void doIt { showFullscreen(); } void showFullscreen enter { if (frame != null) activateFrame(frame); label = jcenteredlabel("Lock mode!"); frame = showFullScreen(jfullcenter( centerAndSouthWithMargins( label, jMarginButton(20, "Exit", rThread exitStep2)))); onFrameClose(frame, r { frame = null; }); } void exitFullscreen enter { disposeFrame(frame); } void exitStep2 enter { /*if (!withConfirm) TODO */ exitFullscreen(); } }