gui.begin(cfg); Group(`main`) .grabKeyboardFocus() .addHandler((KeyboardEvent e) { if (e.sinking && e.down) { if (e.unicode >= '0' && e.unicode <= '9') { onDigit(e.unicode - '0'); } else if (KeySym.Return == e.keySym) { evalOp(); } else switch (e.unicode) { case '/': onOp((long a, long b) { return b == 0 ? 0 : a / b; }); break; case '*': onOp((long a, long b) { return a * b; }); break; case '+': onOp((long a, long b) { return a + b; }); break; case '-': onOp((long a, long b) { return a - b; }); break; case '=': evalOp(); break; default: break; } } return EventHandling.Continue; }); gui.end();