#pragma once #include #include #include #include "UIWidget.h" #include "../model/AppContext.h" #include "common/Widget.h" class Device final : public UIWidget { public: explicit Device(void* appstate); void render() const override; void hit_test(SDL_MouseMotionEvent* event) const; void onButtonClicked(uint8_t button) const; private: void draw_background() const; void draw_screen() const; void draw_text() const; void render_u8g2() const; void setScreen(const std::shared_ptr& screen); void pushScreen(const std::shared_ptr& screen); void popScreen(); static void pushKey(SDL_Keycode key); std::vector> m_children{}; std::shared_ptr widget; std::vector> history; };