Delete WebMetal implementation in favor of WebGPU
[WebKit-https.git] / Source / WebCore / dom / ClipboardEvent.h
1 /*
2  * Copyright (C) 2001 Peter Kelly (pmk@post.com)
3  * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de)
4  * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
5  * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public License
18  * along with this library; see the file COPYING.LIB.  If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  *
22  */
23
24 #pragma once
25
26 #include "Event.h"
27
28 namespace WebCore {
29
30 class DataTransfer;
31
32 class ClipboardEvent final : public Event {
33 public:
34     virtual ~ClipboardEvent();
35
36     struct Init : EventInit {
37         RefPtr<DataTransfer> clipboardData;
38     };
39
40     static Ref<ClipboardEvent> create(const AtomicString& type, Ref<DataTransfer>&& dataTransfer)
41     {
42         return adoptRef(*new ClipboardEvent(type, WTFMove(dataTransfer)));
43     }
44
45     static Ref<ClipboardEvent> create(const AtomicString& type, const Init& init)
46     {
47         return adoptRef(*new ClipboardEvent(type, init));
48     }
49
50     DataTransfer* clipboardData() const { return m_clipboardData.get(); }
51
52 private:
53     ClipboardEvent(const AtomicString& type, Ref<DataTransfer>&&);
54     ClipboardEvent(const AtomicString& type, const Init&);
55
56     EventInterface eventInterface() const final;
57     bool isClipboardEvent() const final;
58
59     RefPtr<DataTransfer> m_clipboardData;
60 };
61
62 } // namespace WebCore