From: Alexis Laferrière Date: Wed, 11 May 2016 16:00:34 +0000 (-0400) Subject: calculator: add scientific variation to the portable app X-Git-Url: http://nitlanguage.org calculator: add scientific variation to the portable app Signed-off-by: Alexis Laferrière --- diff --git a/examples/calculator/Makefile b/examples/calculator/Makefile index c97809c..a2842da 100644 --- a/examples/calculator/Makefile +++ b/examples/calculator/Makefile @@ -7,6 +7,10 @@ bin/calculator: $(shell ${NITLS} -M src/calculator.nit linux) ${NITC} mkdir -p bin ${NITC} -o $@ src/calculator.nit -m linux +bin/scientific_calculator: $(shell ${NITLS} -M src/scientific_calculator.nit linux) ${NITC} + mkdir -p bin + ${NITC} -o $@ src/scientific_calculator.nit -m linux + # --- # Android diff --git a/examples/calculator/src/calculator.nit b/examples/calculator/src/calculator.nit index c049d21..4068f34 100644 --- a/examples/calculator/src/calculator.nit +++ b/examples/calculator/src/calculator.nit @@ -51,13 +51,13 @@ class CalculatorWindow private var context = new CalculatorContext # Main window layout - private var layout = new VerticalLayout(parent=self) + var layout = new VerticalLayout(parent=self) # Main display, at the top of the screen private var display = new TextInput(parent=layout) # Maps operators as `String` to their `Button` - private var buttons = new HashMap[String, Button] + var buttons = new HashMap[String, Button] init do diff --git a/examples/calculator/src/scientific_calculator.nit b/examples/calculator/src/scientific_calculator.nit new file mode 100644 index 0000000..c22e44e --- /dev/null +++ b/examples/calculator/src/scientific_calculator.nit @@ -0,0 +1,40 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Extends the portable calculator app with scientific operations +module scientific_calculator + +import calculator + +redef class CalculatorWindow + init + do + # All the button labels, row by row + var rows = [["√", "x²", "xⁿ", "e" ], + ["log","ln", "%", "x!" ], + ["π", "sin","cos","tan"]] + + for row in rows do + var row_layout = new HorizontalLayout(parent=layout) + + for op in row do + var but = new Button(parent=row_layout, text=op) + but.observers.add self + buttons[op] = but + end + end + + super + end +end