1643ca7872b450ea4efacab6188849e5aac2ba161Steve Block/* 2643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * Copyright (C) 2009 Google Inc. All rights reserved. 3643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 4643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * Redistribution and use in source and binary forms, with or without 5643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * modification, are permitted provided that the following conditions are 6643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * met: 7643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 8643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * * Redistributions of source code must retain the above copyright 9643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * notice, this list of conditions and the following disclaimer. 10643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * * Redistributions in binary form must reproduce the above 11643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * copyright notice, this list of conditions and the following disclaimer 12643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * in the documentation and/or other materials provided with the 13643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * distribution. 14643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * * Neither the name of Google Inc. nor the names of its 15643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * contributors may be used to endorse or promote products derived from 16643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * this software without specific prior written permission. 17643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 18643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29643ca7872b450ea4efacab6188849e5aac2ba161Steve Block */ 30643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 31643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#ifndef WebCursorInfo_h 32643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#define WebCursorInfo_h 33643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 34643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebImage.h" 35643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebPoint.h" 36643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 37643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#if WEBKIT_IMPLEMENTATION 38643ca7872b450ea4efacab6188849e5aac2ba161Steve Blocknamespace WebCore { class Cursor; } 39643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 40643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 41643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#ifdef WIN32 42643ca7872b450ea4efacab6188849e5aac2ba161Steve Blocktypedef struct HICON__* HICON; 43643ca7872b450ea4efacab6188849e5aac2ba161Steve Blocktypedef HICON HCURSOR; 44643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 45643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 46643ca7872b450ea4efacab6188849e5aac2ba161Steve Blocknamespace WebKit { 47643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 48643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockstruct WebCursorInfo { 49643ca7872b450ea4efacab6188849e5aac2ba161Steve Block enum Type { 50643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypePointer, 51643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeCross, 52643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeHand, 53643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeIBeam, 54643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeWait, 55643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeHelp, 56643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeEastResize, 57643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthResize, 58643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthEastResize, 59643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthWestResize, 60643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeSouthResize, 61643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeSouthEastResize, 62643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeSouthWestResize, 63643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeWestResize, 64643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthSouthResize, 65643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeEastWestResize, 66643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthEastSouthWestResize, 67643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthWestSouthEastResize, 68643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeColumnResize, 69643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeRowResize, 70643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeMiddlePanning, 71643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeEastPanning, 72643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthPanning, 73643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthEastPanning, 74643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNorthWestPanning, 75643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeSouthPanning, 76643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeSouthEastPanning, 77643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeSouthWestPanning, 78643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeWestPanning, 79643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeMove, 80643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeVerticalText, 81643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeCell, 82643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeContextMenu, 83643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeAlias, 84643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeProgress, 85643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNoDrop, 86643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeCopy, 87643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNone, 88643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeNotAllowed, 89643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeZoomIn, 90643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeZoomOut, 9181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TypeGrab, 9281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch TypeGrabbing, 93643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TypeCustom 94643ca7872b450ea4efacab6188849e5aac2ba161Steve Block }; 95643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 96643ca7872b450ea4efacab6188849e5aac2ba161Steve Block Type type; 97643ca7872b450ea4efacab6188849e5aac2ba161Steve Block WebPoint hotSpot; 98643ca7872b450ea4efacab6188849e5aac2ba161Steve Block WebImage customImage; 99643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 100643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#ifdef WIN32 101643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // On Windows, TypeCustom may alternatively reference an externally 102643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // defined HCURSOR. If type is TypeCustom and externalHandle is non- 103643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // null, then customData should be ignored. The WebCursorInfo is not 104643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // responsible for managing the lifetime of this cursor handle. 105643ca7872b450ea4efacab6188849e5aac2ba161Steve Block HCURSOR externalHandle; 106643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 107643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 108643ca7872b450ea4efacab6188849e5aac2ba161Steve Block explicit WebCursorInfo(Type type = TypePointer) 109643ca7872b450ea4efacab6188849e5aac2ba161Steve Block : type(type) 110643ca7872b450ea4efacab6188849e5aac2ba161Steve Block { 111643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#ifdef WIN32 112643ca7872b450ea4efacab6188849e5aac2ba161Steve Block externalHandle = 0; 113643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 114643ca7872b450ea4efacab6188849e5aac2ba161Steve Block } 115643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 116643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#if WEBKIT_IMPLEMENTATION 117643ca7872b450ea4efacab6188849e5aac2ba161Steve Block explicit WebCursorInfo(const WebCore::Cursor&); 118643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 119643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}; 120643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 121643ca7872b450ea4efacab6188849e5aac2ba161Steve Block} // namespace WebKit 122643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 123643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 124