ladybird/Libraries/LibWeb/CSS/FontFaceSet.idl

49 lines
1.7 KiB
Text

#import <CSS/FontFace.idl>
#import <DOM/EventTarget.idl>
dictionary FontFaceSetLoadEventInit : EventInit {
sequence<FontFace> fontfaces = [];
};
// FIXME
// [Exposed=(Window,Worker)]
//interface FontFaceSetLoadEvent : Event {
// constructor(CSSOMString type, optional FontFaceSetLoadEventInit eventInitDict = {});
// [SameObject] readonly attribute FrozenArray<FontFace> fontfaces;
//};
enum FontFaceSetLoadStatus { "loading", "loaded" };
// https://drafts.csswg.org/css-font-loading/#fontfaceset
[Exposed=(Window,Worker)]
interface FontFaceSet : EventTarget {
setlike<FontFace>;
FontFaceSet add(FontFace font);
boolean delete(FontFace font);
undefined clear();
// events for when loading state changes
attribute EventHandler onloading;
attribute EventHandler onloadingdone;
attribute EventHandler onloadingerror;
// check and start loads if appropriate
// and fulfill promise when all loads complete
// FIXME: Promise<sequence<FontFace>> load(CSSOMString font, optional CSSOMString text = " ");
Promise<sequence<FontFace>> load(CSSOMString font, optional CSSOMString text = "");
// return whether all fonts in the fontlist are loaded
// (does not initiate load if not available)
// FIXME: boolean check(CSSOMString font, optional CSSOMString text = " ");
[FIXME] boolean check(CSSOMString font, optional CSSOMString text = "");
// async notification that font loading and layout operations are done
readonly attribute Promise<FontFaceSet> ready;
// loading state, "loading" while one or more fonts loading, "loaded" otherwise
readonly attribute FontFaceSetLoadStatus status;
};
interface mixin FontFaceSource {
readonly attribute FontFaceSet fonts;
};