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 <windows.h>
8
9#include "third_party/WebKit/public/platform/WebCursorInfo.h"
10#include "ui/gfx/icon_util.h"
11
12namespace content {
13
14ui::PlatformCursor WebCursor::GetPlatformCursor() {
15  if (!IsCustom())
16    return LoadCursor(NULL, IDC_ARROW);
17
18  if (custom_cursor_)
19    return custom_cursor_;
20
21  custom_cursor_ =
22      IconUtil::CreateCursorFromDIB(
23          custom_size_,
24          hotspot_,
25          !custom_data_.empty() ? &custom_data_[0] : NULL,
26          custom_data_.size());
27  return custom_cursor_;
28}
29
30void WebCursor::SetDisplayInfo(const gfx::Display& display) {
31  // TODO(winguru): Add support for scaling the cursor.
32}
33
34void WebCursor::InitPlatformData() {
35  custom_cursor_ = NULL;
36}
37
38bool WebCursor::SerializePlatformData(Pickle* pickle) const {
39  return true;
40}
41
42bool WebCursor::DeserializePlatformData(PickleIterator* iter) {
43  return true;
44}
45
46bool WebCursor::IsPlatformDataEqual(const WebCursor& other) const {
47  return true;
48}
49
50void WebCursor::CleanupPlatformData() {
51  if (custom_cursor_) {
52    DestroyIcon(custom_cursor_);
53    custom_cursor_ = NULL;
54  }
55}
56
57void WebCursor::CopyPlatformData(const WebCursor& other) {
58}
59
60}  // namespace content
61