webcursor_aurawin.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "content/common/cursors/webcursor.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <windows.h> 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebCursorInfo.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/icon_util.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace content { 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciui::PlatformCursor WebCursor::GetPlatformCursor() { 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!IsCustom()) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return LoadCursor(NULL, IDC_ARROW); 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (custom_cursor_) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return custom_cursor_; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) custom_cursor_ = 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IconUtil::CreateCursorFromDIB( 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) custom_size_, 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) hotspot_, 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !custom_data_.empty() ? &custom_data_[0] : NULL, 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) custom_data_.size()); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return custom_cursor_; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 302385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochvoid WebCursor::SetDisplayInfo(const gfx::Display& display) { 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(winguru): Add support for scaling the cursor. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void WebCursor::InitPlatformData() { 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) custom_cursor_ = NULL; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool WebCursor::SerializePlatformData(Pickle* pickle) const { 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool WebCursor::DeserializePlatformData(PickleIterator* iter) { 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool WebCursor::IsPlatformDataEqual(const WebCursor& other) const { 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void WebCursor::CleanupPlatformData() { 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (custom_cursor_) { 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DestroyIcon(custom_cursor_); 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) custom_cursor_ = NULL; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void WebCursor::CopyPlatformData(const WebCursor& other) { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace content 61