Home | History | Annotate | Download | only in cursor
      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 "ui/base/cursor/cursor.h"
      6 
      7 namespace ui {
      8 
      9 Cursor::Cursor()
     10     : native_type_(0),
     11       platform_cursor_(0),
     12       device_scale_factor_(0.0f) {
     13 }
     14 
     15 Cursor::Cursor(int type)
     16     : native_type_(type),
     17       platform_cursor_(0),
     18       device_scale_factor_(0.0f) {
     19 }
     20 
     21 Cursor::Cursor(const Cursor& cursor)
     22     : native_type_(cursor.native_type_),
     23       platform_cursor_(cursor.platform_cursor_),
     24       device_scale_factor_(cursor.device_scale_factor_) {
     25   if (native_type_ == kCursorCustom)
     26     RefCustomCursor();
     27 }
     28 
     29 Cursor::~Cursor() {
     30   if (native_type_ == kCursorCustom)
     31     UnrefCustomCursor();
     32 }
     33 
     34 void Cursor::SetPlatformCursor(const PlatformCursor& platform) {
     35   if (native_type_ == kCursorCustom)
     36     UnrefCustomCursor();
     37   platform_cursor_ = platform;
     38   if (native_type_ == kCursorCustom)
     39     RefCustomCursor();
     40 }
     41 
     42 void Cursor::Assign(const Cursor& cursor) {
     43   if (*this == cursor)
     44     return;
     45   if (native_type_ == kCursorCustom)
     46     UnrefCustomCursor();
     47   native_type_ = cursor.native_type_;
     48   platform_cursor_ = cursor.platform_cursor_;
     49   if (native_type_ == kCursorCustom)
     50     RefCustomCursor();
     51   device_scale_factor_ = cursor.device_scale_factor_;
     52 }
     53 
     54 }  // namespace ui
     55