#ifndef BWIDGETS_FOCUS_HANDLER_HPP #define BWIDGETS_FOCUS_HANDLER_HPP struct SDL_Rect; namespace bwidgets { class FocusHandler { protected: const SDL_Rect* _focus_area = nullptr; bool _has_focus = false; virtual void _handle_focus_change(bool) = 0; public: virtual ~FocusHandler() = default; virtual inline void focus(bool focus) final { _handle_focus_change(focus); _has_focus = focus; } }; } #endif