Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: sky/engine/platform/Cursor.h

Issue 1076623002: Remove our impressive amount of CSS Cursor code. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/engine/platform/BUILD.gn ('k') | sky/engine/platform/Cursor.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2004, 2006, 2008 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 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.
24 */
25
26 #ifndef SKY_ENGINE_PLATFORM_CURSOR_H_
27 #define SKY_ENGINE_PLATFORM_CURSOR_H_
28
29 #include "sky/engine/platform/PlatformExport.h"
30 #include "sky/engine/platform/geometry/IntPoint.h"
31 #include "sky/engine/platform/graphics/Image.h"
32 #include "sky/engine/wtf/Assertions.h"
33 #include "sky/engine/wtf/RefPtr.h"
34
35 namespace blink {
36
37 class PLATFORM_EXPORT Cursor {
38 WTF_MAKE_FAST_ALLOCATED;
39 public:
40 enum Type {
41 Pointer = 0,
42 Cross,
43 Hand,
44 IBeam,
45 Wait,
46 Help,
47 EastResize,
48 NorthResize,
49 NorthEastResize,
50 NorthWestResize,
51 SouthResize,
52 SouthEastResize,
53 SouthWestResize,
54 WestResize,
55 NorthSouthResize,
56 EastWestResize,
57 NorthEastSouthWestResize,
58 NorthWestSouthEastResize,
59 ColumnResize,
60 RowResize,
61 MiddlePanning,
62 EastPanning,
63 NorthPanning,
64 NorthEastPanning,
65 NorthWestPanning,
66 SouthPanning,
67 SouthEastPanning,
68 SouthWestPanning,
69 WestPanning,
70 Move,
71 VerticalText,
72 Cell,
73 ContextMenu,
74 Alias,
75 Progress,
76 NoDrop,
77 Copy,
78 None,
79 NotAllowed,
80 ZoomIn,
81 ZoomOut,
82 Grab,
83 Grabbing,
84 Custom
85 };
86
87 static const Cursor& fromType(Cursor::Type);
88
89 Cursor()
90 // This is an invalid Cursor and should never actually get used.
91 : m_type(static_cast<Type>(-1))
92 {
93 }
94
95 Cursor(Image*, const IntPoint& hotSpot);
96
97 // Hot spot is in image pixels.
98 Cursor(Image*, const IntPoint& hotSpot, float imageScaleFactor);
99
100 Cursor(const Cursor&);
101 ~Cursor();
102 Cursor& operator=(const Cursor&);
103
104 explicit Cursor(Type);
105 Type type() const
106 {
107 ASSERT(m_type >= 0 && m_type <= Custom);
108 return m_type;
109 }
110 Image* image() const { return m_image.get(); }
111 const IntPoint& hotSpot() const { return m_hotSpot; }
112 // Image scale in image pixels per logical (UI) pixel.
113 float imageScaleFactor() const { return m_imageScaleFactor; }
114
115 private:
116 Type m_type;
117 RefPtr<Image> m_image;
118 IntPoint m_hotSpot;
119 float m_imageScaleFactor;
120 };
121
122 PLATFORM_EXPORT IntPoint determineHotSpot(Image*, const IntPoint& specifiedHotSp ot);
123
124 PLATFORM_EXPORT const Cursor& pointerCursor();
125 PLATFORM_EXPORT const Cursor& crossCursor();
126 PLATFORM_EXPORT const Cursor& handCursor();
127 PLATFORM_EXPORT const Cursor& moveCursor();
128 PLATFORM_EXPORT const Cursor& iBeamCursor();
129 PLATFORM_EXPORT const Cursor& waitCursor();
130 PLATFORM_EXPORT const Cursor& helpCursor();
131 PLATFORM_EXPORT const Cursor& eastResizeCursor();
132 PLATFORM_EXPORT const Cursor& northResizeCursor();
133 PLATFORM_EXPORT const Cursor& northEastResizeCursor();
134 PLATFORM_EXPORT const Cursor& northWestResizeCursor();
135 PLATFORM_EXPORT const Cursor& southResizeCursor();
136 PLATFORM_EXPORT const Cursor& southEastResizeCursor();
137 PLATFORM_EXPORT const Cursor& southWestResizeCursor();
138 PLATFORM_EXPORT const Cursor& westResizeCursor();
139 PLATFORM_EXPORT const Cursor& northSouthResizeCursor();
140 PLATFORM_EXPORT const Cursor& eastWestResizeCursor();
141 PLATFORM_EXPORT const Cursor& northEastSouthWestResizeCursor();
142 PLATFORM_EXPORT const Cursor& northWestSouthEastResizeCursor();
143 PLATFORM_EXPORT const Cursor& columnResizeCursor();
144 PLATFORM_EXPORT const Cursor& rowResizeCursor();
145 PLATFORM_EXPORT const Cursor& middlePanningCursor();
146 PLATFORM_EXPORT const Cursor& eastPanningCursor();
147 PLATFORM_EXPORT const Cursor& northPanningCursor();
148 PLATFORM_EXPORT const Cursor& northEastPanningCursor();
149 PLATFORM_EXPORT const Cursor& northWestPanningCursor();
150 PLATFORM_EXPORT const Cursor& southPanningCursor();
151 PLATFORM_EXPORT const Cursor& southEastPanningCursor();
152 PLATFORM_EXPORT const Cursor& southWestPanningCursor();
153 PLATFORM_EXPORT const Cursor& westPanningCursor();
154 PLATFORM_EXPORT const Cursor& verticalTextCursor();
155 PLATFORM_EXPORT const Cursor& cellCursor();
156 PLATFORM_EXPORT const Cursor& contextMenuCursor();
157 PLATFORM_EXPORT const Cursor& noDropCursor();
158 PLATFORM_EXPORT const Cursor& notAllowedCursor();
159 PLATFORM_EXPORT const Cursor& progressCursor();
160 PLATFORM_EXPORT const Cursor& aliasCursor();
161 PLATFORM_EXPORT const Cursor& zoomInCursor();
162 PLATFORM_EXPORT const Cursor& zoomOutCursor();
163 PLATFORM_EXPORT const Cursor& copyCursor();
164 PLATFORM_EXPORT const Cursor& noneCursor();
165 PLATFORM_EXPORT const Cursor& grabCursor();
166 PLATFORM_EXPORT const Cursor& grabbingCursor();
167
168 } // namespace blink
169
170 #endif // SKY_ENGINE_PLATFORM_CURSOR_H_
OLDNEW
« no previous file with comments | « sky/engine/platform/BUILD.gn ('k') | sky/engine/platform/Cursor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698