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

Unified Diff: ui/base/cursor/cursor_loader_win.cc

Issue 10939006: Make cursors work on win aura. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/cursor/cursor_loader_win.h ('k') | ui/views/view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/cursor/cursor_loader_win.cc
===================================================================
--- ui/base/cursor/cursor_loader_win.cc (revision 157487)
+++ ui/base/cursor/cursor_loader_win.cc (working copy)
@@ -4,8 +4,98 @@
#include "ui/base/cursor/cursor_loader_win.h"
+#include "ui/base/cursor/cursor.h"
+
namespace ui {
+#if defined(USE_AURA)
+
+namespace {
+
+const wchar_t* GetCursorId(gfx::NativeCursor native_cursor) {
+ switch (native_cursor.native_type()) {
+ case kCursorNull:
+ return IDC_ARROW;
+ case kCursorPointer:
+ return IDC_ARROW;
+ case kCursorCross:
+ return IDC_CROSS;
+ case kCursorHand:
+ return IDC_HAND;
+ case kCursorIBeam:
+ return IDC_IBEAM;
+ case kCursorWait:
+ return IDC_WAIT;
+ case kCursorHelp:
+ return IDC_HELP;
+ case kCursorEastResize:
+ return IDC_SIZEWE;
+ case kCursorNorthResize:
+ return IDC_SIZENS;
+ case kCursorNorthEastResize:
+ return IDC_SIZENESW;
+ case kCursorNorthWestResize:
+ return IDC_SIZENWSE;
+ case kCursorSouthResize:
+ return IDC_SIZENS;
+ case kCursorSouthEastResize:
+ return IDC_SIZENWSE;
+ case kCursorSouthWestResize:
+ return IDC_SIZENESW;
+ case kCursorWestResize:
+ return IDC_SIZEWE;
+ case kCursorNorthSouthResize:
+ return IDC_SIZENS;
+ case kCursorEastWestResize:
+ return IDC_SIZEWE;
+ case kCursorNorthEastSouthWestResize:
+ return IDC_SIZENESW;
+ case kCursorNorthWestSouthEastResize:
+ return IDC_SIZENWSE;
+ case kCursorMove:
+ return IDC_SIZEALL;
+ case kCursorProgress:
+ return IDC_APPSTARTING;
+ case kCursorNoDrop:
+ return IDC_NO;
+ case kCursorNotAllowed:
+ return IDC_NO;
+ case kCursorColumnResize:
+ case kCursorRowResize:
+ case kCursorMiddlePanning:
+ case kCursorEastPanning:
+ case kCursorNorthPanning:
+ case kCursorNorthEastPanning:
+ case kCursorNorthWestPanning:
+ case kCursorSouthPanning:
+ case kCursorSouthEastPanning:
+ case kCursorSouthWestPanning:
+ case kCursorWestPanning:
+ case kCursorVerticalText:
+ case kCursorCell:
+ case kCursorContextMenu:
+ case kCursorAlias:
+ case kCursorCopy:
+ case kCursorNone:
+ case kCursorZoomIn:
+ case kCursorZoomOut:
+ case kCursorGrab:
+ case kCursorGrabbing:
+ case kCursorCustom:
+ // TODO(jamescook): Should we use WebKit glue resources for these?
+ // Or migrate those resources to someplace ui/aura can share?
+ NOTIMPLEMENTED();
+ return IDC_ARROW;
+ default:
+ NOTREACHED();
+ return IDC_ARROW;
+ }
+}
+
+} // namespace
+
+#endif
+
CursorLoader* CursorLoader::Create() {
return new CursorLoaderWin;
}
@@ -34,7 +124,13 @@
}
void CursorLoaderWin::SetPlatformCursor(gfx::NativeCursor* cursor) {
- // NOTIMPLEMENTED();
+#if defined(USE_AURA)
+ const wchar_t* cursor_id = GetCursorId(*cursor);
+
+ // TODO(jamescook): Support for non-system cursors will require finding
+ // the appropriate module to pass to LoadCursor().
+ cursor->SetPlatformCursor(LoadCursor(NULL, cursor_id));
+#endif
}
} // namespace ui
« no previous file with comments | « ui/base/cursor/cursor_loader_win.h ('k') | ui/views/view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698