Browse Source

LibWeb: Allow creating Lengths from CSSPixels

Sam Atkins 2 năm trước cách đây
mục cha
commit
56422e37e0

+ 11 - 0
Userland/Libraries/LibWeb/CSS/Length.cpp

@@ -15,6 +15,7 @@
 #include <LibWeb/DOM/Document.h>
 #include <LibWeb/HTML/BrowsingContext.h>
 #include <LibWeb/HTML/HTMLHtmlElement.h>
+#include <LibWeb/PixelUnits.h>
 
 namespace Web::CSS {
 
@@ -28,6 +29,11 @@ Length::Length(float value, Type type)
     , m_value(value)
 {
 }
+Length::Length(CSSPixels value, Type type)
+    : m_type(type)
+    , m_value(value.value())
+{
+}
 Length::~Length() = default;
 
 Length Length::make_auto()
@@ -40,6 +46,11 @@ Length Length::make_px(float value)
     return Length(value, Type::Px);
 }
 
+Length Length::make_px(CSSPixels value)
+{
+    return Length(value.value(), Type::Px);
+}
+
 Length Length::make_calculated(NonnullRefPtr<CalculatedStyleValue> calculated_style_value)
 {
     Length length { 0, Type::Calculated };

+ 3 - 0
Userland/Libraries/LibWeb/CSS/Length.h

@@ -9,6 +9,7 @@
 #include <AK/DeprecatedString.h>
 #include <LibGfx/Forward.h>
 #include <LibWeb/Forward.h>
+#include <LibWeb/PixelUnits.h>
 
 namespace Web::CSS {
 
@@ -40,10 +41,12 @@ public:
     // this file already. To break the cyclic dependency, we must move all method definitions out.
     Length(int value, Type type);
     Length(float value, Type type);
+    Length(CSSPixels value, Type type);
     ~Length();
 
     static Length make_auto();
     static Length make_px(float value);
+    static Length make_px(CSSPixels value);
     static Length make_calculated(NonnullRefPtr<CalculatedStyleValue>);
     Length percentage_of(Percentage const&) const;