| Index: webkit/glue/webcursor.h
|
| ===================================================================
|
| --- webkit/glue/webcursor.h (revision 202599)
|
| +++ webkit/glue/webcursor.h (working copy)
|
| @@ -1,187 +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.
|
| -
|
| -#ifndef WEBKIT_GLUE_WEBCURSOR_H_
|
| -#define WEBKIT_GLUE_WEBCURSOR_H_
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebCursorInfo.h"
|
| -#include "ui/gfx/native_widget_types.h"
|
| -#include "ui/gfx/point.h"
|
| -#include "ui/gfx/size.h"
|
| -#include "webkit/glue/webkit_glue_export.h"
|
| -
|
| -#include <vector>
|
| -
|
| -#if defined(OS_WIN)
|
| -typedef struct HINSTANCE__* HINSTANCE;
|
| -typedef struct HICON__* HICON;
|
| -typedef HICON HCURSOR;
|
| -#elif defined(TOOLKIT_GTK)
|
| -typedef struct _GdkCursor GdkCursor;
|
| -#elif defined(OS_MACOSX)
|
| -#ifdef __OBJC__
|
| -@class NSCursor;
|
| -#else
|
| -class NSCursor;
|
| -#endif
|
| -#endif
|
| -
|
| -class Pickle;
|
| -class PickleIterator;
|
| -
|
| -// This class encapsulates a cross-platform description of a cursor. Platform
|
| -// specific methods are provided to translate the cross-platform cursor into a
|
| -// platform specific cursor. It is also possible to serialize / de-serialize a
|
| -// WebCursor.
|
| -class WEBKIT_GLUE_EXPORT WebCursor {
|
| - public:
|
| - struct CursorInfo {
|
| - explicit CursorInfo(WebKit::WebCursorInfo::Type cursor_type)
|
| - : type(cursor_type),
|
| - image_scale_factor(1) {
|
| -#if defined(OS_WIN)
|
| - external_handle = NULL;
|
| -#endif
|
| - }
|
| -
|
| - CursorInfo()
|
| - : type(WebKit::WebCursorInfo::TypePointer),
|
| - image_scale_factor(1) {
|
| -#if defined(OS_WIN)
|
| - external_handle = NULL;
|
| -#endif
|
| - }
|
| -
|
| - WebKit::WebCursorInfo::Type type;
|
| - gfx::Point hotspot;
|
| - float image_scale_factor;
|
| - SkBitmap custom_image;
|
| -#if defined(OS_WIN)
|
| - HCURSOR external_handle;
|
| -#endif
|
| - };
|
| -
|
| - WebCursor();
|
| - explicit WebCursor(const CursorInfo& cursor_info);
|
| - ~WebCursor();
|
| -
|
| - // Copy constructor/assignment operator combine.
|
| - WebCursor(const WebCursor& other);
|
| - const WebCursor& operator=(const WebCursor& other);
|
| -
|
| - // Conversion from/to CursorInfo.
|
| - void InitFromCursorInfo(const CursorInfo& cursor_info);
|
| - void GetCursorInfo(CursorInfo* cursor_info) const;
|
| -
|
| - // Serialization / De-serialization
|
| - bool Deserialize(PickleIterator* iter);
|
| - bool Serialize(Pickle* pickle) const;
|
| -
|
| - // Returns true if GetCustomCursor should be used to allocate a platform
|
| - // specific cursor object. Otherwise GetCursor should be used.
|
| - bool IsCustom() const;
|
| -
|
| - // Returns true if the current cursor object contains the same cursor as the
|
| - // cursor object passed in. If the current cursor is a custom cursor, we also
|
| - // compare the bitmaps to verify whether they are equal.
|
| - bool IsEqual(const WebCursor& other) const;
|
| -
|
| - // Returns a native cursor representing the current WebCursor instance.
|
| - gfx::NativeCursor GetNativeCursor();
|
| -
|
| -#if defined(OS_WIN)
|
| - // Initialize this from the given Windows cursor. The caller must ensure that
|
| - // the HCURSOR remains valid by not invoking the DestroyCursor/DestroyIcon
|
| - // APIs on it.
|
| - void InitFromExternalCursor(HCURSOR handle);
|
| -#endif
|
| -
|
| -#if defined(USE_AURA)
|
| - const ui::PlatformCursor GetPlatformCursor();
|
| -
|
| - void SetDeviceScaleFactor(float scale_factor);
|
| -#elif defined(OS_WIN)
|
| - // Returns a HCURSOR representing the current WebCursor instance.
|
| - // The ownership of the HCURSOR (does not apply to external cursors) remains
|
| - // with the WebCursor instance.
|
| - HCURSOR GetCursor(HINSTANCE module_handle);
|
| -
|
| -#elif defined(TOOLKIT_GTK)
|
| - // Return the stock GdkCursorType for this cursor, or GDK_CURSOR_IS_PIXMAP
|
| - // if it's a custom cursor. Return GDK_LAST_CURSOR to indicate that the cursor
|
| - // should be set to the system default.
|
| - // Returns an int so we don't need to include GDK headers in this header file.
|
| - int GetCursorType() const;
|
| -
|
| - // Return a new GdkCursor* for this cursor. Only valid if GetCursorType
|
| - // returns GDK_CURSOR_IS_PIXMAP.
|
| - GdkCursor* GetCustomCursor();
|
| -#elif defined(OS_MACOSX)
|
| - // Initialize this from the given Cocoa NSCursor.
|
| - void InitFromNSCursor(NSCursor* cursor);
|
| -#endif
|
| -
|
| - private:
|
| - // Copies the contents of the WebCursor instance passed in.
|
| - void Copy(const WebCursor& other);
|
| -
|
| - // Cleans up the WebCursor instance.
|
| - void Clear();
|
| -
|
| - // Platform specific initialization goes here.
|
| - void InitPlatformData();
|
| -
|
| - // Platform specific Serialization / De-serialization
|
| - bool SerializePlatformData(Pickle* pickle) const;
|
| - bool DeserializePlatformData(PickleIterator* iter);
|
| -
|
| - // Returns true if the platform data in the current cursor object
|
| - // matches that of the cursor passed in.
|
| - bool IsPlatformDataEqual(const WebCursor& other) const ;
|
| -
|
| - // Copies platform specific data from the WebCursor instance passed in.
|
| - void CopyPlatformData(const WebCursor& other);
|
| -
|
| - // Platform specific cleanup.
|
| - void CleanupPlatformData();
|
| -
|
| - void SetCustomData(const SkBitmap& image);
|
| - void ImageFromCustomData(SkBitmap* image) const;
|
| -
|
| - // Clamp the hotspot to the custom image's bounds, if this is a custom cursor.
|
| - void ClampHotspot();
|
| -
|
| - // WebCore::PlatformCursor type.
|
| - int type_;
|
| -
|
| - // Hotspot in cursor image in pixels.
|
| - gfx::Point hotspot_;
|
| -
|
| - // Custom cursor data, as 32-bit RGBA.
|
| - // Platform-inspecific because it can be serialized.
|
| - gfx::Size custom_size_; // In pixels.
|
| - float custom_scale_;
|
| - std::vector<char> custom_data_;
|
| -
|
| -#if defined(OS_WIN)
|
| - // An externally generated HCURSOR. We assume that it remains valid, i.e we
|
| - // don't attempt to copy the HCURSOR.
|
| - HCURSOR external_cursor_;
|
| -#endif
|
| -
|
| -#if defined(USE_AURA) && defined(USE_X11)
|
| - // Only used for custom cursors.
|
| - ui::PlatformCursor platform_cursor_;
|
| - float device_scale_factor_;
|
| -#elif defined(OS_WIN)
|
| - // A custom cursor created from custom bitmap data by Webkit.
|
| - HCURSOR custom_cursor_;
|
| -#elif defined(TOOLKIT_GTK)
|
| - // A custom cursor created that should be unref'ed from the destructor.
|
| - GdkCursor* unref_;
|
| -#endif
|
| -};
|
| -
|
| -#endif // WEBKIT_GLUE_WEBCURSOR_H_
|
|
|