!7 cmodule FingerTypeMode > DynFullscreen { S text; visual withMargin(withCenteredButtons(dm_textFieldWithLabel text(), "Go fullscreen", rThread goFullscreen)); JComponent fullscreenVisualize() { new L buttons; int nButtons = 12; buttons.add(jbutton("Exit", rThread exitFullscreen)); buttons.add(jbutton("SPACE", rThread { type(" ") })); S chars = "abcdefghijklmnopqrstuvwxyz"; for (S s : stringChunks(chars, ratio_iceil(l(chars), nButtons-l(buttons)))) { buttons.add(jbutton(upper(s), rThread { setFullscreenComponent(withCenteredButtons(jcenteredlabel("Screen 2"), "Back", rThread defaultScreen)); })); } ret northAndCenterWithMargins( fontSizePlus(4, dm_centeredTextField text()), hvgrid(chunks(4, buttons), 5); } void type(S s) { setField(text := unnull(text)+unnull(s)); } }