mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 19:07:36 +00:00
LibWeb: Implement initial CSSFontFaceRule and FontFace classes
For now, this is the bare minimum that's needed: font-family and src.
This commit is contained in:
parent
1dcde57922
commit
804b8c85e8
13 changed files with 173 additions and 6 deletions
45
Userland/Libraries/LibWeb/CSS/CSSFontFaceRule.h
Normal file
45
Userland/Libraries/LibWeb/CSS/CSSFontFaceRule.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibWeb/CSS/CSSRule.h>
|
||||
#include <LibWeb/CSS/FontFace.h>
|
||||
|
||||
namespace Web::CSS {
|
||||
|
||||
class CSSFontFaceRule final : public CSSRule {
|
||||
AK_MAKE_NONCOPYABLE(CSSFontFaceRule);
|
||||
AK_MAKE_NONMOVABLE(CSSFontFaceRule);
|
||||
|
||||
public:
|
||||
using WrapperType = Bindings::CSSFontFaceRuleWrapper;
|
||||
|
||||
static NonnullRefPtr<CSSFontFaceRule> create(FontFace&& font_face)
|
||||
{
|
||||
return adopt_ref(*new CSSFontFaceRule(move(font_face)));
|
||||
}
|
||||
|
||||
virtual ~CSSFontFaceRule() override = default;
|
||||
|
||||
virtual StringView class_name() const override { return "CSSFontFaceRule"; }
|
||||
virtual Type type() const override { return Type::FontFace; }
|
||||
|
||||
FontFace const& font_face() const { return m_font_face; }
|
||||
CSSStyleDeclaration* style();
|
||||
|
||||
private:
|
||||
explicit CSSFontFaceRule(FontFace&&);
|
||||
|
||||
virtual String serialized() const override;
|
||||
|
||||
FontFace m_font_face;
|
||||
};
|
||||
|
||||
template<>
|
||||
inline bool CSSRule::fast_is<CSSFontFaceRule>() const { return type() == CSSRule::Type::FontFace; }
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue