1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "webkit/common/cursors/webcursor.h" 6 7 #include "base/logging.h" 8 #include "third_party/WebKit/public/platform/WebCursorInfo.h" 9 #include "ui/base/cursor/cursor.h" 10 11 using blink::WebCursorInfo; 12 13 gfx::NativeCursor WebCursor::GetNativeCursor() { 14 switch (type_) { 15 case WebCursorInfo::TypePointer: 16 return ui::kCursorPointer; 17 case WebCursorInfo::TypeCross: 18 return ui::kCursorCross; 19 case WebCursorInfo::TypeHand: 20 return ui::kCursorHand; 21 case WebCursorInfo::TypeIBeam: 22 return ui::kCursorIBeam; 23 case WebCursorInfo::TypeWait: 24 return ui::kCursorWait; 25 case WebCursorInfo::TypeHelp: 26 return ui::kCursorHelp; 27 case WebCursorInfo::TypeEastResize: 28 return ui::kCursorEastResize; 29 case WebCursorInfo::TypeNorthResize: 30 return ui::kCursorNorthResize; 31 case WebCursorInfo::TypeNorthEastResize: 32 return ui::kCursorNorthEastResize; 33 case WebCursorInfo::TypeNorthWestResize: 34 return ui::kCursorNorthWestResize; 35 case WebCursorInfo::TypeSouthResize: 36 return ui::kCursorSouthResize; 37 case WebCursorInfo::TypeSouthEastResize: 38 return ui::kCursorSouthEastResize; 39 case WebCursorInfo::TypeSouthWestResize: 40 return ui::kCursorSouthWestResize; 41 case WebCursorInfo::TypeWestResize: 42 return ui::kCursorWestResize; 43 case WebCursorInfo::TypeNorthSouthResize: 44 return ui::kCursorNorthSouthResize; 45 case WebCursorInfo::TypeEastWestResize: 46 return ui::kCursorEastWestResize; 47 case WebCursorInfo::TypeNorthEastSouthWestResize: 48 return ui::kCursorNorthEastSouthWestResize; 49 case WebCursorInfo::TypeNorthWestSouthEastResize: 50 return ui::kCursorNorthWestSouthEastResize; 51 case WebCursorInfo::TypeColumnResize: 52 return ui::kCursorColumnResize; 53 case WebCursorInfo::TypeRowResize: 54 return ui::kCursorRowResize; 55 case WebCursorInfo::TypeMiddlePanning: 56 return ui::kCursorMiddlePanning; 57 case WebCursorInfo::TypeEastPanning: 58 return ui::kCursorEastPanning; 59 case WebCursorInfo::TypeNorthPanning: 60 return ui::kCursorNorthPanning; 61 case WebCursorInfo::TypeNorthEastPanning: 62 return ui::kCursorNorthEastPanning; 63 case WebCursorInfo::TypeNorthWestPanning: 64 return ui::kCursorNorthWestPanning; 65 case WebCursorInfo::TypeSouthPanning: 66 return ui::kCursorSouthPanning; 67 case WebCursorInfo::TypeSouthEastPanning: 68 return ui::kCursorSouthEastPanning; 69 case WebCursorInfo::TypeSouthWestPanning: 70 return ui::kCursorSouthWestPanning; 71 case WebCursorInfo::TypeWestPanning: 72 return ui::kCursorWestPanning; 73 case WebCursorInfo::TypeMove: 74 return ui::kCursorMove; 75 case WebCursorInfo::TypeVerticalText: 76 return ui::kCursorVerticalText; 77 case WebCursorInfo::TypeCell: 78 return ui::kCursorCell; 79 case WebCursorInfo::TypeContextMenu: 80 return ui::kCursorContextMenu; 81 case WebCursorInfo::TypeAlias: 82 return ui::kCursorAlias; 83 case WebCursorInfo::TypeProgress: 84 return ui::kCursorProgress; 85 case WebCursorInfo::TypeNoDrop: 86 return ui::kCursorNoDrop; 87 case WebCursorInfo::TypeCopy: 88 return ui::kCursorCopy; 89 case WebCursorInfo::TypeNone: 90 return ui::kCursorNone; 91 case WebCursorInfo::TypeNotAllowed: 92 return ui::kCursorNotAllowed; 93 case WebCursorInfo::TypeZoomIn: 94 return ui::kCursorZoomIn; 95 case WebCursorInfo::TypeZoomOut: 96 return ui::kCursorZoomOut; 97 case WebCursorInfo::TypeGrab: 98 return ui::kCursorGrab; 99 case WebCursorInfo::TypeGrabbing: 100 return ui::kCursorGrabbing; 101 case WebCursorInfo::TypeCustom: { 102 ui::Cursor cursor(ui::kCursorCustom); 103 cursor.SetPlatformCursor(GetPlatformCursor()); 104 return cursor; 105 } 106 default: 107 NOTREACHED(); 108 return gfx::kNullCursor; 109 } 110 } 111