bwidgets/inc/basic_widgets/w/feat/focus_handler.hpp

28 lines
573 B
C++
Raw Normal View History

#ifndef BWIDGETS_FOCUS_HANDLER_HPP_
#define BWIDGETS_FOCUS_HANDLER_HPP_
struct SDL_Rect;
namespace bwidgets::widget
{
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