diff options
Diffstat (limited to 'chromium/webkit/common/cursors/webcursor_win.cc')
-rw-r--r-- | chromium/webkit/common/cursors/webcursor_win.cc | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/chromium/webkit/common/cursors/webcursor_win.cc b/chromium/webkit/common/cursors/webcursor_win.cc deleted file mode 100644 index e825adf244e..00000000000 --- a/chromium/webkit/common/cursors/webcursor_win.cc +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/logging.h" -#include "base/pickle.h" -#include "grit/ui_unscaled_resources.h" -#include "third_party/WebKit/public/platform/WebCursorInfo.h" -#include "third_party/skia/include/core/SkBitmap.h" -#include "ui/gfx/icon_util.h" -#include "webkit/common/cursors/webcursor.h" - -using blink::WebCursorInfo; - -static LPCWSTR ToCursorID(WebCursorInfo::Type type) { - switch (type) { - case WebCursorInfo::TypePointer: - return IDC_ARROW; - case WebCursorInfo::TypeCross: - return IDC_CROSS; - case WebCursorInfo::TypeHand: - return IDC_HAND; - case WebCursorInfo::TypeIBeam: - return IDC_IBEAM; - case WebCursorInfo::TypeWait: - return IDC_WAIT; - case WebCursorInfo::TypeHelp: - return IDC_HELP; - case WebCursorInfo::TypeEastResize: - return IDC_SIZEWE; - case WebCursorInfo::TypeNorthResize: - return IDC_SIZENS; - case WebCursorInfo::TypeNorthEastResize: - return IDC_SIZENESW; - case WebCursorInfo::TypeNorthWestResize: - return IDC_SIZENWSE; - case WebCursorInfo::TypeSouthResize: - return IDC_SIZENS; - case WebCursorInfo::TypeSouthEastResize: - return IDC_SIZENWSE; - case WebCursorInfo::TypeSouthWestResize: - return IDC_SIZENESW; - case WebCursorInfo::TypeWestResize: - return IDC_SIZEWE; - case WebCursorInfo::TypeNorthSouthResize: - return IDC_SIZENS; - case WebCursorInfo::TypeEastWestResize: - return IDC_SIZEWE; - case WebCursorInfo::TypeNorthEastSouthWestResize: - return IDC_SIZENESW; - case WebCursorInfo::TypeNorthWestSouthEastResize: - return IDC_SIZENWSE; - case WebCursorInfo::TypeColumnResize: - return MAKEINTRESOURCE(IDC_COLRESIZE); - case WebCursorInfo::TypeRowResize: - return MAKEINTRESOURCE(IDC_ROWRESIZE); - case WebCursorInfo::TypeMiddlePanning: - return MAKEINTRESOURCE(IDC_PAN_MIDDLE); - case WebCursorInfo::TypeEastPanning: - return MAKEINTRESOURCE(IDC_PAN_EAST); - case WebCursorInfo::TypeNorthPanning: - return MAKEINTRESOURCE(IDC_PAN_NORTH); - case WebCursorInfo::TypeNorthEastPanning: - return MAKEINTRESOURCE(IDC_PAN_NORTH_EAST); - case WebCursorInfo::TypeNorthWestPanning: - return MAKEINTRESOURCE(IDC_PAN_NORTH_WEST); - case WebCursorInfo::TypeSouthPanning: - return MAKEINTRESOURCE(IDC_PAN_SOUTH); - case WebCursorInfo::TypeSouthEastPanning: - return MAKEINTRESOURCE(IDC_PAN_SOUTH_EAST); - case WebCursorInfo::TypeSouthWestPanning: - return MAKEINTRESOURCE(IDC_PAN_SOUTH_WEST); - case WebCursorInfo::TypeWestPanning: - return MAKEINTRESOURCE(IDC_PAN_WEST); - case WebCursorInfo::TypeMove: - return IDC_SIZEALL; - case WebCursorInfo::TypeVerticalText: - return MAKEINTRESOURCE(IDC_VERTICALTEXT); - case WebCursorInfo::TypeCell: - return MAKEINTRESOURCE(IDC_CELL); - case WebCursorInfo::TypeContextMenu: - return MAKEINTRESOURCE(IDC_ARROW); - case WebCursorInfo::TypeAlias: - return MAKEINTRESOURCE(IDC_ALIAS); - case WebCursorInfo::TypeProgress: - return IDC_APPSTARTING; - case WebCursorInfo::TypeNoDrop: - return IDC_NO; - case WebCursorInfo::TypeCopy: - return MAKEINTRESOURCE(IDC_COPYCUR); - case WebCursorInfo::TypeNone: - return MAKEINTRESOURCE(IDC_CURSOR_NONE); - case WebCursorInfo::TypeNotAllowed: - return IDC_NO; - case WebCursorInfo::TypeZoomIn: - return MAKEINTRESOURCE(IDC_ZOOMIN); - case WebCursorInfo::TypeZoomOut: - return MAKEINTRESOURCE(IDC_ZOOMOUT); - case WebCursorInfo::TypeGrab: - return MAKEINTRESOURCE(IDC_HAND_GRAB); - case WebCursorInfo::TypeGrabbing: - return MAKEINTRESOURCE(IDC_HAND_GRABBING); - } - NOTREACHED(); - return NULL; -} - -static bool IsSystemCursorID(LPCWSTR cursor_id) { - return cursor_id >= IDC_ARROW; // See WinUser.h -} - -HCURSOR WebCursor::GetCursor(HINSTANCE module_handle){ - if (!IsCustom()) { - const wchar_t* cursor_id = - ToCursorID(static_cast<WebCursorInfo::Type>(type_)); - - if (IsSystemCursorID(cursor_id)) - module_handle = NULL; - - return LoadCursor(module_handle, cursor_id); - } - - if (custom_cursor_) { - DCHECK(external_cursor_ == NULL); - return custom_cursor_; - } - - if (external_cursor_) - return external_cursor_; - - custom_cursor_ = - IconUtil::CreateCursorFromDIB( - custom_size_, - hotspot_, - !custom_data_.empty() ? &custom_data_[0] : NULL, - custom_data_.size()); - return custom_cursor_; -} - -gfx::NativeCursor WebCursor::GetNativeCursor() { - return GetCursor(NULL); -} - -void WebCursor::InitPlatformData() { - custom_cursor_ = NULL; -} - -bool WebCursor::SerializePlatformData(Pickle* pickle) const { - // There are some issues with converting certain HCURSORS to bitmaps. The - // HCURSOR being a user object can be marshaled as is. - // HCURSORs are always 32 bits on Windows, even on 64 bit systems. - return pickle->WriteUInt32(reinterpret_cast<uint32>(external_cursor_)); -} - -bool WebCursor::DeserializePlatformData(PickleIterator* iter) { - return iter->ReadUInt32(reinterpret_cast<uint32*>(&external_cursor_)); -} - -bool WebCursor::IsPlatformDataEqual(const WebCursor& other) const { - if (!IsCustom()) - return true; - - return (external_cursor_ == other.external_cursor_); -} - -void WebCursor::CopyPlatformData(const WebCursor& other) { - external_cursor_ = other.external_cursor_; - // The custom_cursor_ member will be initialized to a HCURSOR the next time - // the GetCursor member function is invoked on this WebCursor instance. The - // cursor is created using the data in the custom_data_ vector. - custom_cursor_ = NULL; -} - -void WebCursor::CleanupPlatformData() { - external_cursor_ = NULL; - - if (custom_cursor_) { - DestroyIcon(custom_cursor_); - custom_cursor_ = NULL; - } -} |