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 "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