46 lines
814 B
C++
46 lines
814 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <optional>
|
|
#include <tuple>
|
|
|
|
#include "config.hpp"
|
|
|
|
namespace uui
|
|
{
|
|
struct Style
|
|
{
|
|
enum Position
|
|
{
|
|
RELATIVE,
|
|
ABSOLUTE
|
|
};
|
|
enum Alignment
|
|
{
|
|
START,
|
|
CENTER,
|
|
END
|
|
};
|
|
struct AbsolutePostion
|
|
{
|
|
std::optional<position_t> left;
|
|
std::optional<position_t> right;
|
|
std::optional<position_t> top;
|
|
std::optional<position_t> bottom;
|
|
};
|
|
|
|
// Layout
|
|
Position position;
|
|
Alignment horizontal_alignment;
|
|
Alignment vertical_alignment;
|
|
std::optional<uui::size_t> width;
|
|
std::optional<uui::size_t> height;
|
|
std::optional<uui::size_t> margin;
|
|
std::optional<uui::size_t> padding;
|
|
// For absolute positioning
|
|
std::unique_ptr<AbsolutePostion> absolute_position;
|
|
|
|
// Color
|
|
std::optional<std::tuple<float, float, float, float>> background_color;
|
|
};
|
|
} // namespace uui
|