#pragma once #include #include namespace Hardware { class ScenarioWidget final : public bugui::container_widget , public Nano::Observer { public: explicit ScenarioWidget(Scenario::ProcessModel* scenario, bugui::container_widget* parent); int x() const override { return bugui::base_widget::parent->x(); } int y() const override { return bugui::base_widget::parent->y(); } int width() const override { return std::numeric_limits::max(); } int height() const override { return 15; } Scenario::ProcessModel* get_model() const { return model; } private: void on_interval_added(Scenario::IntervalModel& interval); void on_interval_removed(const Scenario::IntervalModel& interval); void on_time_sync_added(Scenario::TimeSyncModel& timeSync); void on_time_sync_removed(const Scenario::TimeSyncModel& timeSync); Scenario::ProcessModel* model{nullptr}; const Process::Style& skin; }; } // namespace Hardware