1 /*
2 * Copyright (C) 2010 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 #include "third_party/blink/renderer/platform/cursors.h"
27
28 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
29 #include "ui/base/cursor/cursor.h"
30 #include "ui/base/mojom/cursor_type.mojom-blink.h"
31
32 // To avoid conflicts with the CreateWindow macro from the Windows SDK...
33 #undef CopyCursor
34
35 namespace blink {
36
PointerCursor()37 const ui::Cursor& PointerCursor() {
38 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kPointer));
39 return c;
40 }
41
CrossCursor()42 const ui::Cursor& CrossCursor() {
43 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kCross));
44 return c;
45 }
46
HandCursor()47 const ui::Cursor& HandCursor() {
48 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kHand));
49 return c;
50 }
51
MoveCursor()52 const ui::Cursor& MoveCursor() {
53 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kMove));
54 return c;
55 }
56
VerticalTextCursor()57 const ui::Cursor& VerticalTextCursor() {
58 DEFINE_STATIC_LOCAL(ui::Cursor, c,
59 (ui::mojom::blink::CursorType::kVerticalText));
60 return c;
61 }
62
CellCursor()63 const ui::Cursor& CellCursor() {
64 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kCell));
65 return c;
66 }
67
ContextMenuCursor()68 const ui::Cursor& ContextMenuCursor() {
69 DEFINE_STATIC_LOCAL(ui::Cursor, c,
70 (ui::mojom::blink::CursorType::kContextMenu));
71 return c;
72 }
73
AliasCursor()74 const ui::Cursor& AliasCursor() {
75 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kAlias));
76 return c;
77 }
78
ZoomInCursor()79 const ui::Cursor& ZoomInCursor() {
80 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kZoomIn));
81 return c;
82 }
83
ZoomOutCursor()84 const ui::Cursor& ZoomOutCursor() {
85 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kZoomOut));
86 return c;
87 }
88
CopyCursor()89 const ui::Cursor& CopyCursor() {
90 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kCopy));
91 return c;
92 }
93
NoneCursor()94 const ui::Cursor& NoneCursor() {
95 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kNone));
96 return c;
97 }
98
ProgressCursor()99 const ui::Cursor& ProgressCursor() {
100 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kProgress));
101 return c;
102 }
103
NoDropCursor()104 const ui::Cursor& NoDropCursor() {
105 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kNoDrop));
106 return c;
107 }
108
NotAllowedCursor()109 const ui::Cursor& NotAllowedCursor() {
110 DEFINE_STATIC_LOCAL(ui::Cursor, c,
111 (ui::mojom::blink::CursorType::kNotAllowed));
112 return c;
113 }
114
IBeamCursor()115 const ui::Cursor& IBeamCursor() {
116 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kIBeam));
117 return c;
118 }
119
WaitCursor()120 const ui::Cursor& WaitCursor() {
121 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kWait));
122 return c;
123 }
124
HelpCursor()125 const ui::Cursor& HelpCursor() {
126 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kHelp));
127 return c;
128 }
129
EastResizeCursor()130 const ui::Cursor& EastResizeCursor() {
131 DEFINE_STATIC_LOCAL(ui::Cursor, c,
132 (ui::mojom::blink::CursorType::kEastResize));
133 return c;
134 }
135
NorthResizeCursor()136 const ui::Cursor& NorthResizeCursor() {
137 DEFINE_STATIC_LOCAL(ui::Cursor, c,
138 (ui::mojom::blink::CursorType::kNorthResize));
139 return c;
140 }
141
NorthEastResizeCursor()142 const ui::Cursor& NorthEastResizeCursor() {
143 DEFINE_STATIC_LOCAL(ui::Cursor, c,
144 (ui::mojom::blink::CursorType::kNorthEastResize));
145 return c;
146 }
147
NorthWestResizeCursor()148 const ui::Cursor& NorthWestResizeCursor() {
149 DEFINE_STATIC_LOCAL(ui::Cursor, c,
150 (ui::mojom::blink::CursorType::kNorthWestResize));
151 return c;
152 }
153
SouthResizeCursor()154 const ui::Cursor& SouthResizeCursor() {
155 DEFINE_STATIC_LOCAL(ui::Cursor, c,
156 (ui::mojom::blink::CursorType::kSouthResize));
157 return c;
158 }
159
SouthEastResizeCursor()160 const ui::Cursor& SouthEastResizeCursor() {
161 DEFINE_STATIC_LOCAL(ui::Cursor, c,
162 (ui::mojom::blink::CursorType::kSouthEastResize));
163 return c;
164 }
165
SouthWestResizeCursor()166 const ui::Cursor& SouthWestResizeCursor() {
167 DEFINE_STATIC_LOCAL(ui::Cursor, c,
168 (ui::mojom::blink::CursorType::kSouthWestResize));
169 return c;
170 }
171
WestResizeCursor()172 const ui::Cursor& WestResizeCursor() {
173 DEFINE_STATIC_LOCAL(ui::Cursor, c,
174 (ui::mojom::blink::CursorType::kWestResize));
175 return c;
176 }
177
NorthSouthResizeCursor()178 const ui::Cursor& NorthSouthResizeCursor() {
179 DEFINE_STATIC_LOCAL(ui::Cursor, c,
180 (ui::mojom::blink::CursorType::kNorthSouthResize));
181 return c;
182 }
183
EastWestResizeCursor()184 const ui::Cursor& EastWestResizeCursor() {
185 DEFINE_STATIC_LOCAL(ui::Cursor, c,
186 (ui::mojom::blink::CursorType::kEastWestResize));
187 return c;
188 }
189
NorthEastSouthWestResizeCursor()190 const ui::Cursor& NorthEastSouthWestResizeCursor() {
191 DEFINE_STATIC_LOCAL(
192 ui::Cursor, c, (ui::mojom::blink::CursorType::kNorthEastSouthWestResize));
193 return c;
194 }
195
NorthWestSouthEastResizeCursor()196 const ui::Cursor& NorthWestSouthEastResizeCursor() {
197 DEFINE_STATIC_LOCAL(
198 ui::Cursor, c, (ui::mojom::blink::CursorType::kNorthWestSouthEastResize));
199 return c;
200 }
201
ColumnResizeCursor()202 const ui::Cursor& ColumnResizeCursor() {
203 DEFINE_STATIC_LOCAL(ui::Cursor, c,
204 (ui::mojom::blink::CursorType::kColumnResize));
205 return c;
206 }
207
RowResizeCursor()208 const ui::Cursor& RowResizeCursor() {
209 DEFINE_STATIC_LOCAL(ui::Cursor, c,
210 (ui::mojom::blink::CursorType::kRowResize));
211 return c;
212 }
213
MiddlePanningCursor()214 const ui::Cursor& MiddlePanningCursor() {
215 DEFINE_STATIC_LOCAL(ui::Cursor, c,
216 (ui::mojom::blink::CursorType::kMiddlePanning));
217 return c;
218 }
219
MiddlePanningVerticalCursor()220 const ui::Cursor& MiddlePanningVerticalCursor() {
221 DEFINE_STATIC_LOCAL(ui::Cursor, c,
222 (ui::mojom::blink::CursorType::kMiddlePanningVertical));
223 return c;
224 }
225
MiddlePanningHorizontalCursor()226 const ui::Cursor& MiddlePanningHorizontalCursor() {
227 DEFINE_STATIC_LOCAL(ui::Cursor, c,
228 (ui::mojom::blink::CursorType::kMiddlePanningHorizontal));
229 return c;
230 }
231
EastPanningCursor()232 const ui::Cursor& EastPanningCursor() {
233 DEFINE_STATIC_LOCAL(ui::Cursor, c,
234 (ui::mojom::blink::CursorType::kEastPanning));
235 return c;
236 }
237
NorthPanningCursor()238 const ui::Cursor& NorthPanningCursor() {
239 DEFINE_STATIC_LOCAL(ui::Cursor, c,
240 (ui::mojom::blink::CursorType::kNorthPanning));
241 return c;
242 }
243
NorthEastPanningCursor()244 const ui::Cursor& NorthEastPanningCursor() {
245 DEFINE_STATIC_LOCAL(ui::Cursor, c,
246 (ui::mojom::blink::CursorType::kNorthEastPanning));
247 return c;
248 }
249
NorthWestPanningCursor()250 const ui::Cursor& NorthWestPanningCursor() {
251 DEFINE_STATIC_LOCAL(ui::Cursor, c,
252 (ui::mojom::blink::CursorType::kNorthWestPanning));
253 return c;
254 }
255
SouthPanningCursor()256 const ui::Cursor& SouthPanningCursor() {
257 DEFINE_STATIC_LOCAL(ui::Cursor, c,
258 (ui::mojom::blink::CursorType::kSouthPanning));
259 return c;
260 }
261
SouthEastPanningCursor()262 const ui::Cursor& SouthEastPanningCursor() {
263 DEFINE_STATIC_LOCAL(ui::Cursor, c,
264 (ui::mojom::blink::CursorType::kSouthEastPanning));
265 return c;
266 }
267
SouthWestPanningCursor()268 const ui::Cursor& SouthWestPanningCursor() {
269 DEFINE_STATIC_LOCAL(ui::Cursor, c,
270 (ui::mojom::blink::CursorType::kSouthWestPanning));
271 return c;
272 }
273
WestPanningCursor()274 const ui::Cursor& WestPanningCursor() {
275 DEFINE_STATIC_LOCAL(ui::Cursor, c,
276 (ui::mojom::blink::CursorType::kWestPanning));
277 return c;
278 }
279
GrabCursor()280 const ui::Cursor& GrabCursor() {
281 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kGrab));
282 return c;
283 }
284
GrabbingCursor()285 const ui::Cursor& GrabbingCursor() {
286 DEFINE_STATIC_LOCAL(ui::Cursor, c, (ui::mojom::blink::CursorType::kGrabbing));
287 return c;
288 }
289
290 } // namespace blink
291