bwidgets/inc/basic_widgets/w/base/theme.hpp
Andrea Blankenstijn 6149c48664 default fonts in theme, custom with FontHandler.
fix input highlight.
render multiline text.
remove default theme singleton.
scrollable area texture alignment.
2022-02-01 19:14:51 +01:00

57 lines
2.4 KiB
C++

#ifndef BWIDGETS_THEME_HPP
#define BWIDGETS_THEME_HPP
#include <basic_widgets/core/font.hpp>
#include <basic_widgets/core/type/color.hpp>
#include <basic_widgets/core/type/size.hpp>
namespace bwidgets
{
class Theme
{
public:
enum class FontEnum
{
MONO,
MONO_BIG,
MONO_BIGGER,
MONO_BIGGEST,
MONO_SMALL,
MONO_SMALLER,
MONO_SMALLEST
};
virtual ~Theme() = default;
[[nodiscard]] virtual auto color_font_bg() const -> const Color& = 0;
[[nodiscard]] virtual auto color_font_fg() const -> const Color& = 0;
[[nodiscard]] virtual auto color_input_bg() const -> const Color& = 0;
[[nodiscard]] virtual auto color_input_bg_active() const -> const Color& = 0;
[[nodiscard]] virtual auto color_input_fg() const -> const Color& = 0;
[[nodiscard]] virtual auto color_widget_bg() const -> const Color& = 0;
[[nodiscard]] virtual auto color_widget_bg_dark() const -> const Color& = 0;
[[nodiscard]] virtual auto color_widget_bg_hl() const -> const Color& = 0;
[[nodiscard]] virtual auto color_widget_border() const -> const Color& = 0;
[[nodiscard]] virtual auto color_widget_border_pushed() const
-> const Color& = 0;
[[nodiscard]] virtual auto font(FontEnum) -> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto font_default() -> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto font_default_big()
-> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto font_default_bigger()
-> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto font_default_biggest()
-> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto font_default_small()
-> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto font_default_smaller()
-> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto font_default_smallest()
-> const std::shared_ptr<Font>& = 0;
[[nodiscard]] virtual auto size_layout_margin() const -> const Size& = 0;
[[nodiscard]] virtual auto size_widget_border() const -> int = 0;
};
}
#endif