// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "windows/AppWindow.hpp" #include "Application.hpp" #include "application-calculator/widgets/MathOperationsBox.hpp" #include #include namespace gui { class CalculatorMainWindow : public gui::AppWindow { gui::Text *mathOperationInput = nullptr; gui::MathOperationsBox *mathBox = nullptr; bool clearInput = false; void writeEquation(bool lastCharIsSymbol, const UTF8 &symbol); void applyInputCallback(); bool isPreviousNumberDecimal(); bool isSymbol(uint32_t character); bool isDecimalSeparator(uint32_t character); uint32_t getPenultimate(); public: CalculatorMainWindow(app::Application *app, std::string name); ~CalculatorMainWindow() override = default; void buildInterface() override; bool onInput(const gui::InputEvent &inputEvent) override; }; } // namespace gui