!7 cmodule SwitchLAF { transient SS entries = litorderedmap( "" := "Default (Windows/JTattoo)", //"webLAF" := "WebLAF", // BROKEN "jtattoo" := "JTattoo", "nimbus" := "Nimbus", "substance" := "Substance", "substance Creme" := "Substance/Creme", "substance Sahara" := "Substance/Sahara", "platform" := "Platform"); visualize { if (!hasMethodNamed(dm_os(), 'setLAF)) ret jcenteredlabel("Please upgrade " + dm_osName()); ButtonGroup buttons = jRadioButtons(values(entries)); S laf = cast dm_callOSOpt getLAF(); selectRadioButton(buttons, indexOfIC(keysList(entries), laf)); onRadioButtonChange(buttons, voidfunc(int i) { S laf = _get(keysList(entries), i); dm_callOS setLAF(laf); thread { if (confirmOKCancel("Look&Feel changed. Restart " + dm_osName() + "?")) dm_restartOS(); } }); ret jfullcenter(vstackWithSpacing(buttonsInGroup(buttons))); } }