Index: webkit/glue/webcursor_mac.mm |
diff --git a/webkit/glue/webcursor_mac.mm b/webkit/glue/webcursor_mac.mm |
index ab1958ac9afaea3895929557f5bd54284ba69aaf..b69b8f741d0ee2d88257e9c16628f024d7c6e9b5 100644 |
--- a/webkit/glue/webcursor_mac.mm |
+++ b/webkit/glue/webcursor_mac.mm |
@@ -11,11 +11,12 @@ |
#include "base/mac/mac_util.h" |
#include "base/mac/scoped_cftyperef.h" |
#include "base/memory/scoped_nsobject.h" |
+#include "grit/webkit_chromium_resources.h" |
#include "skia/ext/skia_utils_mac.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebCursorInfo.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebImage.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSize.h" |
-#include "ui/gfx/mac/nsimage_cache.h" |
+#include "ui/base/resource/resource_bundle.h" |
using WebKit::WebCursorInfo; |
using WebKit::WebImage; |
@@ -114,13 +115,9 @@ typedef long long CrCoreCursorType; |
namespace { |
-// Loads a cursor from the image cache. |
-NSCursor* LoadCursor(const char* name, int hotspot_x, int hotspot_y) { |
- NSString* file_name = [NSString stringWithUTF8String:name]; |
- DCHECK(file_name); |
- // TODO: This image fetch can (and probably should) be serviced by the |
- // resource resource bundle instead of going through the image cache. |
- NSImage* cursor_image = gfx::GetCachedImageWithName(file_name); |
+NSCursor* LoadCursor(int resource_id, int hotspot_x, int hotspot_y) { |
+ NSImage* cursor_image = |
+ ResourceBundle::GetSharedInstance().GetNativeImageNamed(resource_id); |
DCHECK(cursor_image); |
return [[[NSCursor alloc] initWithImage:cursor_image |
hotSpot:NSMakePoint(hotspot_x, |
@@ -130,7 +127,7 @@ NSCursor* LoadCursor(const char* name, int hotspot_x, int hotspot_y) { |
// Gets a specified cursor from CoreCursor, falling back to loading it from the |
// image cache if CoreCursor cannot provide it. |
NSCursor* GetCoreCursorWithFallback(CrCoreCursorType type, |
- const char* name, |
+ int resource_id, |
int hotspot_x, |
int hotspot_y) { |
if (base::mac::IsOSLionOrLater()) { |
@@ -139,7 +136,7 @@ NSCursor* GetCoreCursorWithFallback(CrCoreCursorType type, |
return cursor; |
} |
- return LoadCursor(name, hotspot_x, hotspot_y); |
+ return LoadCursor(resource_id, hotspot_x, hotspot_y); |
} |
// TODO(avi): When Skia becomes default, fold this function into the remaining |
@@ -227,59 +224,61 @@ gfx::NativeCursor WebCursor::GetNativeCursor() { |
if (base::mac::IsOSLionOrLater()) |
return [NSCursor pointingHandCursor]; |
else |
- return LoadCursor("linkCursor", 6, 1); |
+ return LoadCursor(IDR_LINK_CURSOR, 6, 1); |
case WebCursorInfo::TypeIBeam: |
return [NSCursor IBeamCursor]; |
case WebCursorInfo::TypeWait: |
return GetCoreCursorWithFallback(kBusyButClickableCursor, |
- "waitCursor", 7, 7); |
+ IDR_WAIT_CURSOR, 7, 7); |
case WebCursorInfo::TypeHelp: |
return GetCoreCursorWithFallback(kHelpCursor, |
- "helpCursor", 8, 8); |
+ IDR_HELP_CURSOR, 8, 8); |
case WebCursorInfo::TypeEastResize: |
case WebCursorInfo::TypeEastPanning: |
return GetCoreCursorWithFallback(kResizeEastCursor, |
- "eastResizeCursor", 14, 7); |
+ IDR_EAST_RESIZE_CURSOR, 14, 7); |
case WebCursorInfo::TypeNorthResize: |
case WebCursorInfo::TypeNorthPanning: |
return GetCoreCursorWithFallback(kResizeNorthCursor, |
- "northResizeCursor", 7, 1); |
+ IDR_NORTH_RESIZE_CURSOR, 7, 1); |
case WebCursorInfo::TypeNorthEastResize: |
case WebCursorInfo::TypeNorthEastPanning: |
return GetCoreCursorWithFallback(kResizeNortheastCursor, |
- "northEastResizeCursor", 14, 1); |
+ IDR_NORTHEAST_RESIZE_CURSOR, 14, 1); |
case WebCursorInfo::TypeNorthWestResize: |
case WebCursorInfo::TypeNorthWestPanning: |
return GetCoreCursorWithFallback(kResizeNorthwestCursor, |
- "northWestResizeCursor", 0, 0); |
+ IDR_NORTHWEST_RESIZE_CURSOR, 0, 0); |
case WebCursorInfo::TypeSouthResize: |
case WebCursorInfo::TypeSouthPanning: |
return GetCoreCursorWithFallback(kResizeSouthCursor, |
- "southResizeCursor", 7, 14); |
+ IDR_SOUTH_RESIZE_CURSOR, 7, 14); |
case WebCursorInfo::TypeSouthEastResize: |
case WebCursorInfo::TypeSouthEastPanning: |
return GetCoreCursorWithFallback(kResizeSoutheastCursor, |
- "southEastResizeCursor", 14, 14); |
+ IDR_SOUTHEAST_RESIZE_CURSOR, 14, 14); |
case WebCursorInfo::TypeSouthWestResize: |
case WebCursorInfo::TypeSouthWestPanning: |
return GetCoreCursorWithFallback(kResizeSouthwestCursor, |
- "southWestResizeCursor", 1, 14); |
+ IDR_SOUTHWEST_RESIZE_CURSOR, 1, 14); |
case WebCursorInfo::TypeWestResize: |
case WebCursorInfo::TypeWestPanning: |
return GetCoreCursorWithFallback(kResizeWestCursor, |
- "westResizeCursor", 1, 7); |
+ IDR_WEST_RESIZE_CURSOR, 1, 7); |
case WebCursorInfo::TypeNorthSouthResize: |
return GetCoreCursorWithFallback(kResizeNorthSouthCursor, |
- "northSouthResizeCursor", 7, 7); |
+ IDR_NORTHSOUTH_RESIZE_CURSOR, 7, 7); |
case WebCursorInfo::TypeEastWestResize: |
return GetCoreCursorWithFallback(kResizeEastWestCursor, |
- "eastWestResizeCursor", 7, 7); |
+ IDR_EASTWEST_RESIZE_CURSOR, 7, 7); |
case WebCursorInfo::TypeNorthEastSouthWestResize: |
return GetCoreCursorWithFallback(kResizeNortheastSouthwestCursor, |
- "northEastSouthWestResizeCursor", 7, 7); |
+ IDR_NORTHEASTSOUTHWEST_RESIZE_CURSOR, |
+ 7, 7); |
case WebCursorInfo::TypeNorthWestSouthEastResize: |
return GetCoreCursorWithFallback(kResizeNorthwestSoutheastCursor, |
- "northWestSouthEastResizeCursor", 7, 7); |
+ IDR_NORTHWESTSOUTHEAST_RESIZE_CURSOR, |
+ 7, 7); |
case WebCursorInfo::TypeColumnResize: |
return [NSCursor resizeLeftRightCursor]; |
case WebCursorInfo::TypeRowResize: |
@@ -287,28 +286,28 @@ gfx::NativeCursor WebCursor::GetNativeCursor() { |
case WebCursorInfo::TypeMiddlePanning: |
case WebCursorInfo::TypeMove: |
return GetCoreCursorWithFallback(kMoveCursor, |
- "moveCursor", 7, 7); |
+ IDR_MOVE_CURSOR, 7, 7); |
case WebCursorInfo::TypeVerticalText: |
// IBeamCursorForVerticalLayout is >= 10.7. |
if ([NSCursor respondsToSelector:@selector(IBeamCursorForVerticalLayout)]) |
return [NSCursor IBeamCursorForVerticalLayout]; |
else |
- return LoadCursor("verticalTextCursor", 7, 7); |
+ return LoadCursor(IDR_VERTICALTEXT_CURSOR, 7, 7); |
case WebCursorInfo::TypeCell: |
return GetCoreCursorWithFallback(kCellCursor, |
- "cellCursor", 7, 7); |
+ IDR_CELL_CURSOR, 7, 7); |
case WebCursorInfo::TypeContextMenu: |
// contextualMenuCursor is >= 10.6. |
if ([NSCursor respondsToSelector:@selector(contextualMenuCursor)]) |
return [NSCursor contextualMenuCursor]; |
else |
- return LoadCursor("contextMenuCursor", 3, 2); |
+ return LoadCursor(IDR_CONTEXTMENU_CURSOR, 3, 2); |
case WebCursorInfo::TypeAlias: |
return GetCoreCursorWithFallback(kMakeAliasCursor, |
- "aliasCursor", 11, 3); |
+ IDR_ALIAS_CURSOR, 11, 3); |
case WebCursorInfo::TypeProgress: |
return GetCoreCursorWithFallback(kBusyButClickableCursor, |
- "progressCursor", 3, 2); |
+ IDR_PROGRESS_CURSOR, 3, 2); |
case WebCursorInfo::TypeNoDrop: |
case WebCursorInfo::TypeNotAllowed: |
// Docs say that operationNotAllowedCursor is >= 10.6, and it's not in the |
@@ -319,15 +318,15 @@ gfx::NativeCursor WebCursor::GetNativeCursor() { |
if ([NSCursor respondsToSelector:@selector(dragCopyCursor)]) |
return [NSCursor dragCopyCursor]; |
else |
- return LoadCursor("copyCursor", 3, 2); |
+ return LoadCursor(IDR_COPY_CURSOR, 3, 2); |
case WebCursorInfo::TypeNone: |
- return LoadCursor("noneCursor", 7, 7); |
+ return LoadCursor(IDR_NONE_CURSOR, 7, 7); |
case WebCursorInfo::TypeZoomIn: |
return GetCoreCursorWithFallback(kZoomInCursor, |
- "zoomInCursor", 7, 7); |
+ IDR_ZOOMIN_CURSOR, 7, 7); |
case WebCursorInfo::TypeZoomOut: |
return GetCoreCursorWithFallback(kZoomOutCursor, |
- "zoomOutCursor", 7, 7); |
+ IDR_ZOOMOUT_CURSOR, 7, 7); |
case WebCursorInfo::TypeGrab: |
return [NSCursor openHandCursor]; |
case WebCursorInfo::TypeGrabbing: |