#pragma once #include "cru/base/Event.h" #include "cru/ui/components/Component.h" namespace cru::theme_builder::components { class Editor : public ui::components::Component { public: Editor() = default; ~Editor() override = default; public: IEvent* ChangeEvent() { return &change_event_; } protected: void RaiseChangeEvent(); void SuppressNextChangeEvent(); void ConnectChangeEvent(IEvent* event); void ConnectChangeEvent(Editor* editor); void ConnectChangeEvent(Editor& editor) { ConnectChangeEvent(&editor); } private: bool suppress_next_change_event_ = false; Event change_event_; }; } // namespace cru::theme_builder::components