summaryrefslogtreecommitdiffstats
path: root/third_party/npapi
diff options
context:
space:
mode:
authorsehr@google.com <sehr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-12 19:50:19 +0000
committersehr@google.com <sehr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-12 19:50:19 +0000
commit36219a2b0fa0f23f2e5965c644b98c8b0df6e7ec (patch)
tree4eedce1b5008632ab49e4efca238d2b43fda452d /third_party/npapi
parentd6d6d586d2a91d13d06a8bce53a2d03f2458f9c2 (diff)
downloadchromium_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.h144
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:
*/