CSSFontFaceLoadEvent.h [plain text]
#pragma once
#if ENABLE(FONT_LOAD_EVENTS)
#include "CSSFontFaceRule.h"
#include "CSSValue.h"
#include "Event.h"
#include "EventNames.h"
#include <wtf/RefPtr.h>
namespace WebCore {
class DOMError;
struct CSSFontFaceLoadEventInit : public EventInit {
RefPtr<CSSFontFaceRule> fontface;
RefPtr<DOMError> error;
};
class CSSFontFaceLoadEvent final : public Event {
public:
static Ref<CSSFontFaceLoadEvent> create()
{
return adoptRef<CSSFontFaceLoadEvent>(*new CSSFontFaceLoadEvent);
}
static Ref<CSSFontFaceLoadEvent> create(const AtomicString& type, const CSSFontFaceLoadEventInit& initializer)
{
return adoptRef<CSSFontFaceLoadEvent>(*new CSSFontFaceLoadEvent(type, initializer));
}
static Ref<CSSFontFaceLoadEvent> createForFontFaceRule(const AtomicString& type, RefPtr<CSSFontFaceRule>&& rule)
{
return adoptRef<CSSFontFaceLoadEvent>(*new CSSFontFaceLoadEvent(type, WTFMove(rule), nullptr));
}
static Ref<CSSFontFaceLoadEvent> createForError(RefPtr<CSSFontFaceRule>&& rule, RefPtr<DOMError>&& error)
{
return adoptRef<CSSFontFaceLoadEvent>(*new CSSFontFaceLoadEvent(eventNames().errorEvent, WTFMove(rule), WTFMove(error)));
}
virtual ~CSSFontFaceLoadEvent();
CSSFontFaceRule* fontface() const { return m_fontface.get(); }
DOMError* error() const { return m_error.get(); }
EventInterface eventInterface() const override;
private:
CSSFontFaceLoadEvent();
CSSFontFaceLoadEvent(const AtomicString&, RefPtr<CSSFontFaceRule>&&, RefPtr<DOMError>&&);
CSSFontFaceLoadEvent(const AtomicString&, const CSSFontFaceLoadEventInit&);
RefPtr<CSSFontFaceRule> m_fontface;
RefPtr<DOMError> m_error;
};
}
#endif // ENABLE(FONT_LOAD_EVENTS)