1 | Function.prototype.bind = function() {
|
---|
2 | var func = this;
|
---|
3 | var thisObject = arguments[0];
|
---|
4 | var args = Array.prototype.slice.call(arguments, 1);
|
---|
5 | return function() {
|
---|
6 | return func.apply(thisObject, args);
|
---|
7 | }
|
---|
8 | }
|
---|
9 |
|
---|
10 | //! [0]
|
---|
11 | function Calculator(ui)
|
---|
12 | {
|
---|
13 | this.ui = ui;
|
---|
14 |
|
---|
15 | this.pendingAdditiveOperator = Calculator.NO_OPERATOR;
|
---|
16 | this.pendingMultiplicativeOperator = Calculator.NO_OPERATOR;
|
---|
17 | this.sumInMemory = 0;
|
---|
18 | this.sumSoFar = 0;
|
---|
19 | this.factorSoFar = 0;
|
---|
20 | this.waitingForOperand = true;
|
---|
21 |
|
---|
22 | with (ui) {
|
---|
23 | display.text = "0";
|
---|
24 |
|
---|
25 | zeroButton.clicked.connect(this.digitClicked.bind(this, 0));
|
---|
26 | oneButton.clicked.connect(this.digitClicked.bind(this, 1));
|
---|
27 | twoButton.clicked.connect(this.digitClicked.bind(this, 2));
|
---|
28 | threeButton.clicked.connect(this.digitClicked.bind(this, 3));
|
---|
29 | fourButton.clicked.connect(this.digitClicked.bind(this, 4));
|
---|
30 | fiveButton.clicked.connect(this.digitClicked.bind(this, 5));
|
---|
31 | sixButton.clicked.connect(this.digitClicked.bind(this, 6));
|
---|
32 | sevenButton.clicked.connect(this.digitClicked.bind(this, 7));
|
---|
33 | eightButton.clicked.connect(this.digitClicked.bind(this, 8));
|
---|
34 | nineButton.clicked.connect(this.digitClicked.bind(this, 9));
|
---|
35 |
|
---|
36 | pointButton.clicked.connect(this, "pointClicked");
|
---|
37 | changeSignButton.clicked.connect(this, "changeSignClicked");
|
---|
38 |
|
---|
39 | backspaceButton.clicked.connect(this, "backspaceClicked");
|
---|
40 | clearButton.clicked.connect(this, "clear");
|
---|
|
---|