bwidgets/inc/basic_widgets/w/caption.hpp

39 lines
1.1 KiB
C++
Raw Normal View History

2021-08-06 14:22:56 +02:00
#ifndef BWIDGETS_CAPTION_HPP
#define BWIDGETS_CAPTION_HPP
2021-08-17 11:00:18 +02:00
#include <basic_widgets/w/base/widget.hpp>
#include <basic_widgets/w/feat/font_handler.hpp>
#include <basic_widgets/w/feat/texture_handler.hpp>
struct SDL_Surface;
2021-08-06 14:22:56 +02:00
namespace bwidgets
{
2021-08-17 11:00:18 +02:00
class Caption : public virtual Widget,
public virtual FontHandler,
public virtual TextureHandler
{
public:
enum struct Alignment
{
CENTER,
LEFT,
RIGHT
};
2021-08-06 14:22:56 +02:00
inline static const Color default_color_bg = {255, 255, 255, SDL_ALPHA_OPAQUE};
inline static const Color default_color_fg = {0, 0, 0, SDL_ALPHA_OPAQUE};
2021-08-08 14:30:56 +02:00
inline static const Size default_margins = {3, 3};
2021-08-06 14:22:56 +02:00
Alignment alignment {Alignment::LEFT};
2021-08-17 11:00:18 +02:00
Size margins {default_margins};
2021-08-17 11:00:18 +02:00
using Widget::Widget;
2021-08-17 11:00:18 +02:00
virtual void render_mode(Font::RenderMode) = 0;
[[nodiscard]] virtual auto text() const noexcept -> const std::string& = 0;
virtual void text(const std::string&) = 0;
};
}
#endif