mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-09 02:56:10 +00:00
Everywhere: Hoist the Libraries folder to the top-level
This commit is contained in:
parent
950e819ee7
commit
93712b24bf
Notes:
github-actions[bot]
2024-11-10 11:51:52 +00:00
Author: https://github.com/trflynn89
Commit: 93712b24bf
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2256
Reviewed-by: https://github.com/sideshowbarker
4547 changed files with 104 additions and 113 deletions
118
Libraries/LibWeb/CSS/FontFace.h
Normal file
118
Libraries/LibWeb/CSS/FontFace.h
Normal file
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibGfx/Font/Typeface.h>
|
||||
#include <LibURL/URL.h>
|
||||
#include <LibWeb/Bindings/FontFacePrototype.h>
|
||||
#include <LibWeb/Bindings/PlatformObject.h>
|
||||
#include <LibWeb/CSS/ParsedFontFace.h>
|
||||
|
||||
namespace Web::CSS {
|
||||
|
||||
struct FontFaceDescriptors {
|
||||
String style = "normal"_string;
|
||||
String weight = "normal"_string;
|
||||
String stretch = "normal"_string;
|
||||
String unicode_range = "U+0-10FFFF"_string;
|
||||
String feature_settings = "normal"_string;
|
||||
String variation_settings = "normal"_string;
|
||||
String display = "auto"_string;
|
||||
String ascent_override = "normal"_string;
|
||||
String descent_override = "normal"_string;
|
||||
String line_gap_override = "normal"_string;
|
||||
};
|
||||
|
||||
class FontFace final : public Bindings::PlatformObject {
|
||||
WEB_PLATFORM_OBJECT(FontFace, Bindings::PlatformObject);
|
||||
JS_DECLARE_ALLOCATOR(FontFace);
|
||||
|
||||
public:
|
||||
using FontFaceSource = Variant<String, JS::Handle<WebIDL::BufferSource>>;
|
||||
|
||||
[[nodiscard]] static JS::NonnullGCPtr<FontFace> construct_impl(JS::Realm&, String family, FontFaceSource source, FontFaceDescriptors const& descriptors);
|
||||
virtual ~FontFace() override;
|
||||
|
||||
String family() const { return m_family; }
|
||||
WebIDL::ExceptionOr<void> set_family(String const&);
|
||||
|
||||
String style() const { return m_style; }
|
||||
WebIDL::ExceptionOr<void> set_style(String const&);
|
||||
|
||||
String weight() const { return m_weight; }
|
||||
WebIDL::ExceptionOr<void> set_weight(String const&);
|
||||
|
||||
String stretch() const { return m_stretch; }
|
||||
WebIDL::ExceptionOr<void> set_stretch(String const&);
|
||||
|
||||
String unicode_range() const { return m_unicode_range; }
|
||||
WebIDL::ExceptionOr<void> set_unicode_range(String const&);
|
||||
|
||||
String feature_settings() const { return m_feature_settings; }
|
||||
WebIDL::ExceptionOr<void> set_feature_settings(String const&);
|
||||
|
||||
String variation_settings() const { return m_variation_settings; }
|
||||
WebIDL::ExceptionOr<void> set_variation_settings(String const&);
|
||||
|
||||
String display() const { return m_display; }
|
||||
WebIDL::ExceptionOr<void> set_display(String const&);
|
||||
|
||||
String ascent_override() const { return m_ascent_override; }
|
||||
WebIDL::ExceptionOr<void> set_ascent_override(String const&);
|
||||
|
||||
String descent_override() const { return m_descent_override; }
|
||||
WebIDL::ExceptionOr<void> set_descent_override(String const&);
|
||||
|
||||
String line_gap_override() const { return m_line_gap_override; }
|
||||
WebIDL::ExceptionOr<void> set_line_gap_override(String const&);
|
||||
|
||||
bool is_css_connected() const { return m_is_css_connected; }
|
||||
|
||||
Bindings::FontFaceLoadStatus status() const { return m_status; }
|
||||
|
||||
JS::NonnullGCPtr<WebIDL::Promise> load();
|
||||
JS::NonnullGCPtr<WebIDL::Promise> loaded() const;
|
||||
|
||||
void load_font_source();
|
||||
|
||||
JS::NonnullGCPtr<WebIDL::Promise> font_status_promise() { return m_font_status_promise; }
|
||||
|
||||
private:
|
||||
FontFace(JS::Realm&, JS::NonnullGCPtr<WebIDL::Promise> font_status_promise, Vector<ParsedFontFace::Source> urls, ByteBuffer data, String family, FontFaceDescriptors const& descriptors);
|
||||
|
||||
virtual void initialize(JS::Realm&) override;
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// FIXME: Should we be storing StyleValues instead?
|
||||
String m_family;
|
||||
String m_style;
|
||||
String m_weight;
|
||||
String m_stretch;
|
||||
String m_unicode_range;
|
||||
Vector<Gfx::UnicodeRange> m_unicode_ranges;
|
||||
String m_feature_settings;
|
||||
String m_variation_settings;
|
||||
String m_display;
|
||||
String m_ascent_override;
|
||||
String m_descent_override;
|
||||
String m_line_gap_override;
|
||||
|
||||
// https://drafts.csswg.org/css-font-loading/#dom-fontface-status
|
||||
Bindings::FontFaceLoadStatus m_status { Bindings::FontFaceLoadStatus::Unloaded };
|
||||
|
||||
JS::NonnullGCPtr<WebIDL::Promise> m_font_status_promise; // [[FontStatusPromise]]
|
||||
Vector<ParsedFontFace::Source> m_urls; // [[Urls]]
|
||||
ByteBuffer m_binary_data; // [[Data]]
|
||||
|
||||
RefPtr<Gfx::Typeface> m_parsed_font;
|
||||
RefPtr<Core::Promise<NonnullRefPtr<Gfx::Typeface>>> m_font_load_promise;
|
||||
|
||||
// https://drafts.csswg.org/css-font-loading/#css-connected
|
||||
bool m_is_css_connected { false };
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue