15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* ***** BEGIN LICENSE BLOCK *****
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Version: MPL 1.1/GPL 2.0/LGPL 2.1
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The contents of this file are subject to the Mozilla Public License Version
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1.1 (the "License"); you may not use this file except in compliance with
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the License. You may obtain a copy of the License at
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.mozilla.org/MPL/
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Software distributed under the License is distributed on an "AS IS" basis,
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * for the specific language governing rights and limitations under the
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * License.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Original Code is mozilla.org code.
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Initial Developer of the Original Code is
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Netscape Communications Corporation.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Portions created by the Initial Developer are Copyright (C) 1998
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the Initial Developer. All Rights Reserved.
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contributor(s):
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Alternatively, the contents of this file may be used under the terms of
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * either the GNU General Public License Version 2 or later (the "GPL"), or
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in which case the provisions of the GPL or the LGPL are applicable instead
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of those above. If you wish to allow use of your version of this file only
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * under the terms of either the GPL or the LGPL, and not to allow others to
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * use your version of this file under the terms of the MPL, indicate your
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * decision by deleting the provisions above and replace them with the notice
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and other provisions required by the GPL or the LGPL. If you do not delete
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the provisions above, a recipient may use your version of this file under
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the terms of any one of the MPL, the GPL or the LGPL.
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ***** END LICENSE BLOCK ***** */
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef npapi_h_
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define npapi_h_
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__OS2__)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma pack(1)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* BEGIN GOOGLE MODIFICATIONS */
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef __native_client__
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "nptypes.h"
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __native_client__
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdint.h>
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <sys/types.h>
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* __native_client__ */
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* END GOOGLE MODIFICATIONS */
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__OS2__) || defined(OS2)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef XP_OS2
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XP_OS2 1
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(_WIN32) && !defined(__SYMBIAN32__)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <windows.h>
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef XP_WIN
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XP_WIN 1
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* BEGIN GOOGLE MODIFICATIONS */
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* On Linux and Mac, be sure to set Mozilla-specific macros. */
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(USE_X11)
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(XP_UNIX)
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XP_UNIX 1
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(MOZ_X11)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MOZ_X11 1
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* END GOOGLE MODIFICATIONS */
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__SYMBIAN32__)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef XP_SYMBIAN
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XP_SYMBIAN 1
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef XP_WIN
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__APPLE_CC__) && !defined(XP_UNIX)
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef XP_MACOSX
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XP_MACOSX 1
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX) && defined(__LP64__)
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_NO_QUICKDRAW
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_NO_CARBON
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <ApplicationServices/ApplicationServices.h>
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <OpenGL/OpenGL.h>
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_CARBON
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <Carbon/Carbon.h>
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_UNIX)
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdio.h>
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* BEGIN GOOGLE MODIFICATIONS */
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if 0
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* END GOOGLE MODIFICATIONS */
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(MOZ_X11)
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <X11/Xlib.h>
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <X11/Xutil.h>
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* BEGIN GOOGLE MODIFICATIONS */
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* END GOOGLE MODIFICATIONS */
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_SYMBIAN)
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <QEvent>
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <QRegion>
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                        Plugin Version Constants                      */
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_VERSION_MAJOR 0
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_VERSION_MINOR 27
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The OS/2 version of Netscape uses RC_DATA to define the
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   mime types, file extensions, etc that are required.
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Use a vertical bar to separate types, end types with \0.
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   FileVersion and ProductVersion are 32bit ints, all other
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   entries are strings that MUST be terminated with a \0.
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AN EXAMPLE:
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_ProductVersion { 1,0,0,1,}
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_MIMEType    { "video/x-video|",
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             "video/x-flick\0" }
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileExtents { "avi|",
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             "flc\0" }
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileOpenName{ "MMOS2 video player(*.avi)|",
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             "MMOS2 Flc/Fli player(*.flc)\0" }
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileVersion       { 1,0,0,1 }
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_CompanyName       { "Netscape Communications\0" }
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileDescription   { "NPAVI32 Extension DLL\0"
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_InternalName      { "NPAVI32\0" )
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_LegalCopyright    { "Copyright Netscape Communications \251 1996\0"
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_OriginalFilename  { "NVAPI32.DLL" }
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_ProductName       { "NPAVI32 Dynamic Link Library\0" }
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* RC_DATA types for version info - required */
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_ProductVersion      1
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_MIMEType            2
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileOpenName        3
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileExtents         4
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* RC_DATA types for version info - used if found */
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileDescription     5
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_ProductName         6
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* RC_DATA types for version info - optional */
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_CompanyName         7
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileVersion         8
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_InternalName        9
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_LegalCopyright      10
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_OriginalFilename    11
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef RC_INVOKED
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                       Definition of Basic Types                      */
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned char NPBool;
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int16_t       NPError;
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int16_t       NPReason;
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef char*         NPMIMEType;
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                       Structures and definitions                     */
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(__LP64__)
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma options align=mac68k
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __LP64__ */
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NPP is a plug-in's opaque instance handle
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPP
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* pdata;      /* plug-in private data */
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* ndata;      /* netscape private data */
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPP_t;
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NPP_t*  NPP;
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPStream
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*    pdata; /* plug-in private data */
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*    ndata; /* netscape private data */
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const    char* url;
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t end;
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t lastmodified;
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*    notifyData;
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const    char* headers; /* Response headers from host.
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * Exists only for >= NPVERS_HAS_RESPONSE_HEADERS.
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * Used for HTTP only; NULL for non-HTTP.
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * Available from NPP_NewStream onwards.
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * Plugin should copy this data before storing it.
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * Includes HTTP status line and all headers,
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * preferably verbatim as received from server,
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * headers formatted as in HTTP ("Header: Value"),
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * and newlines (\n, NOT \r\n) separating lines.
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           * Terminated by \n\0 (NOT \n\n\0). */
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPStream;
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPByteRange
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t  offset; /* negative offset means from the end */
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t length;
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct _NPByteRange* next;
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPByteRange;
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPSavedData
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t len;
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*   buf;
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPSavedData;
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPRect
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16_t top;
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16_t left;
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16_t bottom;
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16_t right;
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPRect;
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPSize
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t width;
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t height;
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPSize;
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPFocusNext = 0,
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPFocusPrevious = 1
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPFocusDirection;
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Return values for NPP_HandleEvent */
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kNPEventNotHandled 0
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kNPEventHandled 1
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Exact meaning must be spec'd in event model. */
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kNPEventStartIME 2
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_UNIX)
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unix specific structures and definitions
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Callback Structures.
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * These are used to pass additional platform specific information.
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum {
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NP_SETWINDOW = 1,
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NP_PRINT
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t type;
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPAnyCallbackStruct;
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* BEGIN GOOGLE MODIFICATIONS */
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPSetWindowCallbackStruct NPSetWindowCallbackStruct;
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* END GOOGLE MODIFICATIONS */
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t type;
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FILE* fp;
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPPrintCallbackStruct;
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_UNIX */
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_QUICKDRAW
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPDrawingModelQuickDraw = 0,
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPDrawingModelCoreGraphics = 1,
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPDrawingModelOpenGL = 2,
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPDrawingModelCoreAnimation = 3,
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPDrawingModelInvalidatingCoreAnimation = 4
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPDrawingModel;
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_CARBON
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventModelCarbon = 0,
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventModelCocoa = 1
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPEventModel;
3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   The following masks are applied on certain platforms to NPNV and
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   NPPV selectors that pass around pointers to COM interfaces. Newer
3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   compilers on some platforms may generate vtables that are not
3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   compatible with older compilers. To prevent older plugins from
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   not understanding a new browser's ABI, these masks change the
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   values of those selectors on those platforms. To remain backwards
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   compatible with different versions of the browser, plugins can
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   use these masks to dynamically determine and use the correct C++
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   ABI that the browser is expecting. This does not apply to Windows
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   as Microsoft's COM ABI will likely not change.
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ABI_GCC3_MASK  0x10000000
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   gcc 3.x generated vtables on UNIX and OSX are incompatible with
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   previous compilers.
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_GCC3 0
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ABI_MACHO_MASK 0x01000000
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_MACHO 0
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO)
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * List of variable names for which NPP_GetValue shall be implemented
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginNameString = 1,
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginDescriptionString,
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginWindowBool,
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginTransparentBool,
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVjavaClass,
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginWindowSize,
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginTimerInterval,
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginScriptableInstance = (10 | NP_ABI_MASK),
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginScriptableIID = 11,
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVjavascriptPushCallerBool = 12,
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginKeepLibraryInMemory = 13,
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginNeedsXEmbed         = 14,
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the NPObject for scripting the plugin. Introduced in NPAPI minor version 14.
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginScriptableNPObject  = 15,
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the plugin value (as \0-terminated UTF-8 string data) for
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * form submission if the plugin is part of a form. Use
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * NPN_MemAlloc() to allocate memory for the string data. Introduced
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * in NPAPI minor version 15.
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVformValue = 16,
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginUrlRequestsDisplayedBool = 17,
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Checks if the plugin is interested in receiving the http body of
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * all http requests (including failed ones, http status != 200).
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginWantsAllNetworkStreams = 18,
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Browsers can retrieve a native ATK accessibility plug ID via this variable. */
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginNativeAccessibleAtkPlugId = 19,
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Checks to see if the plug-in would like the browser to load the "src" attribute. */
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginCancelSrcStream = 20,
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVsupportsAdvancedKeyHandling = 21,
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginUsesDOMForCursorBool = 22
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Used for negotiating drawing models */
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPPVpluginDrawingModel = 1000
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Used for negotiating event models */
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPPVpluginEventModel = 1001
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPPVpluginCoreAnimationLayer = 1003
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(MOZ_PLATFORM_MAEMO) && ((MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6))
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPPVpluginWindowlessLocalBool = 2002
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPPVariable;
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * List of variable names for which NPN_GetValue should be implemented.
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVxDisplay = 1,
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVxtAppContext,
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVnetscapeWindow,
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVjavascriptEnabledBool,
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVasdEnabledBool,
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVisOfflineBool,
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVserviceManager = (10 | NP_ABI_MASK),
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVDOMElement     = (11 | NP_ABI_MASK),
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVDOMWindow      = (12 | NP_ABI_MASK),
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVToolkit        = (13 | NP_ABI_MASK),
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVSupportsXEmbedBool = 14,
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the NPObject wrapper for the browser window. */
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVWindowNPObject = 15,
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the NPObject wrapper for the plugins DOM element. */
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVPluginElementNPObject = 16,
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVSupportsWindowless = 17,
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVprivateModeBool = 18,
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVsupportsAdvancedKeyHandling = 21,
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVdocumentOrigin = 22
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Used for negotiating drawing models */
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVpluginDrawingModel = 1000
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_QUICKDRAW
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsQuickDrawBool = 2000
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsCoreGraphicsBool = 2001
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsOpenGLBool = 2002
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsCoreAnimationBool = 2003
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsInvalidatingCoreAnimationBool = 2004
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_CARBON
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsCarbonBool = 3000 /* TRUE if the browser supports the Carbon event model */
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsUpdatedCocoaTextInputBool = 3002 /* TRUE if the browser supports the updated
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                    Cocoa text input specification. */
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsCompositingCoreAnimationPluginsBool = 74656 /* TRUE if the browser supports
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                               CA model compositing */
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(MOZ_PLATFORM_MAEMO) && ((MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6))
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVSupportsWindowlessLocal = 2002
4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPNVariable;
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNURLVCookie = 501,
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNURLVProxy
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPNURLVariable;
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The type of Toolkit the widgets use
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVGtk12 = 1,
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVGtk2
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPNToolkitType;
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The type of a NPWindow - it specifies the type of the data structure
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * returned in the window field.
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindowTypeWindow = 1,
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindowTypeDrawable
4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPWindowType;
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPWindow
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* window;  /* Platform specific window handle */
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 /* OS/2: x - Position of bottom left corner */
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 /* OS/2: y - relative to visible netscape window */
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t  x;      /* Position of top left corner relative */
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t  y;      /* to a netscape page. */
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t width;  /* Maximum window size */
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t height;
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPRect   clipRect; /* Clipping rectangle in port coordinates */
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined(XP_UNIX) || defined(XP_SYMBIAN)) && !defined(XP_MACOSX)
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void * ws_info; /* Platform-dependent additional data */
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_UNIX */
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindowType type; /* Is this a window or a drawable? */
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPWindow;
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPImageExpose
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char*    data;       /* image pointer */
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t  stride;     /* Stride of data image pointer */
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t  depth;      /* Depth of image pointer */
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t  x;          /* Expose x */
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t  y;          /* Expose y */
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t width;      /* Expose width */
5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t height;     /* Expose height */
5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPSize   dataSize;   /* Data buffer size */
5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float    translateX; /* translate X matrix value */
5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float    translateY; /* translate Y matrix value */
5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float    scaleX;     /* scale X matrix value */
5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float    scaleY;     /* scale Y matrix value */
5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPImageExpose;
5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPFullPrint
5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPBool pluginPrinted;/* Set TRUE if plugin handled fullscreen printing */
5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPBool printOne;     /* TRUE if plugin should print one copy to default
5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                          printer */
5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* platformPrint; /* Platform-specific printing info */
5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPFullPrint;
5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPEmbedPrint
5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindow window;
5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* platformPrint; /* Platform-specific printing info */
5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPEmbedPrint;
5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPPrint
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16_t mode;               /* NP_FULL or NP_EMBED */
5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  union
5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    NPFullPrint fullPrint;   /* if mode is NP_FULL */
5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    NPEmbedPrint embedPrint; /* if mode is NP_EMBED */
5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } print;
5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPPrint;
5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_CARBON
5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef EventRecord NPEvent;
5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_SYMBIAN)
5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef QEvent NPEvent;
5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_WIN)
5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPEvent
5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16_t event;
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uintptr_t wParam;
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uintptr_t lParam;
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPEvent;
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_OS2)
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPEvent
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t event;
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t wParam;
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t lParam;
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPEvent;
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_UNIX) && defined(MOZ_X11)
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* BEGIN GOOGLE MODIFICATIONS */
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef union _XEvent XEvent;
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* END GOOGLE MODIFICATIONS */
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef XEvent NPEvent;
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void*  NPEvent;
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void* NPRegion;
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_QUICKDRAW
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef RgnHandle NPQDRegion;
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef CGPathRef NPCGRegion;
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_WIN)
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef HRGN NPRegion;
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_UNIX) && defined(MOZ_X11)
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* BEGIN GOOGLE MODIFICATIONS */
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _XRegion *Region;
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* END GOOGLE MODIFICATIONS */
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef Region NPRegion;
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_SYMBIAN)
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef QRegion* NPRegion;
5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void *NPRegion;
5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPNSString NPNSString;
5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPNSWindow NPNSWindow;
5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPNSMenu   NPNSMenu;
5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NPNSMenu NPMenu;
5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void *NPMenu;
6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCoordinateSpacePlugin = 1,
6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCoordinateSpaceWindow,
6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCoordinateSpaceFlippedWindow,
6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCoordinateSpaceScreen,
6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCoordinateSpaceFlippedScreen
6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPCoordinateSpace;
6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_QUICKDRAW
6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct NP_Port
6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CGrafPtr port;
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t portx; /* position inside the topmost window */
6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t porty;
6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NP_Port;
6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* NP_NO_QUICKDRAW */
6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics
6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * as its drawing model.
6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct NP_CGContext
6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CGContextRef context;
6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void *window; /* A WindowRef under the Carbon event model. */
6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NP_CGContext;
6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * NP_GLContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelOpenGL as its
6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * drawing model.
6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct NP_GLContext
6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CGLContextObj context;
6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef NP_NO_CARBON
6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNSWindow *window;
6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void *window; /* Can be either an NSWindow or a WindowRef depending on the event model */
6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NP_GLContext;
6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventDrawRect = 1,
6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventMouseDown,
6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventMouseUp,
6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventMouseMoved,
6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventMouseEntered,
6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventMouseExited,
6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventMouseDragged,
6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventKeyDown,
6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventKeyUp,
6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventFlagsChanged,
6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventFocusChanged,
6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventWindowFocusChanged,
6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventScrollWheel,
6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventTextInput
6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPCocoaEventType;
6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPCocoaEvent {
6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPCocoaEventType type;
6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t version;
6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  union {
6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct {
6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      uint32_t modifierFlags;
6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double   pluginX;
6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double   pluginY;
6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      int32_t  buttonNumber;
6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      int32_t  clickCount;
6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double   deltaX;
6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double   deltaY;
6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double   deltaZ;
6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    } mouse;
6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct {
6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      uint32_t    modifierFlags;
6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NPNSString *characters;
6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NPNSString *charactersIgnoringModifiers;
6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NPBool      isARepeat;
6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      uint16_t    keyCode;
6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    } key;
6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct {
6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      CGContextRef context;
6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double x;
6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double y;
6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double width;
6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      double height;
6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    } draw;
6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct {
6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NPBool hasFocus;
6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    } focus;
6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    struct {
6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NPNSString *text;
6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    } text;
6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } data;
6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPCocoaEvent;
7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_CARBON
7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Non-standard event types that can be passed to HandleEvent */
7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum NPEventType {
7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_GetFocusEvent = (osEvt + 16),
7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_LoseFocusEvent,
7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_AdjustCursorEvent,
7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_MenuCommandEvent,
7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_ClippingChangedEvent,
7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_ScrollingBeginsEvent = 1000,
7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_ScrollingEndsEvent
7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* NP_NO_CARBON */
7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_MACOSX */
7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values for mode passed to NPP_New:
7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_EMBED 1
7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_FULL  2
7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values for stream type passed to NPP_NewStream:
7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_NORMAL     1
7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_SEEK       2
7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ASFILE     3
7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ASFILEONLY 4
7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_MAXREADY (((unsigned)(~0)<<1)>>1)
7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Flags for NPP_ClearSiteData.
7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_CLEAR_ALL   0
7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_CLEAR_CACHE (1 << 0)
7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(__LP64__)
7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_MACOSX)
7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma options align=reset
7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __LP64__ */
7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*       Error and Reason Code definitions                              */
7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values of type NPError:
7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_BASE                         0
7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_NO_ERROR                    (NPERR_BASE + 0)
7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_GENERIC_ERROR               (NPERR_BASE + 1)
7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_INSTANCE_ERROR      (NPERR_BASE + 2)
7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_FUNCTABLE_ERROR     (NPERR_BASE + 3)
7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_MODULE_LOAD_FAILED_ERROR    (NPERR_BASE + 4)
7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_OUT_OF_MEMORY_ERROR         (NPERR_BASE + 5)
7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_PLUGIN_ERROR        (NPERR_BASE + 6)
7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_PLUGIN_DIR_ERROR    (NPERR_BASE + 7)
7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INCOMPATIBLE_VERSION_ERROR  (NPERR_BASE + 8)
7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_PARAM               (NPERR_BASE + 9)
7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_URL                 (NPERR_BASE + 10)
7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_FILE_NOT_FOUND              (NPERR_BASE + 11)
7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_NO_DATA                     (NPERR_BASE + 12)
7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_STREAM_NOT_SEEKABLE         (NPERR_BASE + 13)
7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_TIME_RANGE_NOT_SUPPORTED    (NPERR_BASE + 14)
7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_MALFORMED_SITE              (NPERR_BASE + 15)
7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values of type NPReason:
7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_BASE          0
7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_DONE         (NPRES_BASE + 0)
7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_NETWORK_ERR  (NPRES_BASE + 1)
7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_USER_BREAK   (NPRES_BASE + 2)
7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Don't use these obsolete error codes any more.
7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_NOERR  NP_NOERR_is_obsolete_use_NPERR_NO_ERROR
7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR
7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK
7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Version feature information
7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_STREAMOUTPUT             8
7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_NOTIFICATION             9
7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_LIVECONNECT              9
7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_68K_HAS_LIVECONNECT          11
7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_WINDOWLESS               11
7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_XPCONNECT_SCRIPTING      13
7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_NPRUNTIME_SCRIPTING      14
7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_FORM_VALUES              15
7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_POPUPS_ENABLED_STATE     16
7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_RESPONSE_HEADERS         17
7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_NPOBJECT_ENUM            18
7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL 19
7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_ALL_NETWORK_STREAMS      20
8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_URL_AND_AUTH_INFO        21
8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_PRIVATE_MODE             22
8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_MACOSX_HAS_COCOA_EVENTS      23
8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_ADVANCED_KEY_HANDLING    25
8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_URL_REDIRECT_HANDLING    26
8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_CLEAR_SITE_DATA          27
8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                        Function Prototypes                           */
8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__OS2__)
8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_LOADDS _System
8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_LOADDS
8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* NPP_* functions are provided by the plugin and called by the navigator. */
8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_UNIX)
8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* NPP_GetMIMEDescription(void);
8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance,
8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                          uint16_t mode, int16_t argc, char* argn[],
8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                          char* argv[], NPSavedData* saved);
8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save);
8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window);
8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type,
8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                NPStream* stream, NPBool seekable,
8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                uint16_t* stype);
8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream,
8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                    NPReason reason);
8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32_t NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream);
8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32_t NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32_t offset,
8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            int32_t len, void* buffer);
8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream,
8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   const char* fname);
8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint);
8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int16_t NP_LOADDS NPP_HandleEvent(NPP instance, void* event);
8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_URLNotify(NPP instance, const char* url,
8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                NPReason reason, void* notifyData);
8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_GetValue(NPP instance, NPPVariable variable, void *value);
8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_SetValue(NPP instance, NPNVariable variable, void *value);
8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPBool  NP_LOADDS NPP_GotFocus(NPP instance, NPFocusDirection direction);
8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_LostFocus(NPP instance);
8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_URLRedirectNotify(NPP instance, const char* url, int32_t status, void* notifyData);
8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_ClearSiteData(const char* site, uint64_t flags, uint64_t maxAge);
8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char**  NP_LOADDS NPP_GetSitesWithData(void);
8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* NPN_* functions are provided by the navigator and called by the plugin. */
8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_Version(int* plugin_major, int* plugin_minor,
8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  int* netscape_major, int* netscape_minor);
8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_GetURLNotify(NPP instance, const char* url,
8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                       const char* target, void* notifyData);
8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_GetURL(NPP instance, const char* url,
8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 const char* target);
8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_PostURLNotify(NPP instance, const char* url,
8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        const char* target, uint32_t len,
8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        const char* buf, NPBool file,
8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        void* notifyData);
8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_PostURL(NPP instance, const char* url,
8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  const char* target, uint32_t len,
8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  const char* buf, NPBool file);
8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);
8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_NewStream(NPP instance, NPMIMEType type,
8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                    const char* target, NPStream** stream);
8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32_t     NP_LOADDS NPN_Write(NPP instance, NPStream* stream, int32_t len,
8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                void* buffer);
8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_DestroyStream(NPP instance, NPStream* stream,
8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        NPReason reason);
8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_Status(NPP instance, const char* message);
8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* NP_LOADDS NPN_UserAgent(NPP instance);
8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void*       NP_LOADDS NPN_MemAlloc(uint32_t size);
8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_MemFree(void* ptr);
8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)uint32_t    NP_LOADDS NPN_MemFlush(uint32_t size);
8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_ReloadPlugins(NPBool reloadPages);
8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_GetValue(NPP instance, NPNVariable variable,
8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   void *value);
8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_SetValue(NPP instance, NPPVariable variable,
8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   void *value);
8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_InvalidateRect(NPP instance, NPRect *invalidRect);
8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_InvalidateRegion(NPP instance,
8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                           NPRegion invalidRegion);
8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_ForceRedraw(NPP instance);
8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_PushPopupsEnabledState(NPP instance, NPBool enabled);
8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_PopPopupsEnabledState(NPP instance);
8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_PluginThreadAsyncCall(NPP instance,
8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                void (*func) (void *),
8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                void *userData);
8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_GetValueForURL(NPP instance, NPNURLVariable variable,
8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         const char *url, char **value,
8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         uint32_t *len);
8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_SetValueForURL(NPP instance, NPNURLVariable variable,
8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         const char *url, const char *value,
8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         uint32_t len);
9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_GetAuthenticationInfo(NPP instance,
9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                const char *protocol,
9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                const char *host, int32_t port,
9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                const char *scheme,
9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                const char *realm,
9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                char **username, uint32_t *ulen,
9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                char **password,
9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                uint32_t *plen);
9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)uint32_t    NP_LOADDS NPN_ScheduleTimer(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID));
9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_UnscheduleTimer(NPP instance, uint32_t timerID);
9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError     NP_LOADDS NPN_PopUpContextMenu(NPP instance, NPMenu* menu);
9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPBool      NP_LOADDS NPN_ConvertPoint(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace);
9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPBool      NP_LOADDS NPN_HandleEvent(NPP instance, void *event, NPBool handled);
9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPBool      NP_LOADDS NPN_UnfocusInstance(NPP instance, NPFocusDirection direction);
9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void        NP_LOADDS NPN_URLRedirectResponse(NPP instance, void* notifyData, NPBool allow);
9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  /* end extern "C" */
9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* RC_INVOKED */
9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__OS2__)
9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma pack()
9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* npapi_h_ */
926