2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, 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 COMPUTER, 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.
29 #include <wtf/Platform.h>
32 typedef struct HICON__* HICON;
33 typedef HICON HCURSOR;
34 #include <wtf/PassRefPtr.h>
35 #include <wtf/RefCounted.h>
36 #include <wtf/RefPtr.h>
38 typedef struct _GdkCursor GdkCursor;
41 #elif PLATFORM(CHROMIUM)
42 #include "PlatformCursor.h"
63 class SharedCursor : public RefCounted<SharedCursor> {
65 static PassRefPtr<SharedCursor> create(HCURSOR nativeCursor) { return adoptRef(new SharedCursor(nativeCursor)); }
66 ~SharedCursor() { DestroyIcon(m_nativeCursor); }
67 HCURSOR nativeCursor() const { return m_nativeCursor; }
69 SharedCursor(HCURSOR nativeCursor) : m_nativeCursor(nativeCursor) { }
70 HCURSOR m_nativeCursor;
72 typedef RefPtr<SharedCursor> PlatformCursor;
74 typedef NSCursor* PlatformCursor;
76 typedef GdkCursor* PlatformCursor;
77 #elif PLATFORM(QT) && !defined(QT_NO_CURSOR)
78 typedef QCursor PlatformCursor;
80 typedef wxCursor* PlatformCursor;
81 #elif PLATFORM(CHROMIUM)
82 // See PlatformCursor.h
84 typedef void* PlatformCursor;
95 Cursor(Image*, const IntPoint& hotspot);
96 Cursor(const Cursor&);
98 Cursor& operator=(const Cursor&);
100 Cursor(PlatformCursor);
101 PlatformCursor impl() const { return m_impl; }
104 PlatformCursor m_impl;
107 const Cursor& pointerCursor();
108 const Cursor& crossCursor();
109 const Cursor& handCursor();
110 const Cursor& moveCursor();
111 const Cursor& iBeamCursor();
112 const Cursor& waitCursor();
113 const Cursor& helpCursor();
114 const Cursor& eastResizeCursor();
115 const Cursor& northResizeCursor();
116 const Cursor& northEastResizeCursor();
117 const Cursor& northWestResizeCursor();
118 const Cursor& southResizeCursor();
119 const Cursor& southEastResizeCursor();
120 const Cursor& southWestResizeCursor();
121 const Cursor& westResizeCursor();
122 const Cursor& northSouthResizeCursor();
123 const Cursor& eastWestResizeCursor();
124 const Cursor& northEastSouthWestResizeCursor();
125 const Cursor& northWestSouthEastResizeCursor();
126 const Cursor& columnResizeCursor();
127 const Cursor& rowResizeCursor();
128 const Cursor& middlePanningCursor();
129 const Cursor& eastPanningCursor();
130 const Cursor& northPanningCursor();
131 const Cursor& northEastPanningCursor();
132 const Cursor& northWestPanningCursor();
133 const Cursor& southPanningCursor();
134 const Cursor& southEastPanningCursor();
135 const Cursor& southWestPanningCursor();
136 const Cursor& westPanningCursor();
137 const Cursor& verticalTextCursor();
138 const Cursor& cellCursor();
139 const Cursor& contextMenuCursor();
140 const Cursor& noDropCursor();
141 const Cursor& notAllowedCursor();
142 const Cursor& progressCursor();
143 const Cursor& aliasCursor();
144 const Cursor& zoomInCursor();
145 const Cursor& zoomOutCursor();
146 const Cursor& copyCursor();
147 const Cursor& noneCursor();
149 } // namespace WebCore