/* * @file ViewWindow.hpp * @author Robert Borzecki (robert.borzecki@mudita.com) * @date 2 lip 2019 * @brief * @copyright Copyright (C) 2019 mudita.com * @details */ #ifndef MODULE_APPS_APPLICATION_VIEWER_WINDOWS_VIEWWINDOW_HPP_ #define MODULE_APPS_APPLICATION_VIEWER_WINDOWS_VIEWWINDOW_HPP_ #include #include "AppWindow.hpp" #include "widgets/Image.hpp" #include "InputEvent.hpp" namespace gui { class ViewerState { public: std::string stateName; std::string screenName; bool deepRefresh = false; uint32_t id = 0; std::map buttons; ViewerState(std::string stateName, std::string screenName, bool deep, uint32_t id, std::map buttons) : stateName{stateName}, screenName{screenName}, deepRefresh{deep}, id{id}, buttons{buttons} {}; }; /* * */ class ViewWindow : public AppWindow { uint32_t currentState = 0; std::vector images; std::vector states; int convertKeyCode(std::string); std::map buttonKeyCodes = { {"KEY_UNDEFINED", static_cast(KeyCode::KEY_UNDEFINED)}, {"KEY_LEFT", static_cast(KeyCode::KEY_LEFT)}, {"KEY_UP", static_cast(KeyCode::KEY_UP)}, {"KEY_RIGHT", static_cast(KeyCode::KEY_RIGHT)}, {"KEY_DOWN", static_cast(KeyCode::KEY_DOWN)}, {"KEY_LF", static_cast(KeyCode::KEY_LF)}, {"KEY_RF", static_cast(KeyCode::KEY_RF)}, {"KEY_ENTER", static_cast(KeyCode::KEY_ENTER)}, {"KEY_0", static_cast(KeyCode::KEY_0)}, {"KEY_1", static_cast(KeyCode::KEY_1)}, {"KEY_2", static_cast(KeyCode::KEY_2)}, {"KEY_3", static_cast(KeyCode::KEY_3)}, {"KEY_4", static_cast(KeyCode::KEY_4)}, {"KEY_5", static_cast(KeyCode::KEY_5)}, {"KEY_6", static_cast(KeyCode::KEY_6)}, {"KEY_7", static_cast(KeyCode::KEY_7)}, {"KEY_8", static_cast(KeyCode::KEY_8)}, {"KEY_9", static_cast(KeyCode::KEY_9)}, {"KEY_AST", static_cast(KeyCode::KEY_AST)}, {"KEY_PND", static_cast(KeyCode::KEY_PND)}, {"KEY_VOLUP", static_cast(KeyCode::KEY_VOLUP)}, {"KEY_VOLDN", static_cast(KeyCode::KEY_VOLDN)}, {"KEY_TORCH", static_cast(KeyCode::KEY_TORCH)}, {"SWITCH_UP", static_cast(KeyCode::SWITCH_UP)}, {"SWITCH_MID", static_cast(KeyCode::SWITCH_MID)}, {"SWITCH_DN", static_cast(KeyCode::SWITCH_DN)}, }; public: ViewWindow(app::Application *app); virtual ~ViewWindow(); void onBeforeShow(ShowMode mode, SwitchData *data) override; bool onInput(const InputEvent &inputEvent) override; void rebuild() override; void buildInterface() override; void destroyInterface() override; }; } /* namespace gui */ #endif /* MODULE_APPS_APPLICATION_VIEWER_WINDOWS_VIEWWINDOW_HPP_ */