Home | History | Annotate | Download | only in cursors
      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 "content/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 namespace content {
     14 
     15 gfx::NativeCursor WebCursor::GetNativeCursor() {
     16   switch (type_) {
     17     case WebCursorInfo::TypePointer:
     18       return ui::kCursorPointer;
     19     case WebCursorInfo::TypeCross:
     20       return ui::kCursorCross;
     21     case WebCursorInfo::TypeHand:
     22       return ui::kCursorHand;
     23     case WebCursorInfo::TypeIBeam:
     24       return ui::kCursorIBeam;
     25     case WebCursorInfo::TypeWait:
     26       return ui::kCursorWait;
     27     case WebCursorInfo::TypeHelp:
     28       return ui::kCursorHelp;
     29     case WebCursorInfo::TypeEastResize:
     30       return ui::kCursorEastResize;
     31     case WebCursorInfo::TypeNorthResize:
     32       return ui::kCursorNorthResize;
     33     case WebCursorInfo::TypeNorthEastResize:
     34       return ui::kCursorNorthEastResize;
     35     case WebCursorInfo::TypeNorthWestResize:
     36       return ui::kCursorNorthWestResize;
     37     case WebCursorInfo::TypeSouthResize:
     38       return ui::kCursorSouthResize;
     39     case WebCursorInfo::TypeSouthEastResize:
     40       return ui::kCursorSouthEastResize;
     41     case WebCursorInfo::TypeSouthWestResize:
     42       return ui::kCursorSouthWestResize;
     43     case WebCursorInfo::TypeWestResize:
     44       return ui::kCursorWestResize;
     45     case WebCursorInfo::TypeNorthSouthResize:
     46       return ui::kCursorNorthSouthResize;
     47     case WebCursorInfo::TypeEastWestResize:
     48       return ui::kCursorEastWestResize;
     49     case WebCursorInfo::TypeNorthEastSouthWestResize:
     50       return ui::kCursorNorthEastSouthWestResize;
     51     case WebCursorInfo::TypeNorthWestSouthEastResize:
     52       return ui::kCursorNorthWestSouthEastResize;
     53     case WebCursorInfo::TypeColumnResize:
     54       return ui::kCursorColumnResize;
     55     case WebCursorInfo::TypeRowResize:
     56       return ui::kCursorRowResize;
     57     case WebCursorInfo::TypeMiddlePanning:
     58       return ui::kCursorMiddlePanning;
     59     case WebCursorInfo::TypeEastPanning:
     60       return ui::kCursorEastPanning;
     61     case WebCursorInfo::TypeNorthPanning:
     62       return ui::kCursorNorthPanning;
     63     case WebCursorInfo::TypeNorthEastPanning:
     64       return ui::kCursorNorthEastPanning;
     65     case WebCursorInfo::TypeNorthWestPanning:
     66       return ui::kCursorNorthWestPanning;
     67     case WebCursorInfo::TypeSouthPanning:
     68       return ui::kCursorSouthPanning;
     69     case WebCursorInfo::TypeSouthEastPanning:
     70       return ui::kCursorSouthEastPanning;
     71     case WebCursorInfo::TypeSouthWestPanning:
     72       return ui::kCursorSouthWestPanning;
     73     case WebCursorInfo::TypeWestPanning:
     74       return ui::kCursorWestPanning;
     75     case WebCursorInfo::TypeMove:
     76       return ui::kCursorMove;
     77     case WebCursorInfo::TypeVerticalText:
     78       return ui::kCursorVerticalText;
     79     case WebCursorInfo::TypeCell:
     80       return ui::kCursorCell;
     81     case WebCursorInfo::TypeContextMenu:
     82       return ui::kCursorContextMenu;
     83     case WebCursorInfo::TypeAlias:
     84       return ui::kCursorAlias;
     85     case WebCursorInfo::TypeProgress:
     86       return ui::kCursorProgress;
     87     case WebCursorInfo::TypeNoDrop:
     88       return ui::kCursorNoDrop;
     89     case WebCursorInfo::TypeCopy:
     90       return ui::kCursorCopy;
     91     case WebCursorInfo::TypeNone:
     92       return ui::kCursorNone;
     93     case WebCursorInfo::TypeNotAllowed:
     94       return ui::kCursorNotAllowed;
     95     case WebCursorInfo::TypeZoomIn:
     96       return ui::kCursorZoomIn;
     97     case WebCursorInfo::TypeZoomOut:
     98       return ui::kCursorZoomOut;
     99     case WebCursorInfo::TypeGrab:
    100       return ui::kCursorGrab;
    101     case WebCursorInfo::TypeGrabbing:
    102       return ui::kCursorGrabbing;
    103     case WebCursorInfo::TypeCustom: {
    104       ui::Cursor cursor(ui::kCursorCustom);
    105       cursor.SetPlatformCursor(GetPlatformCursor());
    106       return cursor;
    107     }
    108     default:
    109       NOTREACHED();
    110       return gfx::kNullCursor;
    111   }
    112 }
    113 
    114 }  // namespace content
    115