import calculator_logic
+# Show debug output?
+fun debug: Bool do return false
+
redef class App
redef fun on_create
do
+ if debug then print "App::on_create"
+
# Create the main window
window = new CalculatorWindow
super
init
do
+ if debug then print "CalculatorWindow::init"
+
# All the button labels, row by row
var rows = [["7", "8", "9", "+"],
["4", "5", "6", "-"],
redef fun on_event(event)
do
+ if debug then print "CalculatorWindow::on_event {event}"
+
if event isa ButtonPressEvent then
var op = event.sender.text
redef fun on_save_state
do
- app.data_store["context"] = context.to_json
+ if debug then print "CalculatorWindow::on_save_state"
+
+ app.data_store["context"] = context
super
end
redef fun on_restore_state
do
+ if debug then print "CalculatorWindow::on_restore_state"
+
super
- var save = app.data_store["context"]
- if save == null then return
- assert save isa String
+ var context = app.data_store["context"]
+ if not context isa CalculatorContext then return
- self.context = new CalculatorContext.from_json(save)
+ self.context = context
display.text = context.display_text
end
end