summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/CSS/CSSFontFaceRule.h
blob: fe08427d461264c96cdffdca8934b35bd9883124 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
 * Copyright (c) 2022, Andreas Kling <kling@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 {
    WEB_PLATFORM_OBJECT(CSSFontFaceRule, CSSRule);

public:
    static CSSFontFaceRule* create(JS::Realm&, FontFace&&);

    virtual ~CSSFontFaceRule() override = default;

    virtual Type type() const override { return Type::FontFace; }

    FontFace const& font_face() const { return m_font_face; }
    CSSStyleDeclaration* style();

private:
    CSSFontFaceRule(JS::Realm&, FontFace&&);

    virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
    virtual DeprecatedString serialized() const override;

    FontFace m_font_face;
};

template<>
inline bool CSSRule::fast_is<CSSFontFaceRule>() const { return type() == CSSRule::Type::FontFace; }

}