• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
Cursor()9 Cursor::Cursor()
10     : native_type_(0),
11       platform_cursor_(0),
12       device_scale_factor_(0.0f) {
13 }
14 
Cursor(int type)15 Cursor::Cursor(int type)
16     : native_type_(type),
17       platform_cursor_(0),
18       device_scale_factor_(0.0f) {
19 }
20 
Cursor(const Cursor & cursor)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 
~Cursor()29 Cursor::~Cursor() {
30   if (native_type_ == kCursorCustom)
31     UnrefCustomCursor();
32 }
33 
SetPlatformCursor(const PlatformCursor & platform)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 
Assign(const Cursor & cursor)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