Public feed #887885

Calculator 2

public text v1 · immutable
Raw Edit
·published 2008-02-01 18:05 UTC
rendered paste body
;Calculator Dialog - By Panda200x

;Load Dialog
alias calcu dialog -m calc calc

;The Dialog
dialog calc {
  title "Calculator"
  size -1 -1 189 172
  option dbu
  button "MRC", 1, 10 30 37 12
  button "AC", 2, 142 30 37 12
  edit "", 3, 10 7 170 19, multi
  button "M+", 4, 54 30 37 12
  button "M-", 5, 98 30 37 12
  button "7", 6, 10 50 37 12
  button "4", 7, 10 70 37 12
  button "6", 8, 98 70 37 12
  button "9", 9, 98 50 37 12
  button "8", 10, 54 50 37 12
  button "5", 11, 54 70 37 12
  button "1", 12, 10 90 37 12
  button "3", 13, 98 90 37 12
  button "2", 14, 54 90 37 12
  button "0", 15, 10 110 37 12
  button ".", 16, 98 110 37 12
  button "+/-", 17, 54 110 37 12
  button "/", 18, 142 50 37 12
  button "*", 19, 142 70 37 12
  button "Pi", 20, 10 130 37 12
  button "+", 21, 142 90 37 12
  button "-", 22, 142 110 37 12
  button "Sin", 23, 54 130 37 12
  button "Tan", 24, 141 130 37 12
  button "Cos", 25, 98 130 37 12
  button "Log", 26, 10 150 37 12
  button "=", 27, 141 150 37 12
  button ")", 28, 98 150 37 12
  button "(", 29, 54 150 37 12
}

;Calculator Alias
alias calcul {
  var %method = $replace($1-,pi,$pi)
  var %method = $($replace(%method,sin $+ $chr(40),$chr(32) $+ $chr(36) $+ sin $+ $chr(40)),2)
  var %method = $($replace(%method,cos $+ $chr(40),$chr(32) $+ $chr(36) $+ cos $+ $chr(40)),2)
  var %method = $($replace(%method,tan $+ $chr(40),$chr(32) $+ $chr(36) $+ tan $+ $chr(40)),2)
  var %method = $($replace(%method,log $+ $chr(40),$chr(32) $+ $chr(36) $+ log $+ $chr(40)),2)
  return $calc(%method)
}

;All The /did -a
on *:dialog:calc:sclick:12:did -a calc 3 1
on *:dialog:calc:sclick:14:did -a calc 3 2
on *:dialog:calc:sclick:13:did -a calc 3 3
on *:dialog:calc:sclick:7:did -a calc 3 4
on *:dialog:calc:sclick:11:did -a calc 3 5
on *:dialog:calc:sclick:8:did -a calc 3 6
on *:dialog:calc:sclick:7:did -a calc 3 6
on *:dialog:calc:sclick:10:did -a calc 3 8
on *:dialog:calc:sclick:9:did -a calc 3 9
on *:dialog:calc:sclick:15:did -a calc 3 0
on *:dialog:calc:sclick:20:did -a calc 3 pi
on *:dialog:calc:sclick:23:did -a calc 3 sin(
on *:dialog:calc:sclick:24:did -a calc 3 tan(
on *:dialog:calc:sclick:25:did -a calc 3 cos(
on *:dialog:calc:sclick:26:did -a calc 3 log(
on *:dialog:calc:sclick:28:did -a calc 3 )
on *:dialog:calc:sclick:29:did -a calc 3 (
on *:dialog:calc:sclick:27:var %x = $calcul($did(calc,3).text) | did -r calc 3 | did -a calc 3 %x
on *:dialog:calc:sclick:18:did -a calc 3 /
on *:dialog:calc:sclick:19:did -a calc 3 *
on *:dialog:calc:sclick:21:did -a calc 3 +
on *:dialog:calc:sclick:22:did -a calc 3 -
on *:dialog:calc:sclick:17:did -r calc 3 | if ($left($did(calc,3).text,1) == -) { did -a calc 3 $right($did(calc,3).text,$len($calc($did(calc,3).text - 1))) } | elseif ($left($did(calc,3).text) != -) { did -a calc 3 + $+ $did(calc,3).text }
on *:dialog:calc:sclick:16:did -a calc 3 .

;Memory Recall
on *:dialog:calc:sclick:2:did -r calc 3
on *:dialog:calc:sclick:4:set %mem $did(calc,3).text
on *:dialog:calc:sclick:5:unset %mem
on *:dialog:calc:sclick:1:if (%mem) { did -r calc 3 | did -a calc 3 %mem }