i_editor_notifier.hpp 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "lumacs/ui_interface.hpp"
  3. #include <string>
  4. namespace lumacs {
  5. /// @brief Message severity levels for different types of feedback
  6. enum class MessageSeverity {
  7. Info, ///< Normal informational message (3-second timeout)
  8. Warning, ///< Warning message (5-second timeout, yellow)
  9. Error, ///< Error message (no auto-clear, red)
  10. Debug ///< Debug message (logged only, not displayed)
  11. };
  12. /// @brief Interface for components that need to notify the editor of events or messages.
  13. class IEditorNotifier {
  14. public:
  15. virtual ~IEditorNotifier() = default;
  16. /// @brief Emit a system-wide editor event.
  17. /// @param event The event to broadcast.
  18. virtual void emit_event(EditorEvent event) = 0;
  19. /// @brief Display a message to the user.
  20. /// @param message The message string.
  21. /// @param severity The severity level (default: Info).
  22. virtual void set_message(std::string message, MessageSeverity severity = MessageSeverity::Info) = 0;
  23. };
  24. } // namespace lumacs