123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- import nodesnim
- import strutils
- Window("Calc")
- var
- main_obj: SceneObj
- main = Scene("Main", main_obj)
- first: string = ""
- second: string = ""
- sign: string = ""
- vbox_obj: VBoxObj
- vbox = VBox(vbox_obj)
- result_obj: LabelObj
- result = Label("Result", result_obj)
- buttons_obj: GridBoxObj
- buttons = GridBox("Buttons", buttons_obj)
- button_7_obj: ButtonObj
- button_8_obj: ButtonObj
- button_9_obj: ButtonObj
- button_4_obj: ButtonObj
- button_5_obj: ButtonObj
- button_6_obj: ButtonObj
- button_1_obj: ButtonObj
- button_2_obj: ButtonObj
- button_3_obj: ButtonObj
- button_0_obj: ButtonObj
- button_00_obj: ButtonObj
- button_add_obj: ButtonObj
- button_sub_obj: ButtonObj
- button_mul_obj: ButtonObj
- button_div_obj: ButtonObj
- button_eq_obj: ButtonObj
- button_7 = Button("Button 7", button_7_obj)
- button_8 = Button("Button 8", button_8_obj)
- button_9 = Button("Button 9", button_9_obj)
- button_4 = Button("Button 4", button_4_obj)
- button_5 = Button("Button 5", button_5_obj)
- button_6 = Button("Button 6", button_6_obj)
- button_1 = Button("Button 1", button_1_obj)
- button_2 = Button("Button 2", button_2_obj)
- button_3 = Button("Button 3", button_3_obj)
- button_0 = Button("Button 0", button_0_obj)
- button_00 = Button("Button 00", button_00_obj)
- button_add = Button("Button +", button_add_obj)
- button_sub = Button("Button -", button_sub_obj)
- button_mul = Button("Button *", button_mul_obj)
- button_div = Button("Button /", button_div_obj)
- button_eq = Button("Button =", button_eq_obj)
- main.addChild(vbox)
- vbox.addChild(result)
- vbox.addChild(buttons)
- vbox.setChildAnchor(0.5, 0.5, 0.5, 0.5)
- vbox.setSizeAnchor(1, 1)
- buttons.setRow(4)
- buttons.addChild(button_7)
- button_7.text = "7"
- button_7.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "7"
- else:
- second &= "7"
- buttons.addChild(button_8)
- button_8.text = "8"
- button_8.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "8"
- else:
- second &= "8"
- buttons.addChild(button_9)
- button_9.text = "9"
- button_9.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "9"
- else:
- second &= "9"
- buttons.addChild(button_add)
- button_add.text = "+"
- button_add.on_click =
- proc(x, y: float) =
- sign = "+"
- buttons.addChild(button_4)
- button_4.text = "4"
- button_4.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "4"
- else:
- second &= "4"
- buttons.addChild(button_5)
- button_5.text = "5"
- button_5.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "5"
- else:
- second &= "5"
- buttons.addChild(button_6)
- button_6.text = "6"
- button_6.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "6"
- else:
- second &= "6"
- buttons.addChild(button_sub)
- button_sub.text = "-"
- button_sub.on_click =
- proc(x, y: float) =
- sign = "-"
- buttons.addChild(button_1)
- button_1.text = "1"
- button_1.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "1"
- else:
- second &= "1"
- buttons.addChild(button_2)
- button_2.text = "2"
- button_2.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "2"
- else:
- second &= "2"
- buttons.addChild(button_3)
- button_3.text = "3"
- button_3.on_click =
- proc(x, y: float) =
- if sign == "":
- first &= "3"
- else:
- second &= "3"
- buttons.addChild(button_mul)
- button_mul.text = "*"
- button_mul.on_click =
- proc(x, y: float) =
- sign = "*"
- buttons.addChild(button_0)
- button_0.text = "0"
- button_0.on_click =
- proc(x, y: float) =
- if sign == "" and first != "":
- first &= "0"
- elif sign != "/":
- second &= "0"
- buttons.addChild(button_00)
- button_00.text = "00"
- button_00.on_click =
- proc(x, y: float) =
- if sign == "" and first != "":
- first &= "00"
- elif second != "":
- second &= "00"
- buttons.addChild(button_div)
- button_div.text = "/"
- button_div.on_click =
- proc(x, y: float) =
- sign = "/"
- buttons.addChild(button_eq)
- button_eq.text = "="
- button_eq.on_click =
- proc(x, y: float) =
- first =
- if sign == "+":
- $(parseFloat(first) + parseFloat(second))
- elif sign == "-":
- $(parseFloat(first) - parseFloat(second))
- elif sign == "*":
- $(parseFloat(first) * parseFloat(second))
- elif sign == "/":
- $(parseFloat(first) / parseFloat(second))
- else:
- first
- if sign != "":
- second = ""
- sign = ""
- result.setTextAlign(1, 0, 1, 0)
- result.resize(160, 32)
- result.process =
- proc() =
- if sign == "":
- result.text = first
- elif second == "":
- result.text = first & " " & sign
- else:
- result.text = first & " " & sign & " " & second
- addScene(main)
- setMainScene("Main")
- windowLaunch()
|