1
0
forked from x/icebergs
icebergs/core/chat/macos/caculator.js
2023-09-25 18:45:17 +08:00

47 lines
1.4 KiB
JavaScript

Volcanos(chat.ONIMPORT, {
_init: function(can, msg) {
var list = [
["AC", "+/-", "%", "/"],
["7", "8", "9", "*"],
["4", "5", "6", "-"],
["1", "2", "3", "+"],
["0", "00", ".", "="],
]
can.ui.display = can.page.Append(can, can._output, [{view: html.DISPLAY, inner: "0"}])._target
var table = can.page.Append(can, can._output, [{type: html.TABLE}])._target
can.page.Append(can, table, can.core.List(list, function(list) {
return {type: html.TR, list: can.core.List(list, function(item) {
return {type: html.TD, inner: item, onclick: function(event) { var cb = can.ondetail[item]
cb? cb(event, can, item): (can.ui.display.innerHTML = can.base.trimPrefix(can.ui.display.innerHTML + item, "0"))
}}
}) }
}))
},
}, [""])
Volcanos(chat.ONACTION, {
onkeydown: function(event, can) {
switch (event.key) {
case "=": can.ondetail[event.key](evnt, can, event.key); break
case "Backspace":
case "Shift": break
default: can.ui.display.innerHTML += event.key
}
},
})
Volcanos(chat.ONDETAIL, {
"AC": function(event, can, button) { can.ui.display.innerHTML = "0" },
"=": function(event, can, button) { var list = []
can.core.List(can.core.Split(can.ui.display.innerHTML, "", "+-*/%"), function(item) {
switch (item) {
case "+":
case "-":
case "*":
case "/":
case "%":
default: list.push(item)
}
})
},
"+/-": function(event, can, button) {},
})