Files
Seele/src/Engine/UI/Style/Style.h
T
2025-01-12 11:26:52 +01:00

62 lines
1.4 KiB
C++

#pragma once
#include "Math/Vector.h"
#include "Asset/FontAsset.h"
#include "MinimalEngine.h"
namespace Seele {
namespace UI {
enum class DimensionType {
Pixel,
Percent, // EM, PEM, etc...
Auto,
};
enum class PositionType {
Static,
Relative,
Absolute,
Sticky,
};
enum class OuterDisplayType {
Inline,
Block,
Hidden,
};
enum class InnerDisplayType {
Flow,
Flex,
Grid,
};
struct Style {
DimensionType widthType = DimensionType::Auto;
float width = 0;
DimensionType maxWidthType = DimensionType::Auto;
float maxWidth = 0;
DimensionType heightType = DimensionType::Auto;
float height = 0;
DimensionType maxHeightType = DimensionType::Auto;
float maxHeight = 0;
uint32 z = 0;
Vector backgroundColor = Vector(1, 1, 1);
OuterDisplayType outerDisplay = OuterDisplayType::Inline;
InnerDisplayType innerDisplay = InnerDisplayType::Flow;
PositionType position = PositionType::Relative;
PFontAsset fontFamily;
uint32 lineHeight = 48;
uint32 fontSize = 48;
uint32 fontWeight = 0;
uint32 paddingTop = 0;
uint32 paddingBottom = 0;
uint32 paddingLeft = 0;
uint32 paddingRight = 0;
uint32 marginTop = 0;
uint32 marginBottom = 0;
uint32 marginLeft = 0;
uint32 marginRight = 0;
uint32 gap = 0;
uint32 top = 0;
uint32 bottom = 0;
uint32 left = 0;
uint32 right = 0;
};
} // namespace UI
} // namespace Seele