mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 11:45:11 +00:00
LibHTML: Add Length and LengthBox classes.
We need a way to represent values that are "auto", so adding a Length class seems like the easiest way to achieve that.
This commit is contained in:
parent
a190f67450
commit
33ac0de988
4 changed files with 49 additions and 18 deletions
26
LibHTML/CSS/Length.h
Normal file
26
LibHTML/CSS/Length.h
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
class Length {
|
||||||
|
public:
|
||||||
|
enum class Type {
|
||||||
|
Auto,
|
||||||
|
Absolute,
|
||||||
|
};
|
||||||
|
|
||||||
|
Length() {}
|
||||||
|
Length(int value, Type type)
|
||||||
|
: m_type(type)
|
||||||
|
, m_value(value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
~Length() {}
|
||||||
|
|
||||||
|
bool is_auto() const { return m_type == Type::Auto; }
|
||||||
|
bool is_absolute() const { return m_type == Type::Absolute; }
|
||||||
|
|
||||||
|
int value() const { return m_value; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Type m_type { Type::Auto };
|
||||||
|
int m_value { 0 };
|
||||||
|
};
|
10
LibHTML/CSS/LengthBox.h
Normal file
10
LibHTML/CSS/LengthBox.h
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <LibHTML/CSS/Length.h>
|
||||||
|
|
||||||
|
struct LengthBox {
|
||||||
|
Length top;
|
||||||
|
Length right;
|
||||||
|
Length bottom;
|
||||||
|
Length left;
|
||||||
|
};
|
|
@ -21,10 +21,8 @@ void LayoutBlock::layout()
|
||||||
|
|
||||||
void LayoutBlock::compute_width()
|
void LayoutBlock::compute_width()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LayoutBlock::compute_height()
|
void LayoutBlock::compute_height()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,9 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <LibHTML/CSS/LengthBox.h>
|
||||||
#include <SharedGraphics/Color.h>
|
#include <SharedGraphics/Color.h>
|
||||||
#include <SharedGraphics/Size.h>
|
#include <SharedGraphics/Size.h>
|
||||||
|
|
||||||
struct Box {
|
|
||||||
int top { 0 };
|
|
||||||
int right { 0 };
|
|
||||||
int bottom { 0 };
|
|
||||||
int left { 0 };
|
|
||||||
};
|
|
||||||
|
|
||||||
enum FontStyle {
|
enum FontStyle {
|
||||||
Normal,
|
Normal,
|
||||||
Bold,
|
Bold,
|
||||||
|
@ -23,13 +17,15 @@ public:
|
||||||
Color text_color() const { return m_text_color; }
|
Color text_color() const { return m_text_color; }
|
||||||
Color background_color() const { return m_background_color; }
|
Color background_color() const { return m_background_color; }
|
||||||
|
|
||||||
Box& offset() { return m_offset; }
|
LengthBox& offset() { return m_offset; }
|
||||||
Box& margin() { return m_margin; }
|
LengthBox& margin() { return m_margin; }
|
||||||
Box& padding() { return m_padding; }
|
LengthBox& padding() { return m_padding; }
|
||||||
|
LengthBox& border() { return m_border; }
|
||||||
|
|
||||||
const Box& offset() const { return m_offset; }
|
const LengthBox& offset() const { return m_offset; }
|
||||||
const Box& margin() const { return m_margin; }
|
const LengthBox& margin() const { return m_margin; }
|
||||||
const Box& padding() const { return m_padding; }
|
const LengthBox& padding() const { return m_padding; }
|
||||||
|
const LengthBox& border() const { return m_border; }
|
||||||
|
|
||||||
FontStyle font_style() const { return m_font_style; }
|
FontStyle font_style() const { return m_font_style; }
|
||||||
|
|
||||||
|
@ -40,9 +36,10 @@ private:
|
||||||
Color m_text_color;
|
Color m_text_color;
|
||||||
Color m_background_color;
|
Color m_background_color;
|
||||||
|
|
||||||
Box m_offset;
|
LengthBox m_offset;
|
||||||
Box m_margin;
|
LengthBox m_margin;
|
||||||
Box m_padding;
|
LengthBox m_padding;
|
||||||
|
LengthBox m_border;
|
||||||
|
|
||||||
Size m_size;
|
Size m_size;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue