Title: [102097] trunk/Source/WebCore
Revision
102097
Author
[email protected]
Date
2011-12-05 22:31:37 -0800 (Mon, 05 Dec 2011)

Log Message

Upstream the Cursor implementation of iOS
https://bugs.webkit.org/show_bug.cgi?id=73724

Patch by Benjamin Poulain <[email protected]> on 2011-12-05
Reviewed by David Kilzer.

iOS does not need to support the Cursor of WebKit. For compatibility, Cursor
is implemented as an empty class on the platform.

* Configurations/WebCore.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
* platform/Cursor.h:
(WebCore::Cursor::Cursor):
* platform/ios/CursorIOS.cpp: Added.
(WebCore::cursor):
(WebCore::pointerCursor):
(WebCore::crossCursor):
(WebCore::handCursor):
(WebCore::moveCursor):
(WebCore::iBeamCursor):
(WebCore::waitCursor):
(WebCore::helpCursor):
(WebCore::eastResizeCursor):
(WebCore::northResizeCursor):
(WebCore::northEastResizeCursor):
(WebCore::northWestResizeCursor):
(WebCore::southResizeCursor):
(WebCore::southEastResizeCursor):
(WebCore::southWestResizeCursor):
(WebCore::westResizeCursor):
(WebCore::northSouthResizeCursor):
(WebCore::eastWestResizeCursor):
(WebCore::northEastSouthWestResizeCursor):
(WebCore::northWestSouthEastResizeCursor):
(WebCore::columnResizeCursor):
(WebCore::rowResizeCursor):
(WebCore::middlePanningCursor):
(WebCore::eastPanningCursor):
(WebCore::northPanningCursor):
(WebCore::northEastPanningCursor):
(WebCore::northWestPanningCursor):
(WebCore::southPanningCursor):
(WebCore::southEastPanningCursor):
(WebCore::southWestPanningCursor):
(WebCore::westPanningCursor):
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::noDropCursor):
(WebCore::notAllowedCursor):
(WebCore::progressCursor):
(WebCore::aliasCursor):
(WebCore::zoomInCursor):
(WebCore::zoomOutCursor):
(WebCore::copyCursor):
(WebCore::noneCursor):
(WebCore::grabCursor):
(WebCore::grabbingCursor):
(WebCore::determineHotSpot):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (102096 => 102097)


--- trunk/Source/WebCore/ChangeLog	2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/ChangeLog	2011-12-06 06:31:37 UTC (rev 102097)
@@ -1,3 +1,64 @@
+2011-12-05  Benjamin Poulain  <[email protected]>
+
+        Upstream the Cursor implementation of iOS
+        https://bugs.webkit.org/show_bug.cgi?id=73724
+
+        Reviewed by David Kilzer.
+
+        iOS does not need to support the Cursor of WebKit. For compatibility, Cursor
+        is implemented as an empty class on the platform.
+
+        * Configurations/WebCore.xcconfig:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/Cursor.h:
+        (WebCore::Cursor::Cursor):
+        * platform/ios/CursorIOS.cpp: Added.
+        (WebCore::cursor):
+        (WebCore::pointerCursor):
+        (WebCore::crossCursor):
+        (WebCore::handCursor):
+        (WebCore::moveCursor):
+        (WebCore::iBeamCursor):
+        (WebCore::waitCursor):
+        (WebCore::helpCursor):
+        (WebCore::eastResizeCursor):
+        (WebCore::northResizeCursor):
+        (WebCore::northEastResizeCursor):
+        (WebCore::northWestResizeCursor):
+        (WebCore::southResizeCursor):
+        (WebCore::southEastResizeCursor):
+        (WebCore::southWestResizeCursor):
+        (WebCore::westResizeCursor):
+        (WebCore::northSouthResizeCursor):
+        (WebCore::eastWestResizeCursor):
+        (WebCore::northEastSouthWestResizeCursor):
+        (WebCore::northWestSouthEastResizeCursor):
+        (WebCore::columnResizeCursor):
+        (WebCore::rowResizeCursor):
+        (WebCore::middlePanningCursor):
+        (WebCore::eastPanningCursor):
+        (WebCore::northPanningCursor):
+        (WebCore::northEastPanningCursor):
+        (WebCore::northWestPanningCursor):
+        (WebCore::southPanningCursor):
+        (WebCore::southEastPanningCursor):
+        (WebCore::southWestPanningCursor):
+        (WebCore::westPanningCursor):
+        (WebCore::verticalTextCursor):
+        (WebCore::cellCursor):
+        (WebCore::contextMenuCursor):
+        (WebCore::noDropCursor):
+        (WebCore::notAllowedCursor):
+        (WebCore::progressCursor):
+        (WebCore::aliasCursor):
+        (WebCore::zoomInCursor):
+        (WebCore::zoomOutCursor):
+        (WebCore::copyCursor):
+        (WebCore::noneCursor):
+        (WebCore::grabCursor):
+        (WebCore::grabbingCursor):
+        (WebCore::determineHotSpot):
+
 2011-12-05  Noel Gordon  <[email protected]>
 
         [GTK] GIF image test crashes on 32- and 64-bit Release

Modified: trunk/Source/WebCore/Configurations/WebCore.xcconfig (102096 => 102097)


--- trunk/Source/WebCore/Configurations/WebCore.xcconfig	2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/Configurations/WebCore.xcconfig	2011-12-06 06:31:37 UTC (rev 102097)
@@ -81,7 +81,7 @@
 EXCLUDED_SOURCE_FILE_NAMES_SVG_DOM_OBJC_BINDINGS_ENABLE_SVG_DOM_OBJC_BINDINGS = ;
 
 EXCLUDED_SOURCE_FILE_NAMES = $(EXCLUDED_SOURCE_FILE_NAMES_$(REAL_PLATFORM_NAME)) $(EXCLUDED_SOURCE_FILE_NAMES_SVG_DOM_OBJC_BINDINGS);
-EXCLUDED_SOURCE_FILE_NAMES_iphoneos = *.tiff *Cursor.png localizedStrings.js;
+EXCLUDED_SOURCE_FILE_NAMES_iphoneos = *.tiff *Cursor.png Cursor.cpp CursorMac.mm localizedStrings.js;
 EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator = $(EXCLUDED_SOURCE_FILE_NAMES_iphoneos);
 EXCLUDED_SOURCE_FILE_NAMES_macosx = *IOS.h *IOS.cpp *IOS.mm
 

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (102096 => 102097)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2011-12-06 06:31:37 UTC (rev 102097)
@@ -677,6 +677,7 @@
 		2542F4DB1166C25A00E89A86 /* UserGestureIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2542F4D91166C25A00E89A86 /* UserGestureIndicator.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		265541391489811C000DFC5D /* KeyEventCodesIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 265541371489811C000DFC5D /* KeyEventCodesIOS.h */; };
 		2655413A1489811C000DFC5D /* KeyEventIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 265541381489811C000DFC5D /* KeyEventIOS.mm */; };
+		265541521489B233000DFC5D /* CursorIOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2655414B1489AA2B000DFC5D /* CursorIOS.cpp */; };
 		26E98A10130A9FCA008EB7B2 /* TextCodecASCIIFastPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 26E98A0F130A9FCA008EB7B2 /* TextCodecASCIIFastPath.h */; };
 		2917B5611473496C0052C9D0 /* LayerFlushScheduler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2917B55E1473496C0052C9D0 /* LayerFlushScheduler.cpp */; };
 		2917B5621473496C0052C9D0 /* LayerFlushScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2917B55F1473496C0052C9D0 /* LayerFlushScheduler.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -7776,6 +7777,7 @@
 		2542F4D91166C25A00E89A86 /* UserGestureIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserGestureIndicator.h; sourceTree = "<group>"; };
 		265541371489811C000DFC5D /* KeyEventCodesIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeyEventCodesIOS.h; path = ios/KeyEventCodesIOS.h; sourceTree = "<group>"; };
 		265541381489811C000DFC5D /* KeyEventIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = KeyEventIOS.mm; path = ios/KeyEventIOS.mm; sourceTree = "<group>"; };
+		2655414B1489AA2B000DFC5D /* CursorIOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CursorIOS.cpp; path = ios/CursorIOS.cpp; sourceTree = "<group>"; };
 		26E98A0F130A9FCA008EB7B2 /* TextCodecASCIIFastPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextCodecASCIIFastPath.h; sourceTree = "<group>"; };
 		2917B55E1473496C0052C9D0 /* LayerFlushScheduler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LayerFlushScheduler.cpp; path = ca/LayerFlushScheduler.cpp; sourceTree = "<group>"; };
 		2917B55F1473496C0052C9D0 /* LayerFlushScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LayerFlushScheduler.h; path = ca/LayerFlushScheduler.h; sourceTree = "<group>"; };
@@ -17601,6 +17603,7 @@
 		A59E3C1B11580F340072928E /* ios */ = {
 			isa = PBXGroup;
 			children = (
+				2655414B1489AA2B000DFC5D /* CursorIOS.cpp */,
 				265541371489811C000DFC5D /* KeyEventCodesIOS.h */,
 				265541381489811C000DFC5D /* KeyEventIOS.mm */,
 			);
@@ -25330,6 +25333,7 @@
 				50E566D6139E38C500214433 /* CSSWrapShapes.cpp in Sources */,
 				E11AF15111B9A1A300805103 /* Cursor.cpp in Sources */,
 				93F19A2608245E59001E9ABC /* CursorMac.mm in Sources */,
+				265541521489B233000DFC5D /* CursorIOS.cpp in Sources */,
 				62CD32591157E57C0063B0A7 /* CustomEvent.cpp in Sources */,
 				5196116A0CAC56570010A80C /* Database.cpp in Sources */,
 				51A45B570CAD7FD7000D2BE9 /* DatabaseAuthorizer.cpp in Sources */,

Modified: trunk/Source/WebCore/platform/Cursor.h (102096 => 102097)


--- trunk/Source/WebCore/platform/Cursor.h	2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/platform/Cursor.h	2011-12-06 06:31:37 UTC (rev 102097)
@@ -45,7 +45,7 @@
 #include "PlatformCursor.h"
 #endif
 
-#if PLATFORM(MAC)
+#if PLATFORM(MAC) && !PLATFORM(IOS)
 #ifdef __OBJC__
 @class NSCursor;
 #else
@@ -81,7 +81,7 @@
         HCURSOR m_nativeCursor;
     };
     typedef RefPtr<SharedCursor> PlatformCursor;
-#elif PLATFORM(MAC)
+#elif PLATFORM(MAC) && !PLATFORM(IOS)
     typedef NSCursor *PlatformCursor;
 #elif PLATFORM(GTK)
     typedef GRefPtr<GdkCursor> PlatformCursor;
@@ -150,10 +150,13 @@
         static const Cursor& fromType(Cursor::Type);
 
         Cursor()
+#if !PLATFORM(IOS)
             : m_platformCursor(0)
+#endif
         {
         }
 
+#if !PLATFORM(IOS)
         Cursor(Image*, const IntPoint& hotSpot);
         Cursor(const Cursor&);
         ~Cursor();
@@ -184,6 +187,7 @@
 #else
         mutable RetainPtr<NSCursor> m_platformCursor;
 #endif
+#endif // !PLATFORM(IOS)
     };
 
     IntPoint determineHotSpot(Image*, const IntPoint& specifiedHotSpot);

Added: trunk/Source/WebCore/platform/ios/CursorIOS.cpp (0 => 102097)


--- trunk/Source/WebCore/platform/ios/CursorIOS.cpp	                        (rev 0)
+++ trunk/Source/WebCore/platform/ios/CursorIOS.cpp	2011-12-06 06:31:37 UTC (rev 102097)
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "Cursor.h"
+
+namespace WebCore {
+
+static const Cursor& cursor()
+{
+    DEFINE_STATIC_LOCAL(const Cursor, cursor, ());
+    return cursor;
+}
+
+const Cursor& pointerCursor()
+{
+    return cursor();
+}
+
+const Cursor& crossCursor()
+{
+    return cursor();
+}
+
+const Cursor& handCursor()
+{
+    return cursor();
+}
+
+const Cursor& moveCursor()
+{
+    return cursor();
+}
+
+const Cursor& iBeamCursor()
+{
+    return cursor();
+}
+
+const Cursor& waitCursor()
+{
+    return cursor();
+}
+
+const Cursor& helpCursor()
+{
+    return cursor();
+}
+
+const Cursor& eastResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& northResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& northEastResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& northWestResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& southResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& southEastResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& southWestResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& westResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& northSouthResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& eastWestResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& northEastSouthWestResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& northWestSouthEastResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& columnResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& rowResizeCursor()
+{
+    return cursor();
+}
+
+const Cursor& middlePanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& eastPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& northPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& northEastPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& northWestPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& southPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& southEastPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& southWestPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& westPanningCursor()
+{
+    return cursor();
+}
+
+const Cursor& verticalTextCursor()
+{
+    return cursor();
+}
+
+const Cursor& cellCursor()
+{
+    return cursor();
+}
+
+const Cursor& contextMenuCursor()
+{
+    return cursor();
+}
+
+const Cursor& noDropCursor()
+{
+    return cursor();
+}
+
+const Cursor& notAllowedCursor()
+{
+    return cursor();
+}
+
+const Cursor& progressCursor()
+{
+    return cursor();
+}
+
+const Cursor& aliasCursor()
+{
+    return cursor();
+}
+
+const Cursor& zoomInCursor()
+{
+    return cursor();
+}
+
+const Cursor& zoomOutCursor()
+{
+    return cursor();
+}
+
+const Cursor& copyCursor()
+{
+    return cursor();
+}
+
+const Cursor& noneCursor()
+{
+    return cursor();
+}
+
+const Cursor& grabCursor()
+{
+    return cursor();
+}
+
+const Cursor& grabbingCursor()
+{
+    return cursor();
+}
+
+IntPoint determineHotSpot(Image*, const IntPoint&)
+{
+    return IntPoint();
+}
+
+}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to