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 7namespace ui { 8 9Cursor::Cursor() 10 : native_type_(0), 11 platform_cursor_(0), 12 device_scale_factor_(0.0f) { 13} 14 15Cursor::Cursor(int type) 16 : native_type_(type), 17 platform_cursor_(0), 18 device_scale_factor_(0.0f) { 19} 20 21Cursor::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 29Cursor::~Cursor() { 30 if (native_type_ == kCursorCustom) 31 UnrefCustomCursor(); 32} 33 34void 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 42void 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