| Index: webkit/glue/webcursor.h
|
| ===================================================================
|
| --- webkit/glue/webcursor.h (revision 7750)
|
| +++ webkit/glue/webcursor.h (working copy)
|
| @@ -5,6 +5,7 @@
|
| #ifndef WEBKIT_GLUE_WEBCURSOR_H_
|
| #define WEBKIT_GLUE_WEBCURSOR_H_
|
|
|
| +#include "base/basictypes.h"
|
| #include "base/gfx/point.h"
|
| #include "base/gfx/size.h"
|
|
|
| @@ -40,7 +41,12 @@
|
| public:
|
| WebCursor();
|
| explicit WebCursor(const WebCore::PlatformCursor& platform_cursor);
|
| + ~WebCursor();
|
|
|
| + // Copy constructor/assignment operator combine.
|
| + WebCursor(const WebCursor& other);
|
| + const WebCursor& operator=(const WebCursor& other);
|
| +
|
| // Serialization / De-serialization
|
| bool Deserialize(const Pickle* pickle, void** iter);
|
| bool Serialize(Pickle* pickle) const;
|
| @@ -55,18 +61,16 @@
|
| bool IsEqual(const WebCursor& other) const;
|
|
|
| #if defined(OS_WIN)
|
| - // If the underlying cursor type is not a custom cursor, this functions uses
|
| - // the LoadCursor API to load the cursor and returns it. The caller SHOULD
|
| - // NOT pass the resulting handling to DestroyCursor. Returns NULL on error.
|
| - HCURSOR GetCursor(HINSTANCE module_handle) const;
|
| + // 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);
|
|
|
| - // If the underlying cursor type is a custom cursor, this function generates
|
| - // a cursor and returns it. The responsiblity of freeing the cursor handle
|
| - // lies with the caller. Returns NULL on error.
|
| - HCURSOR GetCustomCursor() const;
|
| + // 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);
|
|
|
| - // Initialize this from the given Windows cursor.
|
| - void InitFromCursor(HCURSOR handle);
|
| #elif defined(OS_LINUX)
|
| // Return the stock GdkCursorType for this cursor, or GDK_CURSOR_IS_PIXMAP
|
| // if it's a custom cursor.
|
| @@ -80,6 +84,29 @@
|
| #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(const Pickle* pickle, void** 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(WebCore::Image* image);
|
|
|
| // WebCore::PlatformCursor type.
|
| @@ -91,6 +118,14 @@
|
| // Platform-inspecific because it can be serialized.
|
| gfx::Size custom_size_;
|
| 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_;
|
| + // A custom cursor created from custom bitmap data by Webkit.
|
| + HCURSOR custom_cursor_;
|
| +#endif // OS_WIN
|
| };
|
|
|
| #endif // WEBKIT_GLUE_WEBCURSOR_H_
|
|
|