← Каталог
SmallDesktop на Morphic — практикум — 6.2. Обработка кнопок
Фрагмент из «SmallDesktop на Morphic — практикум»: 6.2. Обработка кнопок.
calcButtonPressed: aButton
| label |
label := aButton getProperty: #calcLabel.
(label size = 1 and: [ label first isDigit ]) ifTrue: [
calculator digit: label first ].
label = '.' ifTrue: [ calculator decimalPoint ].
label = '±' ifTrue: [ calculator toggleSign ].
label = 'C' ifTrue: [ calculator clear ].
label = '=' ifTrue: [ calculator equals ].
label = '+' ifTrue: [ calculator operator: #+ ].
label = '-' ifTrue: [ calculator operator: #- ].
label = '*' ifTrue: [ calculator operator: #* ].
label = '/' ifTrue: [ calculator operator: #/ ].
self refreshCalculatorDisplay
refreshCalculatorDisplay
calculatorPanel submorphsDo: [ :each |
(each hasProperty: #calcDisplay) ifTrue: [
each contents: calculator displayText ] ] calcButtonPressed: aButton
| label |
label := aButton getProperty: #calcLabel.
(label size = 1 and: [ label first isDigit ]) ifTrue: [
calculator digit: label first ].
label = '.' ifTrue: [ calculator decimalPoint ].
label = '±' ifTrue: [ calculator toggleSign ].
label = 'C' ifTrue: [ calculator clear ].
label = '=' ifTrue: [ calculator equals ].
label = '+' ifTrue: [ calculator operator: #+ ].
label = '-' ifTrue: [ calculator operator: #- ].
label = '*' ifTrue: [ calculator operator: #* ].
label = '/' ifTrue: [ calculator operator: #/ ].
self refreshCalculatorDisplay
refreshCalculatorDisplay
calculatorPanel submorphsDo: [ :each |
(each hasProperty: #calcDisplay) ifTrue: [
each contents: calculator displayText ] ]