Warning: session_start(): open(/var/lib/php/sessions/sess_bb2a62o15bvg7n43lgr6lac96l, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
srecord noeq ScreenSelectorRadioButtons(SimpleLiveValue lvScreenNr) is Swingable {
transient ButtonGroup radioButtons;
transient SingleComponentPanel scp;
settable bool compactLayout;
settable bool hideIfOnlyOne;
settable S screenLabel = "Screen";
visual swing(-> {
if (scp == null) {
scp = singleComponentPanel();
awtEveryAndNow(scp, 5.0, r updateScreenCount);
}
var n = screenCount();
radioButtons = jRadioButtons(
countIteratorAsList(n,
i -> (compactLayout ? "": screenLabel + " ") + (i+1)));
setRadioButtonToolTips(radioButtons, i -> "Select screen " + (i+1));
selectRadioButton(radioButtons, lvScreenNr!);
onRadioButtonChange(radioButtons, i -> lvScreenNr.set(i));
scp.setComponent(compactLayout
? hideIfOnlyOne && n == 1 ? null
: hstack(flattenList2(nempty(screenLabel) ? jlabel(screenLabel) : null, buttonsInGroup(radioButtons)))
: jline(flattenList2(buttonsInGroup(radioButtons))));
ret scp;
});
void updateScreenCount() {
if (radioButtons != null && radioButtons.getButtonCount() != screenCount())
visualize();
}
}