Public feed #888854

Calculator 2 ;o

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

;Load Dialog
alias calcu dialog -m calc calc

;About
dialog aboutboxcalc {
  title "Calculator - About"
  size -1 -1 126 47
  option dbu
  text "Calculator dialog box by Panda200x", 1, 5 5 116 8
  button "Ok", 3, 4 26 37 12, ok cancel
  link "irc://irc.swiftirc.net/panda200x", 4, 5 16 116 8
}

;The Dialog
dialog calc {
  title "Calculator"
  size -1 -1 189 191
  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 170 37 12
  button ")", 28, 98 150 37 12
  button "(", 29, 54 150 37 12
  button "^(", 30, 141 150 37 12
  button "About", 31, 11 170 37 12
  button "OK", 32, 98 170 37 12, ok cancel
}


;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: {
  set %l $did(calc,3).text
  if ($did(calc,3).text,1) == -) { 
    var %x = $did(calc,3).text
    did -r calc 3
    did -a calc 3 $right(%x,$len($calc(%x - 1))) 
    unset %l
  } 
  elseif ($did(calc,3).text,1) != -) { 
    var %x = $did(calc,3).text
    did -r calc 3
    did -a calc 3 - $+ %x
    unset %l 
  }
}
on *:dialog:calc:sclick:16:did -a calc 3 .
on *:dialog:calc:sclick:30:did -a calc 3 ^(
on *:dialog:calc:sclick:31:dialog -m aboutbox aboutboxcalc

;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 }