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

32 lines
1.1 KiB
C++

#ifndef BWIDGETS_FONT_HANDLER_IMPL_HPP
#define BWIDGETS_FONT_HANDLER_IMPL_HPP
#include <basic_widgets/w/feat/font_handler.hpp>
namespace bwidgets
{
class FontHandlerImpl : public virtual FontHandler
{
public:
[[nodiscard]] auto font() const -> const std::shared_ptr<Font>& override;
void font(std::shared_ptr<Font>) override;
[[nodiscard]] auto font_color_bg() const -> const Color& override;
void font_color_bg(const Color&) override;
[[nodiscard]] auto font_color_fg() const -> const Color& override;
void font_color_fg(const Color&) override;
protected:
// Called on font changes.
virtual void _handle_font_change(const std::shared_ptr<Font>&) = 0;
// Called on font color changes.
virtual void _handle_font_color_change(const Color&, const Color&) = 0;
private:
std::shared_ptr<Font> _font;
Color _font_color_bg = default_font_color_bg;
Color _font_color_fg = default_font_color_fg;
};
}
#endif