first of all..... a few of your "dialog events" were wrong:
on *:dialog:name:init:0 {
not :init:*:{
same for :close:
also, you can make it was smaller in a few places:
on 1:dialog:calculator:close:0 {
unset %calc_active
unset %decimal
unset %equal
unset %add
unset %subtract
unset %multiply
unset %divide
unset %clear_entry
unset %all_clear
unset %memory_add
unset %memory_sub
unset %memory_recall
unset %memory_clear
unset %sign
unset %last_function
unset %enter_again
}
Can Become:
on 1:dialog:calculator:close:0 {
unset %calc_active %decimal %equal %add %subtract %multiply %divide %clear_entry %all_clear %memory* %sign %last_function %enter_again
}
And yet, and even better way to do it, would be to defina all your variable with a certain prefix:
%Calculator.add
%calculator.subtract
%calculator.devide
%calculator.clear_entry
%calculator.etc
so then you can turn a long code, into a simple one:
on 1:dialog:calculator:close:0 {
unset %calculator.*
}
also, a few places you have... for example:
did -r blah blah1
did -r blah blah2
you can simplify this by doing:
did -r blah blah1,blah2,blah3,etc
also an error with MR:
if i do 666 + "MR" it doesnt allow it, and resets the + param, thus MR is my new and only param.... uif you understand what i mean....just thought i'd take a look at it and see if i can give ya more work