Move URL from WebCore to WTF
[WebKit-https.git] / Source / WebKitLegacy / mac / DOM / DOMUIEvent.mm
1 /*
2  * Copyright (C) 2004-2016 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #import "DOMUIEvent.h"
27
28 #import "DOMAbstractViewInternal.h"
29 #import "DOMEventInternal.h"
30 #import "DOMNodeInternal.h"
31 #import "ExceptionHandlers.h"
32 #import <WebCore/DOMWindow.h>
33 #import <WebCore/JSExecState.h>
34 #import <WebCore/KeyboardEvent.h>
35 #import <WebCore/ThreadCheck.h>
36 #import <WebCore/UIEvent.h>
37 #import <WebCore/WebScriptObjectPrivate.h>
38 #import <wtf/GetPtr.h>
39 #import <wtf/URL.h>
40
41 #define IMPL static_cast<WebCore::UIEvent*>(reinterpret_cast<WebCore::Event*>(_internal))
42
43 @implementation DOMUIEvent
44
45 - (DOMAbstractView *)view
46 {
47     WebCore::JSMainThreadNullState state;
48     return kit(WTF::getPtr(IMPL->view()));
49 }
50
51 - (int)detail
52 {
53     WebCore::JSMainThreadNullState state;
54     return IMPL->detail();
55 }
56
57 - (int)keyCode
58 {
59     WebCore::JSMainThreadNullState state;
60     if (is<WebCore::KeyboardEvent>(*IMPL))
61         return downcast<WebCore::KeyboardEvent>(*IMPL).keyCode();
62     return 0;
63 }
64
65 - (int)charCode
66 {
67     WebCore::JSMainThreadNullState state;
68     if (is<WebCore::KeyboardEvent>(*IMPL))
69         return downcast<WebCore::KeyboardEvent>(*IMPL).charCode();
70     return 0;
71 }
72
73 - (int)layerX
74 {
75     WebCore::JSMainThreadNullState state;
76     return IMPL->layerX();
77 }
78
79 - (int)layerY
80 {
81     WebCore::JSMainThreadNullState state;
82     return IMPL->layerY();
83 }
84
85 - (int)pageX
86 {
87     WebCore::JSMainThreadNullState state;
88     return IMPL->pageX();
89 }
90
91 - (int)pageY
92 {
93     WebCore::JSMainThreadNullState state;
94     return IMPL->pageY();
95 }
96
97 - (int)which
98 {
99     WebCore::JSMainThreadNullState state;
100     return IMPL->which();
101 }
102
103 - (void)initUIEvent:(NSString *)type canBubble:(BOOL)canBubble cancelable:(BOOL)cancelable view:(DOMAbstractView *)inView detail:(int)inDetail
104 {
105     WebCore::JSMainThreadNullState state;
106     IMPL->initUIEvent(type, canBubble, cancelable, toWindowProxy(inView), inDetail);
107 }
108
109 @end
110
111 @implementation DOMUIEvent (DOMUIEventDeprecated)
112
113 - (void)initUIEvent:(NSString *)type :(BOOL)canBubble :(BOOL)cancelable :(DOMAbstractView *)inView :(int)inDetail
114 {
115     [self initUIEvent:type canBubble:canBubble cancelable:cancelable view:inView detail:inDetail];
116 }
117
118 @end