diff options
author | sehr@google.com <sehr@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-12 19:50:19 +0000 |
---|---|---|
committer | sehr@google.com <sehr@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-12 19:50:19 +0000 |
commit | 36219a2b0fa0f23f2e5965c644b98c8b0df6e7ec (patch) | |
tree | 4eedce1b5008632ab49e4efca238d2b43fda452d /third_party/npapi | |
parent | d6d6d586d2a91d13d06a8bce53a2d03f2458f9c2 (diff) | |
download | chromium_src-36219a2b0fa0f23f2e5965c644b98c8b0df6e7ec.zip chromium_src-36219a2b0fa0f23f2e5965c644b98c8b0df6e7ec.tar.gz chromium_src-36219a2b0fa0f23f2e5965c644b98c8b0df6e7ec.tar.bz2 |
First version of pepper api implementation:
Adds a severely pared down version of webplugin_delegate files
that are not currently used to create any instances.
Also adds calls for render APIs that remain to be
connected to the impelementation. The function pointers are
returned by NPN_GetValue calls with new enumerated values.
I have also added Nicholas' NPEvent definitions.
These changes are to permit further collaboration between
sehr, brettw, and cpu.
Review URL: http://codereview.chromium.org/270024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28730 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/npapi')
-rw-r--r-- | third_party/npapi/bindings/npapi.h | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/third_party/npapi/bindings/npapi.h b/third_party/npapi/bindings/npapi.h index 628f00d..aac35e3 100644 --- a/third_party/npapi/bindings/npapi.h +++ b/third_party/npapi/bindings/npapi.h @@ -437,6 +437,15 @@ typedef enum { #endif , NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */ #endif +#ifdef PEPPER_APIS_ENABLED + /* + * Note: these APIs have not been ratified by Mozilla, et al. + * Until they are, they need to be distinct values from other enum + * elements here. + */ + , NPNVInitializeRenderContextFunc = 4000 /* A pointer to the InitializeRenderContext function */ + , NPNVFlushRenderContextFunc = 4001 /* A pointer to the FlushRenderContext function */ +#endif } NPNVariable; typedef enum { @@ -607,6 +616,7 @@ typedef enum { NPCoordinateSpaceFlippedScreen } NPCoordinateSpace; +#if !defined(PEPPER_APIS_ENABLED) #if defined(XP_MAC) || defined(XP_MACOSX) #ifndef NP_NO_CARBON @@ -737,6 +747,140 @@ enum NPEventType { #endif /* XP_MACOSX */ +#else // defined(PEPPER_APIS_ENABLED) +typedef enum { + NPMouseButton_None = -1, + NPMouseButton_Left = 0, + NPMouseButton_Middle = 1, + NPMouseButton_Right = 2, +} NPMouseButtons; + +typedef enum { + NPEventType_Undefined = -1, + NPEventType_MouseDown = 0, + NPEventType_MouseUp = 1, + NPEventType_MouseMove = 2, + NPEventType_MouseEnter = 3, + NPEventType_MouseLeave = 4, + NPEventType_MouseWheel = 5, + NPEventType_RawKeyDown = 6, + NPEventType_KeyDown = 7, + NPEventType_KeyUp = 8, + NPEventType_Char = 9, + NPEventType_Minimize = 10, + NPEventType_Focus = 11, + NPEventType_Device = 12 +} NPEventTypes; + +typedef enum { + NPEventModifier_ShiftKey = 1 << 0, + NPEventModifier_ControlKey = 1 << 1, + NPEventModifier_AltKey = 1 << 2, + NPEventModifier_MetaKey = 1 << 3, + NPEventModifier_IsKeyPad = 1 << 4, + NPEventModifier_IsAutoRepeat = 1 << 5, + NPEventModifier_LeftButtonDown = 1 << 6, + NPEventModifier_MiddleButtonDown = 1 << 7, + NPEventModifier_RightButtonDown = 1 << 8 +} NPEventModifiers; + +typedef struct _NPKeyEvent +{ + uint32 modifier; + uint32 normalizedKeyCode; +} NPKeyEvent; + +typedef struct _NPCharacterEvent +{ + uint32 modifier; + uint32 text; + uint32 unmodifiedText; +} NPCharacterEvent; + +typedef struct _NPMouseEvent +{ + uint32 modifier; + int32 button; + int32 x; + int32 y; + int32 clickCount; +} NPMouseEvent; + +typedef struct _NPMouseWheelEvent +{ + uint32 modifier; + float deltaX; + float deltaY; + float wheelTicksX; + float wheelTicksY; + uint32 scrollByPage; +} NPMouseWheelEvent; + +typedef struct _NPDeviceEvent { + uint32 device_uid; + uint32 subtype; + // uint8 generic[0]; +} NPDeviceEvent; + +typedef struct _NPMinimizeEvent { + int32 value; +} NPMinimizeEvent; + +typedef struct _NPFocusEvent { + int32 value; +} NPFocusEvent; + +typedef struct _NPEvent +{ + uint32 size; + int32 type; + double timeStampSeconds; + union { + NPKeyEvent key; + NPCharacterEvent character; + NPMouseEvent mouse; + NPMouseWheelEvent wheel; + NPMinimizeEvent minimize; + NPFocusEvent focus; + NPDeviceEvent device; + } u; +} NPEvent; + +typedef struct _NPRegion +{ + int32 x; + int32 y; + int32 w; + int32 h; +} NPRegion; + +typedef enum _NPRenderType +{ + NPRenderGraphicsRGBA +} NPRenderType; + +typedef struct _NPRenderContext +{ + union { + struct { + void* region; + int32 stride; + } graphicsRgba; + } u; +} NPRenderContext; + +typedef void (*NPFlushRenderContextCallbackPtr)(NPRenderContext* context, + NPError err, + void* userData); +typedef NPError (*NPInitializeRenderContextPtr)(NPP instance, + NPRenderType type, + NPRenderContext* context); +typedef NPError (*NPFlushRenderContextPtr)(NPP instance, + NPRenderContext* context, + NPFlushRenderContextCallbackPtr callback, + void* userData); +#endif // defined(PEPPER_APIS_ENABLED) + /* * Values for mode passed to NPP_New: */ |