#pragma once #include "lumacs/ui_interface.hpp" #include namespace lumacs { /// @brief Message severity levels for different types of feedback enum class MessageSeverity { Info, ///< Normal informational message (3-second timeout) Warning, ///< Warning message (5-second timeout, yellow) Error, ///< Error message (no auto-clear, red) Debug ///< Debug message (logged only, not displayed) }; /// @brief Interface for components that need to notify the editor of events or messages. class IEditorNotifier { public: virtual ~IEditorNotifier() = default; /// @brief Emit a system-wide editor event. /// @param event The event to broadcast. virtual void emit_event(EditorEvent event) = 0; /// @brief Display a message to the user. /// @param message The message string. /// @param severity The severity level (default: Info). virtual void set_message(std::string message, MessageSeverity severity = MessageSeverity::Info) = 0; }; } // namespace lumacs