#pragma once #include #include "ScenarioComponent.hpp" namespace Hardware { struct EventWidget final : ScenarioComponentSpec< Scenario::EventModel, bugui::container_widget> , Nano::Observer { explicit EventWidget(Scenario::EventModel& event, ScenarioWidget* scenario, bugui::container_widget* parent); int y() const override { return m_y; } int get_absolute_y() { return m_absolute_y; }; int height() const override { return m_height; } void set_y(); void set_span_recursive(); private: void on_state_added(Scenario::StateModel& state); void on_state_removed(const Scenario::StateModel& state); bool contains(int px, int py) const override; void paint(bugui::painter& painter) const override; void on_press(int x, int y, bool pressed) override; bool press{false}; int m_absolute_y{0}; int m_y{0}; int m_height{0}; }; } //namespace Hardware