summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2024-10-03 17:43:38 +0900
committerMichele Calgaro <[email protected]>2024-10-03 17:43:38 +0900
commit6964feed838dec70e7743ea90b390e4ae706d3c9 (patch)
tree6faf8862c19e31a988e9b5a43485a9f23b89d4a8 /extensions
parent81288cfcb6a543d96a1ee4bf1d7d3c26231f517f (diff)
downloadtqt3-6964feed838dec70e7743ea90b390e4ae706d3c9.tar.gz
tqt3-6964feed838dec70e7743ea90b390e4ae706d3c9.zip
Remove obsolete Netscape plugin and its classes
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'extensions')
-rw-r--r--extensions/extensions.pro5
-rw-r--r--extensions/nsplugin/doc/index.doc111
-rwxr-xr-xextensions/nsplugin/examples/grapher/graph.cgi7
-rw-r--r--extensions/nsplugin/examples/grapher/graph.g1n8
-rw-r--r--extensions/nsplugin/examples/grapher/grapher.cpp619
-rw-r--r--extensions/nsplugin/examples/grapher/grapher.def9
-rw-r--r--extensions/nsplugin/examples/grapher/grapher.doc64
-rw-r--r--extensions/nsplugin/examples/grapher/grapher.pro12
-rw-r--r--extensions/nsplugin/examples/grapher/grapher.rc36
-rw-r--r--extensions/nsplugin/examples/trivial/trivial.cpp67
-rw-r--r--extensions/nsplugin/examples/trivial/trivial.def9
-rw-r--r--extensions/nsplugin/examples/trivial/trivial.doc22
-rw-r--r--extensions/nsplugin/examples/trivial/trivial.pro12
-rw-r--r--extensions/nsplugin/examples/trivial/trivial.rc36
-rw-r--r--extensions/nsplugin/src/jri.h637
-rw-r--r--extensions/nsplugin/src/jri_md.h499
-rw-r--r--extensions/nsplugin/src/jritypes.h179
-rw-r--r--extensions/nsplugin/src/npapi.h391
-rw-r--r--extensions/nsplugin/src/npunix.c407
-rw-r--r--extensions/nsplugin/src/npupp.h994
-rw-r--r--extensions/nsplugin/src/npwin.cpp367
-rw-r--r--extensions/nsplugin/src/tqnp.cpp2071
-rw-r--r--extensions/nsplugin/src/tqnp.h186
-rw-r--r--extensions/nsplugin/src/tqnp.pro14
24 files changed, 0 insertions, 6762 deletions
diff --git a/extensions/extensions.pro b/extensions/extensions.pro
deleted file mode 100644
index df53c9088..000000000
--- a/extensions/extensions.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-TEMPLATE = subdirs
-
-contains( QT_PRODUCT, qt-(enterprise|internal|eval) ) {
- x11: SUBDIRS = motif
-}
diff --git a/extensions/nsplugin/doc/index.doc b/extensions/nsplugin/doc/index.doc
deleted file mode 100644
index 0d7bd2139..000000000
--- a/extensions/nsplugin/doc/index.doc
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Index page
-**
-** Copyright (C) 1995-2008 Trolltech ASA. All rights reserved.
-**
-*****************************************************************************/
-
-#if defined(QT_DEBUG)
-#endif
-
-/*! \page netscape-plugin.html
-
-\title TQt Netscape Plugin Extension
-\keyword Netscape
-
-The TQt Netscape Plugin software makes it easy to write browser plugins
-that can be used on both Unix/Linux and MS-Windows, in Netscape,
-Mozilla, and any other web browser supporting Netscape's LiveConnect
-protocol. Modern versions of MSIE do not support this protocol.
-
-\section1 Information
-
-The Netscape Plugin Extension consists of the follow classes:
-\list
-\i \l TQNPlugin
-\i \l TQNPInstance
-\i \l TQNPWidget
-\i \l TQNPStream
-\endlist
-
-\section1 How-to
-
-\list 1
- \i Download the
- \link http://home.netscape.com/comprod/development_partners/plugin_api/index.html
- Plugin SDK from Netscape \endlink, and copy the following files from there to
- \c{$TQTDIR/extensions/nsplugin/src}
- \list
- \i \c common/npwin.cpp
- \i \c common/npunix.c
- \i \c include/npapi.h
- \i \c include/npupp.h
- \i \c include/jri.h
- \i \c include/jri_md.h
- \i \c include/jritypes.h
- \endlist
- \i Build the Netscape Plugin extension library, found in the
- \c{extensions/nsplugin/src} directory of your TQt distribution.
- This produces a static library to be linked with your plugin code.
- \i Read the \link tqnplugin.html plugin class documentation \endlink, and
- examine the \link nsplugin-examples.html example plugins \endlink.
- \i Do most of your development as a stand-alone TQt application - debugging
- Netscape Plugins is cumbersome. You may want to use \c{signal(2)}
- in your plugin to enable core-dumps if your browser disables them.
- \i Note the platform-specific build steps below.
- \i Read about the raw plugin interface
- \link http://developer.netscape.com/docs/manuals/communicator/plugin/index.htm
- in Netscape's handbook. \endlink
- \i If files viewed by a plugin are provided by an HTTP server
- (using a \c{http://...} URL) then
- the server must be configured to send the correct MIME type
- for the file, e.g. by editing Apache's \c{mime.types} file.
- If the files are viewed via a \c{file://...}
- URL, then the browser will use the filename extension to decide
- the file type (and hence the plugin to load) - the user may need
- to set the filename extension in the Helpers or Applications
- section of their browser preferences.
-\endlist
-
-
-\section2 Building under X11
-
-\list
- \i The Makefiles in the examples are appropriate for UNIX/X11.
- \i The user must install the resulting Shared Object in the Plugins
- directory of the browser.
-\endlist
-
-\section2 Building under Windows
-
-\list
- \i For Netscape plugins to work, TQt needs to be in the system DLL
- path or be compiled into the plugin as a static library.
- \i Plugins must be named \c{np}\e{name}\c{.dll},
- or the browser will ignore them.
- \i The link step must include:
- \list
- \i \c{/def:}\e{name}\c{.def}
- \i \c{/dll}
- \i a compiled resource file defining the
- file/MIME types accepted by the plugin.
- \endlist
- \i The user must install the resulting DLL in the Plugins directory
- of the browser.
-\endlist
-
-\section1 Known Bugs and Limitations
-
-The Qt-based LiveConnect Plugin binding code has a number of bugs and
-limitations, but is sufficiently stable for many production
-applications.
-
-\list
- \i Keyboard input only works in secondary windows (e.g. dialogs created by the plugin).
- \i You should not expect modality between the plugin and the browser to work.
- \i Netscape 4.78 on Unix/X11 tends to terminate with a bus error.
- \i Opaque resize behaviour is erratic due to browser behavior.
-\endlist
-
-*/
diff --git a/extensions/nsplugin/examples/grapher/graph.cgi b/extensions/nsplugin/examples/grapher/graph.cgi
deleted file mode 100755
index 91445c81e..000000000
--- a/extensions/nsplugin/examples/grapher/graph.cgi
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-echo "Content-type: application/x-graphable"
-echo
-
-cat graph.g1n
-# ./slowcat < graph.g1n
diff --git a/extensions/nsplugin/examples/grapher/graph.g1n b/extensions/nsplugin/examples/grapher/graph.g1n
deleted file mode 100644
index d366327c6..000000000
--- a/extensions/nsplugin/examples/grapher/graph.g1n
+++ /dev/null
@@ -1,8 +0,0 @@
-num label
-10 A
-24 B
-12 C
-7 D
-34 E
-15 F
-19 G
diff --git a/extensions/nsplugin/examples/grapher/grapher.cpp b/extensions/nsplugin/examples/grapher/grapher.cpp
deleted file mode 100644
index 22f7d09d6..000000000
--- a/extensions/nsplugin/examples/grapher/grapher.cpp
+++ /dev/null
@@ -1,619 +0,0 @@
-// Include TQt Netscape Plugin classes.
-#include "tqnp.h"
-
-// Include other TQt classes.
-#include <tqpainter.h>
-#include <tqtextstream.h>
-#include <tqbuffer.h>
-#include <tqpixmap.h>
-#include <tqmenubar.h>
-#include <tqpushbutton.h>
-#include <tqptrlist.h>
-#include <tqmessagebox.h>
-
-// Include some C library functions.
-#include <math.h>
-#include <stdlib.h>
-
-#ifndef M_PI // Some math.h don't include this.
-#define M_PI 3.14159265358979323846264338327950288
-#endif
-
-
-
-//
-// GraphModel is a simple abstract class that describes
-// a table of numeric and text data.
-//
-
-class GraphModel {
-public:
- enum ColType { Numeric, Label };
-
- union Datum {
- double dbl;
- TQString* str;
- };
-
- virtual TQPtrList<Datum>& graphData()=0;
- virtual ColType colType(int col) const=0;
- virtual int nCols() const=0;
-};
-
-
-//
-// Graph is a widget subclass that displays a GraphModel.
-// Since the widget is a TQNPWidget, it can be used as a plugin window,
-// returned by Grapher::newWindow() below.
-//
-
-class Graph : public TQNPWidget {
- TQ_OBJECT
-public:
- // Constructs a Graph to display a GraphModel
- //
- Graph(GraphModel&);
- ~Graph();
-
- // Two styles are available - Pie and Bar graph
- //
- enum Style { Pie, Bar };
- static const char* styleName[];
- void setStyle(Style);
- void setStyle(const char*);
-
- // Timer event processing rotates the pie graph
- //
- void timerEvent(TQTimerEvent*);
-
- // These functions are provided by TQNPWidget - we override
- // them to hide and show the plugin menubar.
- //
- void enterInstance();
- void leaveInstance();
-
- // Paint the graph...
- //
- void paintEvent(TQPaintEvent*);
- //
- // ... as either a "Loading" message, a Bar graph, a Pie graph,
- // or an error message.
- //
- void paintWait(TQPaintEvent*);
- void paintBar(TQPaintEvent*);
- void paintPie(TQPaintEvent*);
- void paintError(const char*);
-
-signals:
- // Signals emitted when the Help menus are selected.
- void aboutPlugin();
- void aboutData();
-
-private:
- GraphModel& model;
- TQMenuBar *menubar;
- Style style;
- TQPopupMenu* stylemenu;
- int pieRotationTimer;
- int pieRotation;
- TQPixmap pm;
-
-private slots:
- void setStyleFromMenu(int id);
-};
-
-
-Graph::Graph( GraphModel& mdl ) :
- model(mdl),
- style(Bar),
- pieRotationTimer(0),
- pieRotation(0)
-{
- // Create a menubar for the widget
- //
- menubar = new TQMenuBar( this );
- stylemenu = new TQPopupMenu;
- stylemenu->setCheckable(TRUE);
- for ( Style s = Pie; styleName[s]; s = Style(s+1)) {
- stylemenu->insertItem(styleName[s], s+100);
- }
- connect(stylemenu, TQ_SIGNAL(activated(int)),
- this, TQ_SLOT(setStyleFromMenu(int)));
- setStyle(Pie);
-
- menubar->insertItem("Style", stylemenu);
- menubar->insertSeparator();
-
- TQPopupMenu* help = new TQPopupMenu;
- help->insertItem( "About plugin...", this, TQ_SIGNAL(aboutPlugin()) );
- help->insertItem( "About data...", this, TQ_SIGNAL(aboutData()) );
- menubar->insertItem("Help", help);
- menubar->hide();
-}
-
-Graph::~Graph()
-{
-}
-
-void Graph::setStyle(Style s)
-{
- if (style != s) {
- if (pieRotationTimer)
- killTimer(pieRotationTimer);
- stylemenu->setItemChecked(100+style, FALSE);
- style = s;
- if ( style == Pie )
- pieRotationTimer = startTimer( 80 );
- else
- pieRotationTimer = 0;
- stylemenu->setItemChecked(100+style, TRUE);
- update();
- }
-}
-
-void Graph::timerEvent(TQTimerEvent*)
-{
- pieRotation = ( pieRotation + 6 ) % 360; repaint(FALSE);
-}
-
-void Graph::setStyle(const char* stext)
-{
- for ( Style s = Pie; styleName[s]; s = Style(s+1) ) {
- if ( tqstricmp(stext,styleName[s])==0 ) {
- setStyle(s);
- return;
- }
- }
-}
-
-void Graph::enterInstance()
-{
- menubar->show();
-}
-
-void Graph::leaveInstance()
-{
- menubar->hide();
-}
-
-void Graph::paintError(const char* e)
-{
- TQPainter p(this);
- int w = width();
- p.drawText(w/8, 0, w-w/4, height(), AlignCenter|WordBreak, e);
-}
-
-void Graph::paintBar(TQPaintEvent* event)
-{
- if ( model.colType(0) != GraphModel::Numeric ) {
- paintError("First column not numeric, cannot draw bar graph\n");
- return;
- }
-
- TQPtrList<GraphModel::Datum>& data = model.graphData();
-
- double max = 0.0;
-
- for (GraphModel::Datum* rowdata = data.first();
- rowdata; rowdata = data.next())
- {
- if (rowdata[0].dbl > max) max = rowdata[0].dbl;
- }
-
- const uint w = width();
- const uint h = height();
-
- TQPainter p(this);
-
- p.setClipRect(event->rect());
-
- if ( w > data.count() ) {
- // More pixels than data
- int x = 0;
- int i = 0;
- TQFontMetrics fm=fontMetrics();
- int fh = fm.height();
-
- for (GraphModel::Datum* rowdata = data.first();
- rowdata; rowdata = data.next())
- {
- TQColor c;
- c.setHsv( (i * 255)/data.count(), 255, 255 );// rainbow effect
- p.setBrush(c);
- int bw = (w-w/4-x)/(data.count()-i);
- int bh = int((h-h/4-1)*rowdata[0].dbl/max);
- p.drawRect( w/8+x, h-h/8-1-bh, bw, bh );
-
- i++;
- x+=bw;
- }
- } else {
- // More data than pixels
- int x = 0;
- int i = 0;
- double av = 0.0;
- int n = 0;
- for (GraphModel::Datum* rowdata = data.first(); rowdata;
- rowdata = data.next())
- {
- int bx = i*w/data.count();
-
- if (bx > x) {
- TQColor c;
- c.setHsv( (x * 255)/w, 255, 255 );// rainbow effect
- p.setPen(c);
- int bh = int(h*av/n/max);
-
- p.drawLine(x,h-1,x,h-bh);
-
- av = 0.0;
- n = 0;
- x = bx;
- }
-
- av += rowdata[0].dbl;
- n++;
-
- i++;
- }
- }
-}
-
-void Graph::paintPie(TQPaintEvent* event)
-{
- if ( model.colType(0) != GraphModel::Numeric ) {
- paintError("First column not numeric, cannot draw pie graph\n");
- return;
- }
-
- TQPtrList<GraphModel::Datum>& data = model.graphData();
-
- double total = 0.0;
-
- GraphModel::Datum* rowdata;
-
- for (rowdata = data.first();
- rowdata; rowdata = data.next())
- {
- total += rowdata[0].dbl;
- }
-
- // Only use first column for pie chart
- if ( !total ) return;
-
- int apos = (pieRotation-90)*16;
-
- const int w = width();
- const int h = height();
-
- const int xd = w - w/5;
- const int yd = h - h/5;
-
- pm.resize(width(),height());
- pm.fill(backgroundColor());
- TQPainter p(&pm);
- p.setFont(font());
-
- p.setClipRect(event->rect());
-
- int i = 0;
-
- for (rowdata = data.first();
- rowdata; rowdata = data.next())
- {
- TQColor c;
-
- c.setHsv( ( i * 255)/data.count(), 255, 255 );// rainbow effect
- p.setBrush( c ); // solid fill with color c
-
- int a = int(( rowdata[0].dbl * 360.0 ) / total * 16.0 + 0.5);
- p.drawPie( w/10, h/10, xd, yd, -apos, -a );
- apos += a;
- i++;
- }
-
- if (model.colType(1) == GraphModel::Label) {
- double apos = (pieRotation-90)*M_PI/180;
-
- for (rowdata = data.first();
- rowdata; rowdata = data.next())
- {
- double a = rowdata[0].dbl * 360 / total * M_PI / 180;
- int x = int(cos(apos+a/2)*w*5/16 + w/2 + 0.5);
- int y = int(sin(apos+a/2)*h*5/16 + h/2 + 0.5);
-
- // ### This causes a crash, so comment out for now
- /*p.drawText(x-w/8, y-h/8, w/4, h/4,
- WordBreak|AlignCenter,
- *rowdata[1].str);*/
- apos += a;
- }
- }
-
- TQPainter p2(this);
- p2.setClipRect(event->rect());
- p2.drawPixmap(0,0,pm);
-}
-
-void Graph::paintWait(TQPaintEvent*)
-{
- TQPainter p(this);
- p.drawText(rect(), AlignCenter, "Loading...");
-}
-
-void Graph::paintEvent(TQPaintEvent* event)
-{
- if (!model.nCols()) {
- paintWait(event);
- } else {
- switch (style) {
- case Pie:
- paintPie(event);
- break;
- case Bar:
- paintBar(event);
- break;
- }
- }
-}
-
-void Graph::setStyleFromMenu(int id)
-{
- setStyle(Style(id-100));
-}
-
-const char* Graph::styleName[] = { "Pie", "Bar", 0 };
-
-
-//
-// Grapher is a subclass of TQNPInstance, and so it can be returned
-// by GrapherPlugin::newInstance(). A TQNPInstance represents the
-// plugin, distinctly from the plugin window.
-//
-// Grapher is also a GraphModel, because it loads graph data from
-// the net. When Grapher creates a window in newWindow(), it creates
-// a Graph widget to display the GraphModel that is the Grapher itself.
-//
-
-class Grapher : public TQNPInstance, GraphModel {
- TQ_OBJECT
-public:
- // Create a Grapher - all Grapher plugins are created
- // by one GrapherPlugin object.
- //
- Grapher();
- ~Grapher();
-
- // We override this TQNPInstance function to create our
- // own subclass of TQNPWidget, a Graph widget.
- //
- TQNPWidget* newWindow();
-
- // We override this TQNPInstance function to process the
- // incoming graph data.
- //
- int write(TQNPStream* /*str*/, int /*offset*/, int len, void* buffer);
-
-private:
- // Grapher is a GraphModel, so it implements the pure virtual
- // functions of that class.
- //
- TQPtrList<Datum>& graphData();
- ColType colType(int col) const;
- int nCols() const;
-
- void consumeLine();
- TQPtrList<Datum> data;
- TQBuffer line;
- int ncols;
- ColType *coltype;
-
-private slots:
- // Slots that are connected to the Graph menu items.
- //
- void aboutPlugin();
- void aboutData();
-};
-
-Grapher::Grapher()
-{
- data.setAutoDelete(TRUE);
- ncols = 0;
- line.open(IO_WriteOnly|IO_Truncate);
-}
-
-Grapher::~Grapher()
-{
-}
-
-TQPtrList<GraphModel::Datum>& Grapher::graphData()
-{
- return data;
-}
-
-GraphModel::ColType Grapher::colType(int col) const
-{
- return coltype[col];
-}
-
-int Grapher::nCols() const
-{
- return ncols;
-}
-
-
-TQNPWidget* Grapher::newWindow()
-{
- // Create a Graph - our subclass of TQNPWidget.
- Graph *graph = new Graph(*this);
-
- // Look at the arguments from the EMBED tag.
- // GRAPHSTYLE chooses pie or bar
- // FONTFAMILY and FONTSIZE choose the font
- //
- const char* style = arg("GRAPHSTYLE");
- if ( style ) graph->setStyle(style);
-
- const char* fontfamily = arg("FONTFAMILY");
- const char* fontsize = arg("FONTSIZE");
- int ptsize = fontsize ? atoi(fontsize) : graph->font().pointSize();
- if (fontfamily) graph->setFont(TQFont(fontfamily, ptsize));
-
- connect(graph, TQ_SIGNAL(aboutPlugin()), this, TQ_SLOT(aboutPlugin()));
- connect(graph, TQ_SIGNAL(aboutData()), this, TQ_SLOT(aboutData()));
-
- return graph;
-}
-
-void Grapher::consumeLine()
-{
- line.close();
- line.open(IO_ReadOnly);
-
- TQTextStream ts( &line );
-
- if (ncols == 0 ) {
- ncols=0;
- TQPtrList<ColType> typelist;
- typelist.setAutoDelete(TRUE);
- do {
- TQString typestr;
- ts >> typestr >> ws;
- ColType* t = 0;
- if ( typestr == "num" ) {
- t = new ColType(Numeric);
- } else if ( typestr == "label" ) {
- t = new ColType(Label);
- }
- if (t) typelist.append(t);
- } while (!ts.atEnd());
- coltype = new ColType[ncols];
- for (ColType* t = typelist.first(); t; t = typelist.next()) {
- coltype[ncols++] = *t;
- }
- } else {
- int col=0;
- Datum *rowdata = new Datum[ncols];
- while ( col < ncols && !ts.atEnd() ) {
- switch (coltype[col]) {
- case Numeric: {
- double value;
- ts >> value >> ws;
- rowdata[col].dbl = value;
- break;
- }
- case Label: {
- TQString* value = new TQString;
- ts >> *value >> ws;
- rowdata[col].str = value;
- break;
- }
- }
- col++;
- }
-
- data.append(rowdata);
- }
-
- line.close();
- line.open(IO_WriteOnly|IO_Truncate);
-}
-
-int Grapher::write(TQNPStream* /*str*/, int /*offset*/, int len, void* buffer)
-{
- // The browser calls this function when data is available on one
- // of the streams the plugin has requested. Since we are only
- // processing one stream - the URL in the SRC argument of the EMBED
- // tag, we assume the TQNPStream is that one. Also, since we do not
- // override TQNPInstance::writeReady(), we must accepts ALL the data
- // that is sent to this function.
- //
- char* txt = (char*)buffer;
- for (int i=0; i<len; i++) {
- char ch = txt[i];
- switch ( ch ) {
- case '\n':
- consumeLine();
- break;
- case '\r': // ignore;
- break;
- default:
- line.putch(ch);
- }
- }
- if ( widget() )
- widget()->update();
-
- return len;
-}
-
-void Grapher::aboutPlugin()
-{
- getURL( "http://doc.trolltech.com/netscape-plugin.html", "_blank" );
-}
-
-void Grapher::aboutData()
-{
- const char* page = arg("DATAPAGE");
- if (page)
- getURL( page, "_blank" );
- else
- TQMessageBox::message("Help", "No help for this data");
-}
-
-
-//
-// GrapherPlugin is the start of everything. It is a TQNPlugin subclass,
-// and it is responsible for describing the plugin to the browser, and
-// creating instances of the plugin when it appears in web page.
-//
-
-class GrapherPlugin : public TQNPlugin {
-public:
- GrapherPlugin()
- {
- }
-
- TQNPInstance* newInstance()
- {
- // Make a new Grapher, our subclass of TQNPInstance.
- return new Grapher;
- }
-
- const char* getMIMEDescription() const
- {
- // Describe the MIME types which this plugin can
- // process. Just the concocted "application/x-graphable"
- // type, with the "g1n" filename extension.
- //
- return "application/x-graphable:g1n:Graphable ASCII numeric data";
- }
-
- const char * getPluginNameString() const
- {
- // The name of the plugin. This is the title string used in
- // the "About Plugins" page of the browser.
- //
- return "TQt-based Graph Plugin";
- }
-
- const char * getPluginDescriptionString() const
- {
- // A longer description of the plugin.
- //
- return "A TQt-based LiveConnected plug-in that graphs numeric data";
- }
-
-};
-
-//
-// Finally, we provide the implementation of TQNPlugin::create(), to
-// provide our subclass of TQNPlugin.
-//
-
-TQNPlugin* TQNPlugin::create()
-{
- return new GrapherPlugin;
-}
-
-#include "grapher.moc"
diff --git a/extensions/nsplugin/examples/grapher/grapher.def b/extensions/nsplugin/examples/grapher/grapher.def
deleted file mode 100644
index e71dd470f..000000000
--- a/extensions/nsplugin/examples/grapher/grapher.def
+++ /dev/null
@@ -1,9 +0,0 @@
-LIBRARY npgrapher.dll
-
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD SINGLE
-
-EXPORTS
- NP_GetEntryPoints @1
- NP_Initialize @2
- NP_Shutdown @3
diff --git a/extensions/nsplugin/examples/grapher/grapher.doc b/extensions/nsplugin/examples/grapher/grapher.doc
deleted file mode 100644
index af6189cc4..000000000
--- a/extensions/nsplugin/examples/grapher/grapher.doc
+++ /dev/null
@@ -1,64 +0,0 @@
-/*! \page grapher-nsplugin-example.html
- \ingroup nsplugin-examples
-
- \title Grapher Plugin
-
- This example graphs data from a simple text file. It
- demonstrates the use of the TQNPInstance::writeReady()
- and TQNPInstance::write() functions.
-
- To build the example, you must first build the
- <a href=nsplugin.html>TQt Netscape Plugin Extension</a> library.
- Then type <tt>make</tt> in <tt>extensions/nsplugin/examples/grapher/</tt>
- and copy the resulting <tt>grapher.so</tt> or <tt>npgrapher.dll</tt>
- to the Plugins directory of your WWW browser.
-
- <EMBED ALIGN=LEFT WIDTH=49% HEIGHT=300 SRC=graph.g1n
- graphstyle=pie fontfamily=times fontsize=18>
-
- The text file it accepts as input has a title line, then
- a sequence of lines with a number, then a string. The
- plugin displays a pie chart of the numbers, each segment
- labelled by the associated string. The user can select
- a bar chart view of the same data by selecting from the
- menu that appears when they point at the plugin.
-
- The HTML tag used to embed the graph is:
-<small>
-<pre>
- &lt;EMBED
- SRC=graph.g1n
- ALIGN=LEFT
- WIDTH=49% HEIGHT=300
- graphstyle=pie fontfamily=times
- fontsize=18&gt;
-</pre>
-</small>
- Note that some HTML arguments (which we have capitalized here)
- are interpreted by the browser, while others are used by the
- plugin.
-
-<br clear>
-With the simplicity and cross-platform nature of Qt-based plugins,
-pages like <a href="http://www.netcraft.com/survey/">Netcraft's
-Server Graphs</a> can be provided much more efficiently for both
-the service provider and consumer. Data need not be converted
-to an image at the server.
-
-<br clear>
- <hr>
- Implementation:
-
- \include grapher/grapher.cpp
-*/
-
-/*! \plainpage graph.g1n
-num label
-10 A
-24 B
-12 C
-7 D
-34 E
-15 F
-19 G
-*/
diff --git a/extensions/nsplugin/examples/grapher/grapher.pro b/extensions/nsplugin/examples/grapher/grapher.pro
deleted file mode 100644
index 6f05b5453..000000000
--- a/extensions/nsplugin/examples/grapher/grapher.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TEMPLATE = lib
-TARGET = grapher
-win32:TARGET = npgrapher
-
-CONFIG += qt dll release
-LIBS += -lqnp
-unix:LIBS += -lXt
-
-HEADERS =
-SOURCES = grapher.cpp
-DEF_FILE = grapher.def
-RC_FILE = grapher.rc
diff --git a/extensions/nsplugin/examples/grapher/grapher.rc b/extensions/nsplugin/examples/grapher/grapher.rc
deleted file mode 100644
index 558c738ad..000000000
--- a/extensions/nsplugin/examples/grapher/grapher.rc
+++ /dev/null
@@ -1,36 +0,0 @@
-
-1 VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,0,1
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904e4"
- BEGIN
- VALUE "CompanyName", "Trolltech\0"
- VALUE "FileDescription", "grapher\0"
- VALUE "FileExtents", "g1n\0"
- VALUE "FileOpenName", "Graphable data (*.g1n)\0"
- VALUE "FileVersion", "1, 0, 0, 1\0"
- VALUE "InternalName", "grapher\0"
- VALUE "LegalCopyright", "Copyright � 1997-2008 Trolltech ASA\0"
- VALUE "MIMEType", "application/x-graphable\0"
- VALUE "OriginalFilename", "grapher.dll\0"
- VALUE "ProductName", "Trolltech grapher\0"
- VALUE "ProductVersion", "1, 0, 0, 1\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1252
- END
-END
diff --git a/extensions/nsplugin/examples/trivial/trivial.cpp b/extensions/nsplugin/examples/trivial/trivial.cpp
deleted file mode 100644
index d2c57843d..000000000
--- a/extensions/nsplugin/examples/trivial/trivial.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// TQt stuff
-#include "tqnp.h"
-#include <tqpainter.h>
-#include <tqmessagebox.h>
-
-class Trivial : public TQNPWidget {
- TQ_OBJECT
-public:
- void mouseReleaseEvent(TQMouseEvent* event)
- {
- TQMessageBox::aboutTQt(this);
- }
-
- void paintEvent(TQPaintEvent* event)
- {
- TQPainter p(this);
- p.setClipRect(event->rect());
- int w = width();
- p.drawRect(rect());
- p.drawText(w/8, 0, w-w/4, height(), AlignCenter|WordBreak, "Trivial!");
- }
-};
-
-class TrivialInstance : public TQNPInstance {
- TQ_OBJECT
-public:
- TQNPWidget* newWindow()
- {
- return new Trivial;
- }
-
- void print(TQPainter* p)
- {
- p->drawText(0,0,"Hello");
- }
-};
-
-class TrivialPlugin : public TQNPlugin {
-public:
- TQNPInstance* newInstance()
- {
- return new TrivialInstance;
- }
-
- const char* getMIMEDescription() const
- {
- return "trivial/very:xxx:Trivial and useless";
- }
-
- const char * getPluginNameString() const
- {
- return "Trivial TQt-based Plugin";
- }
-
- const char * getPluginDescriptionString() const
- {
- return "A TQt-based LiveConnected plug-in that does nothing";
- }
-
-};
-
-TQNPlugin* TQNPlugin::create()
-{
- return new TrivialPlugin;
-}
-
-#include "trivial.moc"
diff --git a/extensions/nsplugin/examples/trivial/trivial.def b/extensions/nsplugin/examples/trivial/trivial.def
deleted file mode 100644
index 1732fc67c..000000000
--- a/extensions/nsplugin/examples/trivial/trivial.def
+++ /dev/null
@@ -1,9 +0,0 @@
-LIBRARY nptrivial.dll
-
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD SINGLE
-
-EXPORTS
- NP_GetEntryPoints @1
- NP_Initialize @2
- NP_Shutdown @3
diff --git a/extensions/nsplugin/examples/trivial/trivial.doc b/extensions/nsplugin/examples/trivial/trivial.doc
deleted file mode 100644
index b1f1b946d..000000000
--- a/extensions/nsplugin/examples/trivial/trivial.doc
+++ /dev/null
@@ -1,22 +0,0 @@
-/*! \page trivial-nsplugin-example.html
- \ingroup nsplugin-examples
-
- \title Trivial Example
-
- This example is trivial, and thus useful for
- investigating problems you might have installing the
- extension.
-
- To build the example, you must first build the
- \link netscape-plugin.html TQt Netscape Plugin Extension\endlink library.
- Then type \c{make} in \c{extensions/nsplugin/examples/trivial/}
- and copy the resulting \c{trivial.so} or \c{nptrivial.dll}
- to the Plugins directory of your WWW browser.
-
- <EMBED TYPE=trivial/very WIDTH=100 HEIGHT=100>
-
- <hr>
- Implementation:
-
- \include trivial/trivial.cpp
-*/
diff --git a/extensions/nsplugin/examples/trivial/trivial.pro b/extensions/nsplugin/examples/trivial/trivial.pro
deleted file mode 100644
index d61bf7830..000000000
--- a/extensions/nsplugin/examples/trivial/trivial.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TEMPLATE = lib
-TARGET = trivial
-win32:TARGET = nptrivial
-
-CONFIG += qt dll release
-LIBS += -lqnp
-unix:LIBS += -lXt
-
-HEADERS =
-SOURCES = trivial.cpp
-DEF_FILE = trivial.def
-RC_FILE = trivial.rc
diff --git a/extensions/nsplugin/examples/trivial/trivial.rc b/extensions/nsplugin/examples/trivial/trivial.rc
deleted file mode 100644
index 481cf0878..000000000
--- a/extensions/nsplugin/examples/trivial/trivial.rc
+++ /dev/null
@@ -1,36 +0,0 @@
-
-1 VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,0,1
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904e4"
- BEGIN
- VALUE "CompanyName", "Trolltech\0"
- VALUE "FileDescription", "trivial\0"
- VALUE "FileExtents", "xxx\0"
- VALUE "FileOpenName", "Nothing (*.xxx)\0"
- VALUE "FileVersion", "1, 0, 0, 1\0"
- VALUE "InternalName", "trivial\0"
- VALUE "LegalCopyright", "Copyright � 1997-2006 Trolltech ASA\0"
- VALUE "MIMEType", "trivial/very\0"
- VALUE "OriginalFilename", "trivial.dll\0"
- VALUE "ProductName", "Trolltech trivial\0"
- VALUE "ProductVersion", "1, 0, 0, 1\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1252
- END
-END
diff --git a/extensions/nsplugin/src/jri.h b/extensions/nsplugin/src/jri.h
deleted file mode 100644
index 09ef682ea..000000000
--- a/extensions/nsplugin/src/jri.h
+++ /dev/null
@@ -1,637 +0,0 @@
-/*******************************************************************************
- * Java Runtime Interface
- * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
- ******************************************************************************/
-
-#ifndef JRI_H
-#define JRI_H
-
-#include "jritypes.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*******************************************************************************
- * JRIEnv
- ******************************************************************************/
-
-/* The type of the JRIEnv interface. */
-typedef struct JRIEnvInterface JRIEnvInterface;
-
-/* The type of a JRIEnv instance. */
-typedef const JRIEnvInterface* JRIEnv;
-
-/*******************************************************************************
- * JRIEnv Operations
- ******************************************************************************/
-
-#define JRI_LoadClass(env, buf, bufLen) \
- (((*(env))->LoadClass)(env, JRI_LoadClass_op, buf, bufLen))
-
-#define JRI_FindClass(env, name) \
- (((*(env))->FindClass)(env, JRI_FindClass_op, name))
-
-#define JRI_Throw(env, obj) \
- (((*(env))->Throw)(env, JRI_Throw_op, obj))
-
-#define JRI_ThrowNew(env, clazz, message) \
- (((*(env))->ThrowNew)(env, JRI_ThrowNew_op, clazz, message))
-
-#define JRI_ExceptionOccurred(env) \
- (((*(env))->ExceptionOccurred)(env, JRI_ExceptionOccurred_op))
-
-#define JRI_ExceptionDescribe(env) \
- (((*(env))->ExceptionDescribe)(env, JRI_ExceptionDescribe_op))
-
-#define JRI_ExceptionClear(env) \
- (((*(env))->ExceptionClear)(env, JRI_ExceptionClear_op))
-
-#define JRI_NewGlobalRef(env, ref) \
- (((*(env))->NewGlobalRef)(env, JRI_NewGlobalRef_op, ref))
-
-#define JRI_DisposeGlobalRef(env, gref) \
- (((*(env))->DisposeGlobalRef)(env, JRI_DisposeGlobalRef_op, gref))
-
-#define JRI_GetGlobalRef(env, gref) \
- (((*(env))->GetGlobalRef)(env, JRI_GetGlobalRef_op, gref))
-
-#define JRI_SetGlobalRef(env, gref, ref) \
- (((*(env))->SetGlobalRef)(env, JRI_SetGlobalRef_op, gref, ref))
-
-#define JRI_IsSameObject(env, a, b) \
- (((*(env))->IsSameObject)(env, JRI_IsSameObject_op, a, b))
-
-#define JRI_NewObject(env) ((*(env))->NewObject)
-#define JRI_NewObjectV(env, clazz, methodID, args) \
- (((*(env))->NewObjectV)(env, JRI_NewObject_op_va_list, clazz, methodID, args))
-#define JRI_NewObjectA(env, clazz, method, args) \
- (((*(env))->NewObjectA)(env, JRI_NewObject_op_array, clazz, methodID, args))
-
-#define JRI_GetObjectClass(env, obj) \
- (((*(env))->GetObjectClass)(env, JRI_GetObjectClass_op, obj))
-
-#define JRI_IsInstanceOf(env, obj, clazz) \
- (((*(env))->IsInstanceOf)(env, JRI_IsInstanceOf_op, obj, clazz))
-
-#define JRI_GetMethodID(env, clazz, name, sig) \
- (((*(env))->GetMethodID)(env, JRI_GetMethodID_op, clazz, name, sig))
-
-#define JRI_CallMethod(env) ((*(env))->CallMethod)
-#define JRI_CallMethodV(env, obj, methodID, args) \
- (((*(env))->CallMethodV)(env, JRI_CallMethod_op_va_list, obj, methodID, args))
-#define JRI_CallMethodA(env, obj, methodID, args) \
- (((*(env))->CallMethodA)(env, JRI_CallMethod_op_array, obj, methodID, args))
-
-#define JRI_CallMethodBoolean(env) ((*(env))->CallMethodBoolean)
-#define JRI_CallMethodBooleanV(env, obj, methodID, args) \
- (((*(env))->CallMethodBooleanV)(env, JRI_CallMethodBoolean_op_va_list, obj, methodID, args))
-#define JRI_CallMethodBooleanA(env, obj, methodID, args) \
- (((*(env))->CallMethodBooleanA)(env, JRI_CallMethodBoolean_op_array, obj, methodID, args))
-
-#define JRI_CallMethodByte(env) ((*(env))->CallMethodByte)
-#define JRI_CallMethodByteV(env, obj, methodID, args) \
- (((*(env))->CallMethodByteV)(env, JRI_CallMethodByte_op_va_list, obj, methodID, args))
-#define JRI_CallMethodByteA(env, obj, methodID, args) \
- (((*(env))->CallMethodByteA)(env, JRI_CallMethodByte_op_array, obj, methodID, args))
-
-#define JRI_CallMethodChar(env) ((*(env))->CallMethodChar)
-#define JRI_CallMethodCharV(env, obj, methodID, args) \
- (((*(env))->CallMethodCharV)(env, JRI_CallMethodChar_op_va_list, obj, methodID, args))
-#define JRI_CallMethodCharA(env, obj, methodID, args) \
- (((*(env))->CallMethodCharA)(env, JRI_CallMethodChar_op_array, obj, methodID, args))
-
-#define JRI_CallMethodShort(env) ((*(env))->CallMethodShort)
-#define JRI_CallMethodShortV(env, obj, methodID, args) \
- (((*(env))->CallMethodShortV)(env, JRI_CallMethodShort_op_va_list, obj, methodID, args))
-#define JRI_CallMethodShortA(env, obj, methodID, args) \
- (((*(env))->CallMethodShortA)(env, JRI_CallMethodShort_op_array, obj, methodID, args))
-
-#define JRI_CallMethodInt(env) ((*(env))->CallMethodInt)
-#define JRI_CallMethodIntV(env, obj, methodID, args) \
- (((*(env))->CallMethodIntV)(env, JRI_CallMethodInt_op_va_list, obj, methodID, args))
-#define JRI_CallMethodIntA(env, obj, methodID, args) \
- (((*(env))->CallMethodIntA)(env, JRI_CallMethodInt_op_array, obj, methodID, args))
-
-#define JRI_CallMethodLong(env) ((*(env))->CallMethodLong)
-#define JRI_CallMethodLongV(env, obj, methodID, args) \
- (((*(env))->CallMethodLongV)(env, JRI_CallMethodLong_op_va_list, obj, methodID, args))
-#define JRI_CallMethodLongA(env, obj, methodID, args) \
- (((*(env))->CallMethodLongA)(env, JRI_CallMethodLong_op_array, obj, methodID, args))
-
-#define JRI_CallMethodFloat(env) ((*(env))->CallMethodFloat)
-#define JRI_CallMethodFloatV(env, obj, methodID, args) \
- (((*(env))->CallMethodFloatV)(env, JRI_CallMethodFloat_op_va_list, obj, methodID, args))
-#define JRI_CallMethodFloatA(env, obj, methodID, args) \
- (((*(env))->CallMethodFloatA)(env, JRI_CallMethodFloat_op_array, obj, methodID, args))
-
-#define JRI_CallMethodDouble(env) ((*(env))->CallMethodDouble)
-#define JRI_CallMethodDoubleV(env, obj, methodID, args) \
- (((*(env))->CallMethodDoubleV)(env, JRI_CallMethodDouble_op_va_list, obj, methodID, args))
-#define JRI_CallMethodDoubleA(env, obj, methodID, args) \
- (((*(env))->CallMethodDoubleA)(env, JRI_CallMethodDouble_op_array, obj, methodID, args))
-
-#define JRI_GetFieldID(env, clazz, name, sig) \
- (((*(env))->GetFieldID)(env, JRI_GetFieldID_op, clazz, name, sig))
-
-#define JRI_GetField(env, obj, fieldID) \
- (((*(env))->GetField)(env, JRI_GetField_op, obj, fieldID))
-
-#define JRI_GetFieldBoolean(env, obj, fieldID) \
- (((*(env))->GetFieldBoolean)(env, JRI_GetFieldBoolean_op, obj, fieldID))
-
-#define JRI_GetFieldByte(env, obj, fieldID) \
- (((*(env))->GetFieldByte)(env, JRI_GetFieldByte_op, obj, fieldID))
-
-#define JRI_GetFieldChar(env, obj, fieldID) \
- (((*(env))->GetFieldChar)(env, JRI_GetFieldChar_op, obj, fieldID))
-
-#define JRI_GetFieldShort(env, obj, fieldID) \
- (((*(env))->GetFieldShort)(env, JRI_GetFieldShort_op, obj, fieldID))
-
-#define JRI_GetFieldInt(env, obj, fieldID) \
- (((*(env))->GetFieldInt)(env, JRI_GetFieldInt_op, obj, fieldID))
-
-#define JRI_GetFieldLong(env, obj, fieldID) \
- (((*(env))->GetFieldLong)(env, JRI_GetFieldLong_op, obj, fieldID))
-
-#define JRI_GetFieldFloat(env, obj, fieldID) \
- (((*(env))->GetFieldFloat)(env, JRI_GetFieldFloat_op, obj, fieldID))
-
-#define JRI_GetFieldDouble(env, obj, fieldID) \
- (((*(env))->GetFieldDouble)(env, JRI_GetFieldDouble_op, obj, fieldID))
-
-#define JRI_SetField(env, obj, fieldID, value) \
- (((*(env))->SetField)(env, JRI_SetField_op, obj, fieldID, value))
-
-#define JRI_SetFieldBoolean(env, obj, fieldID, value) \
- (((*(env))->SetFieldBoolean)(env, JRI_SetFieldBoolean_op, obj, fieldID, value))
-
-#define JRI_SetFieldByte(env, obj, fieldID, value) \
- (((*(env))->SetFieldByte)(env, JRI_SetFieldByte_op, obj, fieldID, value))
-
-#define JRI_SetFieldChar(env, obj, fieldID, value) \
- (((*(env))->SetFieldChar)(env, JRI_SetFieldChar_op, obj, fieldID, value))
-
-#define JRI_SetFieldShort(env, obj, fieldID, value) \
- (((*(env))->SetFieldShort)(env, JRI_SetFieldShort_op, obj, fieldID, value))
-
-#define JRI_SetFieldInt(env, obj, fieldID, value) \
- (((*(env))->SetFieldInt)(env, JRI_SetFieldInt_op, obj, fieldID, value))
-
-#define JRI_SetFieldLong(env, obj, fieldID, value) \
- (((*(env))->SetFieldLong)(env, JRI_SetFieldLong_op, obj, fieldID, value))
-
-#define JRI_SetFieldFloat(env, obj, fieldID, value) \
- (((*(env))->SetFieldFloat)(env, JRI_SetFieldFloat_op, obj, fieldID, value))
-
-#define JRI_SetFieldDouble(env, obj, fieldID, value) \
- (((*(env))->SetFieldDouble)(env, JRI_SetFieldDouble_op, obj, fieldID, value))
-
-#define JRI_IsSubclassOf(env, a, b) \
- (((*(env))->IsSubclassOf)(env, JRI_IsSubclassOf_op, a, b))
-
-#define JRI_GetStaticMethodID(env, clazz, name, sig) \
- (((*(env))->GetStaticMethodID)(env, JRI_GetStaticMethodID_op, clazz, name, sig))
-
-#define JRI_CallStaticMethod(env) ((*(env))->CallStaticMethod)
-#define JRI_CallStaticMethodV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodV)(env, JRI_CallStaticMethod_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodA)(env, JRI_CallStaticMethod_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodBoolean(env) ((*(env))->CallStaticMethodBoolean)
-#define JRI_CallStaticMethodBooleanV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodBooleanV)(env, JRI_CallStaticMethodBoolean_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodBooleanA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodBooleanA)(env, JRI_CallStaticMethodBoolean_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodByte(env) ((*(env))->CallStaticMethodByte)
-#define JRI_CallStaticMethodByteV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodByteV)(env, JRI_CallStaticMethodByte_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodByteA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodByteA)(env, JRI_CallStaticMethodByte_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodChar(env) ((*(env))->CallStaticMethodChar)
-#define JRI_CallStaticMethodCharV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodCharV)(env, JRI_CallStaticMethodChar_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodCharA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodCharA)(env, JRI_CallStaticMethodChar_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodShort(env) ((*(env))->CallStaticMethodShort)
-#define JRI_CallStaticMethodShortV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodShortV)(env, JRI_CallStaticMethodShort_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodShortA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodShortA)(env, JRI_CallStaticMethodShort_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodInt(env) ((*(env))->CallStaticMethodInt)
-#define JRI_CallStaticMethodIntV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodIntV)(env, JRI_CallStaticMethodInt_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodIntA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodIntA)(env, JRI_CallStaticMethodInt_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodLong(env) ((*(env))->CallStaticMethodLong)
-#define JRI_CallStaticMethodLongV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodLongV)(env, JRI_CallStaticMethodLong_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodLongA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodLongA)(env, JRI_CallStaticMethodLong_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodFloat(env) ((*(env))->CallStaticMethodFloat)
-#define JRI_CallStaticMethodFloatV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodFloatV)(env, JRI_CallStaticMethodFloat_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodFloatA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodFloatA)(env, JRI_CallStaticMethodFloat_op_array, clazz, methodID, args))
-
-#define JRI_CallStaticMethodDouble(env) ((*(env))->CallStaticMethodDouble)
-#define JRI_CallStaticMethodDoubleV(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodDoubleV)(env, JRI_CallStaticMethodDouble_op_va_list, clazz, methodID, args))
-#define JRI_CallStaticMethodDoubleA(env, clazz, methodID, args) \
- (((*(env))->CallStaticMethodDoubleA)(env, JRI_CallStaticMethodDouble_op_array, clazz, methodID, args))
-
-#define JRI_GetStaticFieldID(env, clazz, name, sig) \
- (((*(env))->GetStaticFieldID)(env, JRI_GetStaticFieldID_op, clazz, name, sig))
-
-#define JRI_GetStaticField(env, clazz, fieldID) \
- (((*(env))->GetStaticField)(env, JRI_GetStaticField_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldBoolean(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldBoolean)(env, JRI_GetStaticFieldBoolean_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldByte(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldByte)(env, JRI_GetStaticFieldByte_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldChar(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldChar)(env, JRI_GetStaticFieldChar_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldShort(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldShort)(env, JRI_GetStaticFieldShort_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldInt(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldInt)(env, JRI_GetStaticFieldInt_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldLong(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldLong)(env, JRI_GetStaticFieldLong_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldFloat(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldFloat)(env, JRI_GetStaticFieldFloat_op, clazz, fieldID))
-
-#define JRI_GetStaticFieldDouble(env, clazz, fieldID) \
- (((*(env))->GetStaticFieldDouble)(env, JRI_GetStaticFieldDouble_op, clazz, fieldID))
-
-#define JRI_SetStaticField(env, clazz, fieldID, value) \
- (((*(env))->SetStaticField)(env, JRI_SetStaticField_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldBoolean(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldBoolean)(env, JRI_SetStaticFieldBoolean_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldByte(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldByte)(env, JRI_SetStaticFieldByte_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldChar(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldChar)(env, JRI_SetStaticFieldChar_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldShort(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldShort)(env, JRI_SetStaticFieldShort_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldInt(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldInt)(env, JRI_SetStaticFieldInt_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldLong(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldLong)(env, JRI_SetStaticFieldLong_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldFloat(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldFloat)(env, JRI_SetStaticFieldFloat_op, clazz, fieldID, value))
-
-#define JRI_SetStaticFieldDouble(env, clazz, fieldID, value) \
- (((*(env))->SetStaticFieldDouble)(env, JRI_SetStaticFieldDouble_op, clazz, fieldID, value))
-
-#define JRI_NewString(env, unicode, len) \
- (((*(env))->NewString)(env, JRI_NewString_op, unicode, len))
-
-#define JRI_GetStringLength(env, string) \
- (((*(env))->GetStringLength)(env, JRI_GetStringLength_op, string))
-
-#define JRI_GetStringChars(env, string) \
- (((*(env))->GetStringChars)(env, JRI_GetStringChars_op, string))
-
-#define JRI_NewStringUTF(env, utf, len) \
- (((*(env))->NewStringUTF)(env, JRI_NewStringUTF_op, utf, len))
-
-#define JRI_GetStringUTFLength(env, string) \
- (((*(env))->GetStringUTFLength)(env, JRI_GetStringUTFLength_op, string))
-
-#define JRI_GetStringUTFChars(env, string) \
- (((*(env))->GetStringUTFChars)(env, JRI_GetStringUTFChars_op, string))
-
-#define JRI_NewScalarArray(env, length, elementSig, initialElements) \
- (((*(env))->NewScalarArray)(env, JRI_NewScalarArray_op, length, elementSig, initialElements))
-
-#define JRI_GetScalarArrayLength(env, array) \
- (((*(env))->GetScalarArrayLength)(env, JRI_GetScalarArrayLength_op, array))
-
-#define JRI_GetScalarArrayElements(env, array) \
- (((*(env))->GetScalarArrayElements)(env, JRI_GetScalarArrayElements_op, array))
-
-#define JRI_NewObjectArray(env, length, elementClass, initialElement) \
- (((*(env))->NewObjectArray)(env, JRI_NewObjectArray_op, length, elementClass, initialElement))
-
-#define JRI_GetObjectArrayLength(env, array) \
- (((*(env))->GetObjectArrayLength)(env, JRI_GetObjectArrayLength_op, array))
-
-#define JRI_GetObjectArrayElement(env, array, index) \
- (((*(env))->GetObjectArrayElement)(env, JRI_GetObjectArrayElement_op, array, index))
-
-#define JRI_SetObjectArrayElement(env, array, index, value) \
- (((*(env))->SetObjectArrayElement)(env, JRI_SetObjectArrayElement_op, array, index, value))
-
-#define JRI_RegisterNatives(env, clazz, nameAndSigArray, nativeProcArray) \
- (((*(env))->RegisterNatives)(env, JRI_RegisterNatives_op, clazz, nameAndSigArray, nativeProcArray))
-
-#define JRI_UnregisterNatives(env, clazz) \
- (((*(env))->UnregisterNatives)(env, JRI_UnregisterNatives_op, clazz))
-
-/*******************************************************************************
- * JRIEnv Interface
- ******************************************************************************/
-
-struct java_lang_Class;
-struct java_lang_Throwable;
-struct java_lang_Object;
-struct java_lang_String;
-
-struct JRIEnvInterface {
- void* reserved0;
- void* reserved1;
- void* reserved2;
- struct java_lang_Class* (*LoadClass)(JRIEnv* env, jint op, jbyte* a, jsize aLen);
- struct java_lang_Class* (*FindClass)(JRIEnv* env, jint op, const char* a);
- void (*Throw)(JRIEnv* env, jint op, struct java_lang_Throwable* a);
- void (*ThrowNew)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b);
- struct java_lang_Throwable* (*ExceptionOccurred)(JRIEnv* env, jint op);
- void (*ExceptionDescribe)(JRIEnv* env, jint op);
- void (*ExceptionClear)(JRIEnv* env, jint op);
- jglobal (*NewGlobalRef)(JRIEnv* env, jint op, void* a);
- void (*DisposeGlobalRef)(JRIEnv* env, jint op, jglobal a);
- void* (*GetGlobalRef)(JRIEnv* env, jint op, jglobal a);
- void (*SetGlobalRef)(JRIEnv* env, jint op, jglobal a, void* b);
- jbool (*IsSameObject)(JRIEnv* env, jint op, void* a, void* b);
- void* (*NewObject)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- void* (*NewObjectV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- void* (*NewObjectA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- struct java_lang_Class* (*GetObjectClass)(JRIEnv* env, jint op, void* a);
- jbool (*IsInstanceOf)(JRIEnv* env, jint op, void* a, struct java_lang_Class* b);
- jint (*GetMethodID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
- void* (*CallMethod)(JRIEnv* env, jint op, void* a, jint b, ...);
- void* (*CallMethodV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- void* (*CallMethodA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jbool (*CallMethodBoolean)(JRIEnv* env, jint op, void* a, jint b, ...);
- jbool (*CallMethodBooleanV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jbool (*CallMethodBooleanA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jbyte (*CallMethodByte)(JRIEnv* env, jint op, void* a, jint b, ...);
- jbyte (*CallMethodByteV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jbyte (*CallMethodByteA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jchar (*CallMethodChar)(JRIEnv* env, jint op, void* a, jint b, ...);
- jchar (*CallMethodCharV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jchar (*CallMethodCharA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jshort (*CallMethodShort)(JRIEnv* env, jint op, void* a, jint b, ...);
- jshort (*CallMethodShortV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jshort (*CallMethodShortA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jint (*CallMethodInt)(JRIEnv* env, jint op, void* a, jint b, ...);
- jint (*CallMethodIntV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jint (*CallMethodIntA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jlong (*CallMethodLong)(JRIEnv* env, jint op, void* a, jint b, ...);
- jlong (*CallMethodLongV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jlong (*CallMethodLongA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jfloat (*CallMethodFloat)(JRIEnv* env, jint op, void* a, jint b, ...);
- jfloat (*CallMethodFloatV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jfloat (*CallMethodFloatA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jdouble (*CallMethodDouble)(JRIEnv* env, jint op, void* a, jint b, ...);
- jdouble (*CallMethodDoubleV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
- jdouble (*CallMethodDoubleA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
- jint (*GetFieldID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
- void* (*GetField)(JRIEnv* env, jint op, void* a, jint b);
- jbool (*GetFieldBoolean)(JRIEnv* env, jint op, void* a, jint b);
- jbyte (*GetFieldByte)(JRIEnv* env, jint op, void* a, jint b);
- jchar (*GetFieldChar)(JRIEnv* env, jint op, void* a, jint b);
- jshort (*GetFieldShort)(JRIEnv* env, jint op, void* a, jint b);
- jint (*GetFieldInt)(JRIEnv* env, jint op, void* a, jint b);
- jlong (*GetFieldLong)(JRIEnv* env, jint op, void* a, jint b);
- jfloat (*GetFieldFloat)(JRIEnv* env, jint op, void* a, jint b);
- jdouble (*GetFieldDouble)(JRIEnv* env, jint op, void* a, jint b);
- void (*SetField)(JRIEnv* env, jint op, void* a, jint b, void* c);
- void (*SetFieldBoolean)(JRIEnv* env, jint op, void* a, jint b, jbool c);
- void (*SetFieldByte)(JRIEnv* env, jint op, void* a, jint b, jbyte c);
- void (*SetFieldChar)(JRIEnv* env, jint op, void* a, jint b, jchar c);
- void (*SetFieldShort)(JRIEnv* env, jint op, void* a, jint b, jshort c);
- void (*SetFieldInt)(JRIEnv* env, jint op, void* a, jint b, jint c);
- void (*SetFieldLong)(JRIEnv* env, jint op, void* a, jint b, jlong c);
- void (*SetFieldFloat)(JRIEnv* env, jint op, void* a, jint b, jfloat c);
- void (*SetFieldDouble)(JRIEnv* env, jint op, void* a, jint b, jdouble c);
- jbool (*IsSubclassOf)(JRIEnv* env, jint op, struct java_lang_Class* a, struct java_lang_Class* b);
- jint (*GetStaticMethodID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
- void* (*CallStaticMethod)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- void* (*CallStaticMethodV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- void* (*CallStaticMethodA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jbool (*CallStaticMethodBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jbool (*CallStaticMethodBooleanV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jbool (*CallStaticMethodBooleanA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jbyte (*CallStaticMethodByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jbyte (*CallStaticMethodByteV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jbyte (*CallStaticMethodByteA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jchar (*CallStaticMethodChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jchar (*CallStaticMethodCharV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jchar (*CallStaticMethodCharA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jshort (*CallStaticMethodShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jshort (*CallStaticMethodShortV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jshort (*CallStaticMethodShortA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jint (*CallStaticMethodInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jint (*CallStaticMethodIntV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jint (*CallStaticMethodIntA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jlong (*CallStaticMethodLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jlong (*CallStaticMethodLongV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jlong (*CallStaticMethodLongA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jfloat (*CallStaticMethodFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jfloat (*CallStaticMethodFloatV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jfloat (*CallStaticMethodFloatA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jdouble (*CallStaticMethodDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
- jdouble (*CallStaticMethodDoubleV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
- jdouble (*CallStaticMethodDoubleA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
- jint (*GetStaticFieldID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
- void* (*GetStaticField)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jbool (*GetStaticFieldBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jbyte (*GetStaticFieldByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jchar (*GetStaticFieldChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jshort (*GetStaticFieldShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jint (*GetStaticFieldInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jlong (*GetStaticFieldLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jfloat (*GetStaticFieldFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- jdouble (*GetStaticFieldDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
- void (*SetStaticField)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, void* c);
- void (*SetStaticFieldBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jbool c);
- void (*SetStaticFieldByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jbyte c);
- void (*SetStaticFieldChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jchar c);
- void (*SetStaticFieldShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jshort c);
- void (*SetStaticFieldInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jint c);
- void (*SetStaticFieldLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jlong c);
- void (*SetStaticFieldFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jfloat c);
- void (*SetStaticFieldDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jdouble c);
- struct java_lang_String* (*NewString)(JRIEnv* env, jint op, const jchar* a, jint b);
- jint (*GetStringLength)(JRIEnv* env, jint op, struct java_lang_String* a);
- const jchar* (*GetStringChars)(JRIEnv* env, jint op, struct java_lang_String* a);
- struct java_lang_String* (*NewStringUTF)(JRIEnv* env, jint op, const jbyte* a, jint b);
- jint (*GetStringUTFLength)(JRIEnv* env, jint op, struct java_lang_String* a);
- const jbyte* (*GetStringUTFChars)(JRIEnv* env, jint op, struct java_lang_String* a);
- void* (*NewScalarArray)(JRIEnv* env, jint op, jint a, const char* b, const jbyte* c);
- jint (*GetScalarArrayLength)(JRIEnv* env, jint op, void* a);
- jbyte* (*GetScalarArrayElements)(JRIEnv* env, jint op, void* a);
- void* (*NewObjectArray)(JRIEnv* env, jint op, jint a, struct java_lang_Class* b, void* c);
- jint (*GetObjectArrayLength)(JRIEnv* env, jint op, void* a);
- void* (*GetObjectArrayElement)(JRIEnv* env, jint op, void* a, jint b);
- void (*SetObjectArrayElement)(JRIEnv* env, jint op, void* a, jint b, void* c);
- void (*RegisterNatives)(JRIEnv* env, jint op, struct java_lang_Class* a, char** b, void** c);
- void (*UnregisterNatives)(JRIEnv* env, jint op, struct java_lang_Class* a);
-};
-
-/*******************************************************************************
- * JRIEnv Operation IDs
- ******************************************************************************/
-
-typedef enum JRIEnvOperations {
- JRI_Reserved0_op,
- JRI_Reserved1_op,
- JRI_Reserved2_op,
- JRI_LoadClass_op,
- JRI_FindClass_op,
- JRI_Throw_op,
- JRI_ThrowNew_op,
- JRI_ExceptionOccurred_op,
- JRI_ExceptionDescribe_op,
- JRI_ExceptionClear_op,
- JRI_NewGlobalRef_op,
- JRI_DisposeGlobalRef_op,
- JRI_GetGlobalRef_op,
- JRI_SetGlobalRef_op,
- JRI_IsSameObject_op,
- JRI_NewObject_op,
- JRI_NewObject_op_va_list,
- JRI_NewObject_op_array,
- JRI_GetObjectClass_op,
- JRI_IsInstanceOf_op,
- JRI_GetMethodID_op,
- JRI_CallMethod_op,
- JRI_CallMethod_op_va_list,
- JRI_CallMethod_op_array,
- JRI_CallMethodBoolean_op,
- JRI_CallMethodBoolean_op_va_list,
- JRI_CallMethodBoolean_op_array,
- JRI_CallMethodByte_op,
- JRI_CallMethodByte_op_va_list,
- JRI_CallMethodByte_op_array,
- JRI_CallMethodChar_op,
- JRI_CallMethodChar_op_va_list,
- JRI_CallMethodChar_op_array,
- JRI_CallMethodShort_op,
- JRI_CallMethodShort_op_va_list,
- JRI_CallMethodShort_op_array,
- JRI_CallMethodInt_op,
- JRI_CallMethodInt_op_va_list,
- JRI_CallMethodInt_op_array,
- JRI_CallMethodLong_op,
- JRI_CallMethodLong_op_va_list,
- JRI_CallMethodLong_op_array,
- JRI_CallMethodFloat_op,
- JRI_CallMethodFloat_op_va_list,
- JRI_CallMethodFloat_op_array,
- JRI_CallMethodDouble_op,
- JRI_CallMethodDouble_op_va_list,
- JRI_CallMethodDouble_op_array,
- JRI_GetFieldID_op,
- JRI_GetField_op,
- JRI_GetFieldBoolean_op,
- JRI_GetFieldByte_op,
- JRI_GetFieldChar_op,
- JRI_GetFieldShort_op,
- JRI_GetFieldInt_op,
- JRI_GetFieldLong_op,
- JRI_GetFieldFloat_op,
- JRI_GetFieldDouble_op,
- JRI_SetField_op,
- JRI_SetFieldBoolean_op,
- JRI_SetFieldByte_op,
- JRI_SetFieldChar_op,
- JRI_SetFieldShort_op,
- JRI_SetFieldInt_op,
- JRI_SetFieldLong_op,
- JRI_SetFieldFloat_op,
- JRI_SetFieldDouble_op,
- JRI_IsSubclassOf_op,
- JRI_GetStaticMethodID_op,
- JRI_CallStaticMethod_op,
- JRI_CallStaticMethod_op_va_list,
- JRI_CallStaticMethod_op_array,
- JRI_CallStaticMethodBoolean_op,
- JRI_CallStaticMethodBoolean_op_va_list,
- JRI_CallStaticMethodBoolean_op_array,
- JRI_CallStaticMethodByte_op,
- JRI_CallStaticMethodByte_op_va_list,
- JRI_CallStaticMethodByte_op_array,
- JRI_CallStaticMethodChar_op,
- JRI_CallStaticMethodChar_op_va_list,
- JRI_CallStaticMethodChar_op_array,
- JRI_CallStaticMethodShort_op,
- JRI_CallStaticMethodShort_op_va_list,
- JRI_CallStaticMethodShort_op_array,
- JRI_CallStaticMethodInt_op,
- JRI_CallStaticMethodInt_op_va_list,
- JRI_CallStaticMethodInt_op_array,
- JRI_CallStaticMethodLong_op,
- JRI_CallStaticMethodLong_op_va_list,
- JRI_CallStaticMethodLong_op_array,
- JRI_CallStaticMethodFloat_op,
- JRI_CallStaticMethodFloat_op_va_list,
- JRI_CallStaticMethodFloat_op_array,
- JRI_CallStaticMethodDouble_op,
- JRI_CallStaticMethodDouble_op_va_list,
- JRI_CallStaticMethodDouble_op_array,
- JRI_GetStaticFieldID_op,
- JRI_GetStaticField_op,
- JRI_GetStaticFieldBoolean_op,
- JRI_GetStaticFieldByte_op,
- JRI_GetStaticFieldChar_op,
- JRI_GetStaticFieldShort_op,
- JRI_GetStaticFieldInt_op,
- JRI_GetStaticFieldLong_op,
- JRI_GetStaticFieldFloat_op,
- JRI_GetStaticFieldDouble_op,
- JRI_SetStaticField_op,
- JRI_SetStaticFieldBoolean_op,
- JRI_SetStaticFieldByte_op,
- JRI_SetStaticFieldChar_op,
- JRI_SetStaticFieldShort_op,
- JRI_SetStaticFieldInt_op,
- JRI_SetStaticFieldLong_op,
- JRI_SetStaticFieldFloat_op,
- JRI_SetStaticFieldDouble_op,
- JRI_NewString_op,
- JRI_GetStringLength_op,
- JRI_GetStringChars_op,
- JRI_NewStringUTF_op,
- JRI_GetStringUTFLength_op,
- JRI_GetStringUTFChars_op,
- JRI_NewScalarArray_op,
- JRI_GetScalarArrayLength_op,
- JRI_GetScalarArrayElements_op,
- JRI_NewObjectArray_op,
- JRI_GetObjectArrayLength_op,
- JRI_GetObjectArrayElement_op,
- JRI_SetObjectArrayElement_op,
- JRI_RegisterNatives_op,
- JRI_UnregisterNatives_op
-} JRIEnvOperations;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif /* JRI_H */
-/******************************************************************************/
diff --git a/extensions/nsplugin/src/jri_md.h b/extensions/nsplugin/src/jri_md.h
deleted file mode 100644
index 9a1c227b2..000000000
--- a/extensions/nsplugin/src/jri_md.h
+++ /dev/null
@@ -1,499 +0,0 @@
-/*******************************************************************************
- * Java Runtime Interface - Machine Dependent Types
- * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
- ******************************************************************************/
-
-#ifndef JRI_MD_H
-#define JRI_MD_H
-
-#include <assert.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
- * WHAT'S UP WITH THIS FILE?
- *
- * This is where we define the mystical JRI_PUBLIC_API macro that works on all
- * platforms. If you're running with Visual C++, Symantec C, or Borland's
- * development environment on the PC, you're all set. Or if you're on the Mac
- * with Metrowerks, Symantec or MPW with SC you're ok too. For UNIX it shouldn't
- * matter.
- *
- * On UNIX though you probably care about a couple of other symbols though:
- * IS_LITTLE_ENDIAN must be defined for little-endian systems
- * HAVE_LONG_LONG must be defined on systems that have 'long long' integers
- * HAVE_ALIGNED_LONGLONGS must be defined if long-longs must be 8 byte aligned
- * HAVE_ALIGNED_DOUBLES must be defined if doubles must be 8 byte aligned
- * IS_64 must be defined on 64-bit machines (like Dec Alpha)
- ******************************************************************************/
-
-/* DLL Entry modifiers... */
-
-/* PC */
-#if defined(XP_PC) || defined(_WINDOWS) || defined(WIN32) || defined(_WIN32)
-# include <windows.h>
-# if defined(_MSC_VER)
-# if defined(WIN32) || defined(_WIN32)
-# define JRI_PUBLIC_API(ResultType) _declspec(dllexport) ResultType
-# define JRI_CALLBACK
-# else /* !_WIN32 */
-# if defined(_WINDLL)
-# define JRI_PUBLIC_API(ResultType) ResultType __cdecl __export __loadds
-# define JRI_CALLBACK __loadds
-# else /* !WINDLL */
-# define JRI_PUBLIC_API(ResultType) ResultType __cdecl __export
-# define JRI_CALLBACK __export
-# endif /* !WINDLL */
-# endif /* !_WIN32 */
-# elif defined(__BORLANDC__)
-# if defined(WIN32) || defined(_WIN32)
-# define JRI_PUBLIC_API(ResultType) __export ResultType
-# define JRI_CALLBACK
-# else /* !_WIN32 */
-# define JRI_PUBLIC_API(ResultType) ResultType _cdecl _export _loadds
-# define JRI_CALLBACK _loadds
-# endif
-# else
-# error Unsupported PC development environment.
-# endif
-# ifndef IS_LITTLE_ENDIAN
-# define IS_LITTLE_ENDIAN
-# endif
-
-/* Mac */
-#elif macintosh || Macintosh || THINK_C
-# if defined(__MWERKS__) /* Metrowerks */
-# if !__option(enumsalwaysint)
-# error You need to define 'Enums Always Int' for your project.
-# endif
-# if defined(GENERATING68K) && !GENERATINGCFM
-# if !__option(fourbyteints)
-# error You need to define 'Struct Alignment: 68k' for your project.
-# endif
-# endif /* !GENERATINGCFM */
-# elif defined(__SC__) /* Symantec */
-# error What are the Symantec defines? ([email protected])
-# elif macintosh && applec /* MPW */
-# error Please upgrade to the latest MPW compiler (SC).
-# else
-# error Unsupported Mac development environment.
-# endif
-# define JRI_PUBLIC_API(ResultType) ResultType
-# define JRI_CALLBACK
-
-/* Unix or else */
-#else
-# define JRI_PUBLIC_API(ResultType) ResultType
-# define JRI_CALLBACK
-#endif
-
-#ifndef FAR /* for non-Win16 */
-#define FAR
-#endif
-
-/******************************************************************************/
-
-/* Java Scalar Types */
-
-typedef unsigned char jbool;
-typedef char jbyte;
-typedef short jchar;
-typedef short jshort;
-#ifdef IS_64 /* XXX ok for alpha, but not right on all 64-bit architectures */
-typedef unsigned int juint;
-typedef int jint;
-#else
-typedef unsigned long juint;
-typedef long jint;
-#endif
-typedef float jfloat;
-typedef double jdouble;
-
-typedef juint jsize;
-
-/*******************************************************************************
- * jlong : long long (64-bit signed integer type) support.
- ******************************************************************************/
-
-/*
-** Bit masking macros. (n must be <= 31 to be portable)
-*/
-#define JRI_BIT(n) ((juint)1 << (n))
-#define JRI_BITMASK(n) (JRI_BIT(n) - 1)
-
-#ifdef HAVE_LONG_LONG
-
-#if !(defined(WIN32) || defined(_WIN32))
-typedef long long jlong;
-typedef unsigned long long julong;
-
-#define jlong_MAXINT 0x7fffffffffffffffLL
-#define jlong_MININT 0x8000000000000000LL
-#define jlong_ZERO 0x0LL
-
-#else
-typedef LONGLONG jlong;
-typedef DWORDLONG julong;
-
-#define jlong_MAXINT 0x7fffffffffffffffi64
-#define jlong_MININT 0x8000000000000000i64
-#define jlong_ZERO 0x0i64
-
-#endif
-
-#define jlong_IS_ZERO(a) ((a) == 0)
-#define jlong_EQ(a, b) ((a) == (b))
-#define jlong_NE(a, b) ((a) != (b))
-#define jlong_GE_ZERO(a) ((a) >= 0)
-#define jlong_CMP(a, op, b) ((a) op (b))
-
-#define jlong_AND(r, a, b) ((r) = (a) & (b))
-#define jlong_OR(r, a, b) ((r) = (a) | (b))
-#define jlong_XOR(r, a, b) ((r) = (a) ^ (b))
-#define jlong_OR2(r, a) ((r) = (r) | (a))
-#define jlong_NOT(r, a) ((r) = ~(a))
-
-#define jlong_NEG(r, a) ((r) = -(a))
-#define jlong_ADD(r, a, b) ((r) = (a) + (b))
-#define jlong_SUB(r, a, b) ((r) = (a) - (b))
-
-#define jlong_MUL(r, a, b) ((r) = (a) * (b))
-#define jlong_DIV(r, a, b) ((r) = (a) / (b))
-#define jlong_MOD(r, a, b) ((r) = (a) % (b))
-
-#define jlong_SHL(r, a, b) ((r) = (a) << (b))
-#define jlong_SHR(r, a, b) ((r) = (a) >> (b))
-#define jlong_USHR(r, a, b) ((r) = (julong)(a) >> (b))
-#define jlong_ISHL(r, a, b) ((r) = ((jlong)(a)) << (b))
-
-#define jlong_L2I(i, l) ((i) = (int)(l))
-#define jlong_L2UI(ui, l) ((ui) =(unsigned int)(l))
-#define jlong_L2F(f, l) ((f) = (l))
-#define jlong_L2D(d, l) ((d) = (l))
-
-#define jlong_I2L(l, i) ((l) = (i))
-#define jlong_UI2L(l, ui) ((l) = (ui))
-#define jlong_F2L(l, f) ((l) = (f))
-#define jlong_D2L(l, d) ((l) = (d))
-
-#define jlong_UDIVMOD(qp, rp, a, b) \
- (*(qp) = ((julong)(a) / (b)), \
- *(rp) = ((julong)(a) % (b)))
-
-#else /* !HAVE_LONG_LONG */
-
-typedef struct {
-#ifdef IS_LITTLE_ENDIAN
- juint lo, hi;
-#else
- juint hi, lo;
-#endif
-} jlong;
-typedef jlong julong;
-
-extern jlong jlong_MAXINT, jlong_MININT, jlong_ZERO;
-
-#define jlong_IS_ZERO(a) (((a).hi == 0) && ((a).lo == 0))
-#define jlong_EQ(a, b) (((a).hi == (b).hi) && ((a).lo == (b).lo))
-#define jlong_NE(a, b) (((a).hi != (b).hi) || ((a).lo != (b).lo))
-#define jlong_GE_ZERO(a) (((a).hi >> 31) == 0)
-
-/*
- * NB: jlong_CMP and jlong_UCMP work only for strict relationals (<, >).
- */
-#define jlong_CMP(a, op, b) (((int32)(a).hi op (int32)(b).hi) || \
- (((a).hi == (b).hi) && ((a).lo op (b).lo)))
-#define jlong_UCMP(a, op, b) (((a).hi op (b).hi) || \
- (((a).hi == (b).hi) && ((a).lo op (b).lo)))
-
-#define jlong_AND(r, a, b) ((r).lo = (a).lo & (b).lo, \
- (r).hi = (a).hi & (b).hi)
-#define jlong_OR(r, a, b) ((r).lo = (a).lo | (b).lo, \
- (r).hi = (a).hi | (b).hi)
-#define jlong_XOR(r, a, b) ((r).lo = (a).lo ^ (b).lo, \
- (r).hi = (a).hi ^ (b).hi)
-#define jlong_OR2(r, a) ((r).lo = (r).lo | (a).lo, \
- (r).hi = (r).hi | (a).hi)
-#define jlong_NOT(r, a) ((r).lo = ~(a).lo, \
- (r).hi = ~(a).hi)
-
-#define jlong_NEG(r, a) ((r).lo = -(int32)(a).lo, \
- (r).hi = -(int32)(a).hi - ((r).lo != 0))
-#define jlong_ADD(r, a, b) { \
- jlong _a, _b; \
- _a = a; _b = b; \
- (r).lo = _a.lo + _b.lo; \
- (r).hi = _a.hi + _b.hi + ((r).lo < _b.lo); \
-}
-
-#define jlong_SUB(r, a, b) { \
- jlong _a, _b; \
- _a = a; _b = b; \
- (r).lo = _a.lo - _b.lo; \
- (r).hi = _a.hi - _b.hi - (_a.lo < _b.lo); \
-} \
-
-/*
- * Multiply 64-bit operands a and b to get 64-bit result r.
- * First multiply the low 32 bits of a and b to get a 64-bit result in r.
- * Then add the outer and inner products to r.hi.
- */
-#define jlong_MUL(r, a, b) { \
- jlong _a, _b; \
- _a = a; _b = b; \
- jlong_MUL32(r, _a.lo, _b.lo); \
- (r).hi += _a.hi * _b.lo + _a.lo * _b.hi; \
-}
-
-/* XXX _jlong_lo16(a) = ((a) << 16 >> 16) is better on some archs (not on mips) */
-#define _jlong_lo16(a) ((a) & JRI_BITMASK(16))
-#define _jlong_hi16(a) ((a) >> 16)
-
-/*
- * Multiply 32-bit operands a and b to get 64-bit result r.
- * Use polynomial expansion based on primitive field element (1 << 16).
- */
-#define jlong_MUL32(r, a, b) { \
- juint _a1, _a0, _b1, _b0, _y0, _y1, _y2, _y3; \
- _a1 = _jlong_hi16(a), _a0 = _jlong_lo16(a); \
- _b1 = _jlong_hi16(b), _b0 = _jlong_lo16(b); \
- _y0 = _a0 * _b0; \
- _y1 = _a0 * _b1; \
- _y2 = _a1 * _b0; \
- _y3 = _a1 * _b1; \
- _y1 += _jlong_hi16(_y0); /* can't carry */ \
- _y1 += _y2; /* might carry */ \
- if (_y1 < _y2) _y3 += 1 << 16; /* propagate */ \
- (r).lo = (_jlong_lo16(_y1) << 16) + _jlong_lo16(_y0); \
- (r).hi = _y3 + _jlong_hi16(_y1); \
-}
-
-/*
- * Divide 64-bit unsigned operand a by 64-bit unsigned operand b, setting *qp
- * to the 64-bit unsigned quotient, and *rp to the 64-bit unsigned remainder.
- * Minimize effort if one of qp and rp is null.
- */
-#define jlong_UDIVMOD(qp, rp, a, b) jlong_udivmod(qp, rp, a, b)
-
-extern JRI_PUBLIC_API(void)
-jlong_udivmod(julong *qp, julong *rp, julong a, julong b);
-
-#define jlong_DIV(r, a, b) { \
- jlong _a, _b; \
- juint _negative = (int32)(a).hi < 0; \
- if (_negative) { \
- jlong_NEG(_a, a); \
- } else { \
- _a = a; \
- } \
- if ((int32)(b).hi < 0) { \
- _negative ^= 1; \
- jlong_NEG(_b, b); \
- } else { \
- _b = b; \
- } \
- jlong_UDIVMOD(&(r), 0, _a, _b); \
- if (_negative) \
- jlong_NEG(r, r); \
-}
-
-#define jlong_MOD(r, a, b) { \
- jlong _a, _b; \
- juint _negative = (int32)(a).hi < 0; \
- if (_negative) { \
- jlong_NEG(_a, a); \
- } else { \
- _a = a; \
- } \
- if ((int32)(b).hi < 0) { \
- jlong_NEG(_b, b); \
- } else { \
- _b = b; \
- } \
- jlong_UDIVMOD(0, &(r), _a, _b); \
- if (_negative) \
- jlong_NEG(r, r); \
-}
-
-/*
- * NB: b is a juint, not jlong or julong, for the shift ops.
- */
-#define jlong_SHL(r, a, b) { \
- if (b) { \
- jlong _a; \
- _a = a; \
- if ((b) < 32) { \
- (r).lo = _a.lo << (b); \
- (r).hi = (_a.hi << (b)) | (_a.lo >> (32 - (b))); \
- } else { \
- (r).lo = 0; \
- (r).hi = _a.lo << ((b) & 31); \
- } \
- } else { \
- (r) = (a); \
- } \
-}
-
-/* a is an int32, b is int32, r is jlong */
-#define jlong_ISHL(r, a, b) { \
- if (b) { \
- jlong _a; \
- _a.lo = (a); \
- _a.hi = 0; \
- if ((b) < 32) { \
- (r).lo = (a) << (b); \
- (r).hi = ((a) >> (32 - (b))); \
- } else { \
- (r).lo = 0; \
- (r).hi = (a) << ((b) & 31); \
- } \
- } else { \
- (r).lo = (a); \
- (r).hi = 0; \
- } \
-}
-
-#define jlong_SHR(r, a, b) { \
- if (b) { \
- jlong _a; \
- _a = a; \
- if ((b) < 32) { \
- (r).lo = (_a.hi << (32 - (b))) | (_a.lo >> (b)); \
- (r).hi = (int32)_a.hi >> (b); \
- } else { \
- (r).lo = (int32)_a.hi >> ((b) & 31); \
- (r).hi = (int32)_a.hi >> 31; \
- } \
- } else { \
- (r) = (a); \
- } \
-}
-
-#define jlong_USHR(r, a, b) { \
- if (b) { \
- jlong _a; \
- _a = a; \
- if ((b) < 32) { \
- (r).lo = (_a.hi << (32 - (b))) | (_a.lo >> (b)); \
- (r).hi = _a.hi >> (b); \
- } else { \
- (r).lo = _a.hi >> ((b) & 31); \
- (r).hi = 0; \
- } \
- } else { \
- (r) = (a); \
- } \
-}
-
-#define jlong_L2I(i, l) ((i) = (l).lo)
-#define jlong_L2UI(ui, l) ((ui) = (l).lo)
-#define jlong_L2F(f, l) { double _d; jlong_L2D(_d, l); (f) = (float) _d; }
-
-#define jlong_L2D(d, l) { \
- int32 _negative; \
- jlong _absval; \
- \
- _negative = (l).hi >> 31; \
- if (_negative) { \
- jlong_NEG(_absval, l); \
- } else { \
- _absval = l; \
- } \
- (d) = (double)_absval.hi * 4.294967296e9 + _absval.lo; \
- if (_negative) \
- (d) = -(d); \
-}
-
-#define jlong_I2L(l, i) ((l).hi = (i) >> 31, (l).lo = (i))
-#define jlong_UI2L(l, ui) ((l).hi = 0, (l).lo = (ui))
-#define jlong_F2L(l, f) { double _d = (double) f; jlong_D2L(l, _d); }
-
-#define jlong_D2L(l, d) { \
- int _negative; \
- double _absval, _d_hi; \
- jlong _lo_d; \
- \
- _negative = ((d) < 0); \
- _absval = _negative ? -(d) : (d); \
- \
- (l).hi = (juint)(_absval / 4.294967296e9); \
- (l).lo = 0; \
- jlong_L2D(_d_hi, l); \
- _absval -= _d_hi; \
- _lo_d.hi = 0; \
- if (_absval < 0) { \
- _lo_d.lo = (juint) -_absval; \
- jlong_SUB(l, l, _lo_d); \
- } else { \
- _lo_d.lo = (juint) _absval; \
- jlong_ADD(l, l, _lo_d); \
- } \
- \
- if (_negative) \
- jlong_NEG(l, l); \
-}
-
-#endif /* !HAVE_LONG_LONG */
-
-/******************************************************************************/
-/*
-** JDK Stuff -- This stuff is still needed while we're using the JDK
-** dynamic linking strategy to call native methods.
-*/
-
-typedef union JRI_JDK_stack_item {
- /* Non pointer items */
- jint i;
- jfloat f;
- jint o;
- /* Pointer items */
- void *h;
- void *p;
- unsigned char *addr;
-#ifdef IS_64
- double d;
- long l; /* == 64bits! */
-#endif
-} JRI_JDK_stack_item;
-
-typedef union JRI_JDK_Java8Str {
- jint x[2];
- jdouble d;
- jlong l;
- void *p;
- float f;
-} JRI_JDK_Java8;
-
-#ifdef HAVE_ALIGNED_LONGLONGS
-#define JRI_GET_INT64(_t,_addr) ( ((_t).x[0] = ((jint*)(_addr))[0]), \
- ((_t).x[1] = ((jint*)(_addr))[1]), \
- (_t).l )
-#define JRI_SET_INT64(_t, _addr, _v) ( (_t).l = (_v), \
- ((jint*)(_addr))[0] = (_t).x[0], \
- ((jint*)(_addr))[1] = (_t).x[1] )
-#else
-#define JRI_GET_INT64(_t,_addr) (*(jlong*)(_addr))
-#define JRI_SET_INT64(_t, _addr, _v) (*(jlong*)(_addr) = (_v))
-#endif
-
-/* If double's must be aligned on doubleword boundaries then define this */
-#ifdef HAVE_ALIGNED_DOUBLES
-#define JRI_GET_DOUBLE(_t,_addr) ( ((_t).x[0] = ((jint*)(_addr))[0]), \
- ((_t).x[1] = ((jint*)(_addr))[1]), \
- (_t).d )
-#define JRI_SET_DOUBLE(_t, _addr, _v) ( (_t).d = (_v), \
- ((jint*)(_addr))[0] = (_t).x[0], \
- ((jint*)(_addr))[1] = (_t).x[1] )
-#else
-#define JRI_GET_DOUBLE(_t,_addr) (*(jdouble*)(_addr))
-#define JRI_SET_DOUBLE(_t, _addr, _v) (*(jdouble*)(_addr) = (_v))
-#endif
-
-/******************************************************************************/
-#ifdef __cplusplus
-}
-#endif
-#endif /* JRI_MD_H */
-/******************************************************************************/
diff --git a/extensions/nsplugin/src/jritypes.h b/extensions/nsplugin/src/jritypes.h
deleted file mode 100644
index e48fb0ce5..000000000
--- a/extensions/nsplugin/src/jritypes.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Java Runtime Interface
- * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
- ******************************************************************************/
-
-#ifndef JRITYPES_H
-#define JRITYPES_H
-
-#include "jri_md.h"
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
- * Types
- ******************************************************************************/
-
-struct JRIEnvInterface;
-
-typedef void* JRIRef;
-typedef void* JRIGlobalRef;
-
-typedef jint JRIInterfaceID[4];
-typedef jint JRIFieldID;
-typedef jint JRIMethodID;
-
-/* synonyms: */
-typedef JRIGlobalRef jglobal;
-typedef JRIRef jref;
-
-typedef union JRIValue {
- jbool z;
- jbyte b;
- jchar c;
- jshort s;
- jint i;
- jlong l;
- jfloat f;
- jdouble d;
- jref r;
-} JRIValue;
-
-typedef JRIValue jvalue;
-
-typedef enum JRIBoolean {
- JRIFalse = 0,
- JRITrue = 1
-} JRIBoolean;
-
-typedef enum JRIConstant {
- JRIUninitialized = -1
-} JRIConstant;
-
-/* convenience types: */
-typedef JRIRef jbooleanArray;
-typedef JRIRef jbyteArray;
-typedef JRIRef jcharArray;
-typedef JRIRef jshortArray;
-typedef JRIRef jintArray;
-typedef JRIRef jlongArray;
-typedef JRIRef jfloatArray;
-typedef JRIRef jdoubleArray;
-typedef JRIRef jobjectArray;
-typedef JRIRef jstringArray;
-typedef JRIRef jarrayArray;
-
-#define JRIConstructorMethodName "<init>"
-
-/*******************************************************************************
- * Signature Construction Macros
- ******************************************************************************/
-
-/*
-** These macros can be used to construct signature strings. Hopefully their names
-** are a little easier to remember than the single character they correspond to.
-** For example, to specify the signature of the method:
-**
-** public int read(byte b[], int off, int len);
-**
-** you could write something like this in C:
-**
-** char* readSig = JRISigMethod(JRISigArray(JRISigByte)
-** JRISigInt
-** JRISigInt) JRISigInt;
-**
-** Of course, don't put commas between the types.
-*/
-#define JRISigArray(T) "[" T
-#define JRISigByte "B"
-#define JRISigChar "C"
-#define JRISigClass(name) "L" name ";"
-#define JRISigFloat "F"
-#define JRISigDouble "D"
-#define JRISigMethod(args) "(" args ")"
-#define JRISigNoArgs ""
-#define JRISigInt "I"
-#define JRISigLong "J"
-#define JRISigShort "S"
-#define JRISigVoid "V"
-#define JRISigBoolean "Z"
-
-/*******************************************************************************
- * Environments
- ******************************************************************************/
-
-extern JRI_PUBLIC_API(const struct JRIEnvInterface**)
-JRI_GetCurrentEnv(void);
-
-/*******************************************************************************
- * Specific Scalar Array Types
- ******************************************************************************/
-
-/*
-** The JRI Native Method Interface does not support boolean arrays. This
-** is to allow Java runtime implementations to optimize boolean array
-** storage. Using the ScalarArray operations on boolean arrays is bound
-** to fail, so convert any boolean arrays to byte arrays in Java before
-** passing them to a native method.
-*/
-
-#define JRI_NewByteArray(env, length, initialValues) \
- JRI_NewScalarArray(env, length, JRISigByte, (jbyte*)(initialValues))
-#define JRI_GetByteArrayLength(env, array) \
- JRI_GetScalarArrayLength(env, array)
-#define JRI_GetByteArrayElements(env, array) \
- JRI_GetScalarArrayElements(env, array)
-
-#define JRI_NewCharArray(env, length, initialValues) \
- JRI_NewScalarArray(env, ((length) * sizeof(jchar)), JRISigChar, (jbyte*)(initialValues))
-#define JRI_GetCharArrayLength(env, array) \
- JRI_GetScalarArrayLength(env, array)
-#define JRI_GetCharArrayElements(env, array) \
- ((jchar*)JRI_GetScalarArrayElements(env, array))
-
-#define JRI_NewShortArray(env, length, initialValues) \
- JRI_NewScalarArray(env, ((length) * sizeof(jshort)), JRISigShort, (jbyte*)(initialValues))
-#define JRI_GetShortArrayLength(env, array) \
- JRI_GetScalarArrayLength(env, array)
-#define JRI_GetShortArrayElements(env, array) \
- ((jshort*)JRI_GetScalarArrayElements(env, array))
-
-#define JRI_NewIntArray(env, length, initialValues) \
- JRI_NewScalarArray(env, ((length) * sizeof(jint)), JRISigInt, (jbyte*)(initialValues))
-#define JRI_GetIntArrayLength(env, array) \
- JRI_GetScalarArrayLength(env, array)
-#define JRI_GetIntArrayElements(env, array) \
- ((jint*)JRI_GetScalarArrayElements(env, array))
-
-#define JRI_NewLongArray(env, length, initialValues) \
- JRI_NewScalarArray(env, ((length) * sizeof(jlong)), JRISigLong, (jbyte*)(initialValues))
-#define JRI_GetLongArrayLength(env, array) \
- JRI_GetScalarArrayLength(env, array)
-#define JRI_GetLongArrayElements(env, array) \
- ((jlong*)JRI_GetScalarArrayElements(env, array))
-
-#define JRI_NewFloatArray(env, length, initialValues) \
- JRI_NewScalarArray(env, ((length) * sizeof(jfloat)), JRISigFloat, (jbyte*)(initialValues))
-#define JRI_GetFloatArrayLength(env, array) \
- JRI_GetScalarArrayLength(env, array)
-#define JRI_GetFloatArrayElements(env, array) \
- ((jfloat*)JRI_GetScalarArrayElements(env, array))
-
-#define JRI_NewDoubleArray(env, length, initialValues) \
- JRI_NewScalarArray(env, ((length) * sizeof(jdouble)), JRISigDouble, (jbyte*)(initialValues))
-#define JRI_GetDoubleArrayLength(env, array) \
- JRI_GetScalarArrayLength(env, array)
-#define JRI_GetDoubleArrayElements(env, array) \
- ((jdouble*)JRI_GetScalarArrayElements(env, array))
-
-/******************************************************************************/
-#ifdef __cplusplus
-}
-#endif
-#endif /* JRITYPES_H */
-/******************************************************************************/
diff --git a/extensions/nsplugin/src/npapi.h b/extensions/nsplugin/src/npapi.h
deleted file mode 100644
index 96c308de0..000000000
--- a/extensions/nsplugin/src/npapi.h
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * npapi.h $Revision: 1.1 $
- * Netscape client plug-in API spec
- */
-
-#ifndef _NPAPI_H_
-#define _NPAPI_H_
-
-#include "jri.h" /* Java Runtime Interface */
-
-
-/* XXX this needs to get out of here */
-#if defined(__MWERKS__)
-#ifndef XP_MAC
-#define XP_MAC
-#endif
-#endif
-
-
-
-/*----------------------------------------------------------------------*/
-/* Plugin Version Constants */
-/*----------------------------------------------------------------------*/
-
-#define NP_VERSION_MAJOR 0
-#define NP_VERSION_MINOR 9
-
-
-
-/*----------------------------------------------------------------------*/
-/* Definition of Basic Types */
-/*----------------------------------------------------------------------*/
-
-#ifndef _UINT16
-typedef unsigned short uint16;
-#endif
-#ifndef _UINT32
-#if defined(__alpha)
-typedef unsigned int uint32;
-#else /* __alpha */
-typedef unsigned long uint32;
-#endif /* __alpha */
-#endif
-#ifndef _INT16
-typedef short int16;
-#endif
-#ifndef _INT32
-#if defined(__alpha)
-typedef int int32;
-#else /* __alpha */
-typedef long int32;
-#endif /* __alpha */
-#endif
-
-#ifndef FALSE
-#define FALSE (0)
-#endif
-#ifndef TRUE
-#define TRUE (1)
-#endif
-#ifndef NULL
-#define NULL (0L)
-#endif
-
-typedef unsigned char NPBool;
-typedef void* NPEvent;
-typedef int16 NPError;
-typedef int16 NPReason;
-typedef char* NPMIMEType;
-
-
-
-/*----------------------------------------------------------------------*/
-/* Structures and definitions */
-/*----------------------------------------------------------------------*/
-
-/*
- * NPP is a plug-in's opaque instance handle
- */
-typedef struct _NPP
-{
- void* pdata; /* plug-in private data */
- void* ndata; /* netscape private data */
-} NPP_t;
-
-typedef NPP_t* NPP;
-
-
-typedef struct _NPStream
-{
- void* pdata; /* plug-in private data */
- void* ndata; /* netscape private data */
- const char* url;
- uint32 end;
- uint32 lastmodified;
- void* notifyData;
-} NPStream;
-
-
-typedef struct _NPByteRange
-{
- int32 offset; /* negative offset means from the end */
- uint32 length;
- struct _NPByteRange* next;
-} NPByteRange;
-
-
-typedef struct _NPSavedData
-{
- int32 len;
- void* buf;
-} NPSavedData;
-
-
-typedef struct _NPRect
-{
- uint16 top;
- uint16 left;
- uint16 bottom;
- uint16 right;
-} NPRect;
-
-
-#ifdef XP_UNIX
-/*
- * Unix specific structures and definitions
- */
-#include <X11/Xlib.h>
-
-/*
- * Callback Structures.
- *
- * These are used to pass additional platform specific information.
- */
-enum {
- NP_SETWINDOW = 1
-};
-
-typedef struct
-{
- int32 type;
-} NPAnyCallbackStruct;
-
-typedef struct
-{
- int32 type;
- Display* display;
- Visual* visual;
- Colormap colormap;
- unsigned int depth;
-} NPSetWindowCallbackStruct;
-
-/*
- * List of variable names for which NPP_GetValue shall be implemented
- */
-typedef enum {
- NPPVpluginNameString = 1,
- NPPVpluginDescriptionString
-} NPPVariable;
-
-/*
- * List of variable names for which NPN_GetValue is implemented by Mozilla
- */
-typedef enum {
- NPNVxDisplay = 1,
- NPNVxtAppContext
-} NPNVariable;
-
-#endif /* XP_UNIX */
-
-
-typedef struct _NPWindow
-{
- void* window; /* Platform specific window handle */
- uint32 x; /* Position of top left corner relative */
- uint32 y; /* to a netscape page. */
- uint32 width; /* Maximum window size */
- uint32 height;
- NPRect clipRect; /* Clipping rectangle in port coordinates */
- /* Used by MAC only. */
-#ifdef XP_UNIX
- void * ws_info; /* Platform-dependent additonal data */
-#endif /* XP_UNIX */
-} NPWindow;
-
-
-typedef struct _NPFullPrint
-{
- NPBool pluginPrinted; /* Set TRUE if plugin handled fullscreen */
- /* printing */
- NPBool printOne; /* TRUE if plugin should print one copy */
- /* to default printer */
- void* platformPrint; /* Platform-specific printing info */
-} NPFullPrint;
-
-typedef struct _NPEmbedPrint
-{
- NPWindow window;
- void* platformPrint; /* Platform-specific printing info */
-} NPEmbedPrint;
-
-typedef struct _NPPrint
-{
- uint16 mode; /* NP_FULL or NP_EMBED */
- union
- {
- NPFullPrint fullPrint; /* if mode is NP_FULL */
- NPEmbedPrint embedPrint; /* if mode is NP_EMBED */
- } print;
-} NPPrint;
-
-
-#ifdef XP_MAC
-/*
- * Mac-specific structures and definitions.
- */
-
-#include <Quickdraw.h>
-#include <Events.h>
-
-typedef struct NP_Port
-{
- CGrafPtr port; /* Grafport */
- int32 portx; /* position inside the topmost window */
- int32 porty;
-} NP_Port;
-
-/*
- * Non-standard event types that can be passed to HandleEvent
- */
-#define getFocusEvent (osEvt + 16)
-#define loseFocusEvent (osEvt + 17)
-#define adjustCursorEvent (osEvt + 18)
-
-#endif /* XP_MAC */
-
-
-/*
- * Values for mode passed to NPP_New:
- */
-#define NP_EMBED 1
-#define NP_FULL 2
-
-/*
- * Values for stream type passed to NPP_NewStream:
- */
-#define NP_NORMAL 1
-#define NP_SEEK 2
-#define NP_ASFILE 3
-#define NP_ASFILEONLY 4
-
-#define NP_MAXREADY (((unsigned)(~0)<<1)>>1)
-
-
-
-/*----------------------------------------------------------------------*/
-/* Error and Reason Code definitions */
-/*----------------------------------------------------------------------*/
-
-/*
- * Values of type NPError:
- */
-#define NPERR_BASE 0
-#define NPERR_NO_ERROR (NPERR_BASE + 0)
-#define NPERR_GENERIC_ERROR (NPERR_BASE + 1)
-#define NPERR_INVALID_INSTANCE_ERROR (NPERR_BASE + 2)
-#define NPERR_INVALID_FUNCTABLE_ERROR (NPERR_BASE + 3)
-#define NPERR_MODULE_LOAD_FAILED_ERROR (NPERR_BASE + 4)
-#define NPERR_OUT_OF_MEMORY_ERROR (NPERR_BASE + 5)
-#define NPERR_INVALID_PLUGIN_ERROR (NPERR_BASE + 6)
-#define NPERR_INVALID_PLUGIN_DIR_ERROR (NPERR_BASE + 7)
-#define NPERR_INCOMPATIBLE_VERSION_ERROR (NPERR_BASE + 8)
-#define NPERR_INVALID_PARAM (NPERR_BASE + 9)
-#define NPERR_INVALID_URL (NPERR_BASE + 10)
-#define NPERR_FILE_NOT_FOUND (NPERR_BASE + 11)
-#define NPERR_NO_DATA (NPERR_BASE + 12)
-#define NPERR_STREAM_NOT_SEEKABLE (NPERR_BASE + 13)
-
-/*
- * Values of type NPReason:
- */
-#define NPRES_BASE 0
-#define NPRES_DONE (NPRES_BASE + 0)
-#define NPRES_NETWORK_ERR (NPRES_BASE + 1)
-#define NPRES_USER_BREAK (NPRES_BASE + 2)
-
-/*
- * Don't use these obsolete error codes any more.
- */
-#define NP_NOERR NP_NOERR_is_obsolete_use_NPERR_NO_ERROR
-#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR
-#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK
-
-/*
- * Version feature information
- */
-#define NPVERS_HAS_STREAMOUTPUT 8
-#define NPVERS_HAS_NOTIFICATION 9
-#define NPVERS_HAS_LIVECONNECT 9
-
-
-/*----------------------------------------------------------------------*/
-/* Function Prototypes */
-/*----------------------------------------------------------------------*/
-
-#if defined(_WINDOWS) && !defined(WIN32)
-#define NP_LOADDS _loadds
-#else
-#define NP_LOADDS
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * NPP_* functions are provided by the plugin and called by the navigator.
- */
-
-#ifdef XP_UNIX
-char* NPP_GetMIMEDescription(void);
-NPError NPP_GetValue(void *instance, NPPVariable variable,
- void *value);
-#endif /* XP_UNIX */
-NPError NPP_Initialize(void);
-void NPP_Shutdown(void);
-NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance,
- uint16 mode, int16 argc, char* argn[],
- char* argv[], NPSavedData* saved);
-NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save);
-NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window);
-NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type,
- NPStream* stream, NPBool seekable,
- uint16* stype);
-NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream,
- NPReason reason);
-int32 NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream);
-int32 NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32 offset,
- int32 len, void* buffer);
-void NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream,
- const char* fname);
-void NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint);
-int16 NPP_HandleEvent(NPP instance, void* event);
-void NPP_URLNotify(NPP instance, const char* url,
- NPReason reason, void* notifyData);
-jref NPP_GetJavaClass(void);
-
-
-/*
- * NPN_* functions are provided by the navigator and called by the plugin.
- */
-
-#ifdef XP_UNIX
-NPError NPN_GetValue(NPP instance, NPNVariable variable,
- void *value);
-#endif /* XP_UNIX */
-void NPN_Version(int* plugin_major, int* plugin_minor,
- int* netscape_major, int* netscape_minor);
-NPError NPN_GetURLNotify(NPP instance, const char* url,
- const char* target, void* notifyData);
-NPError NPN_GetURL(NPP instance, const char* url,
- const char* target);
-NPError NPN_PostURLNotify(NPP instance, const char* url,
- const char* target, uint32 len,
- const char* buf, NPBool file,
- void* notifyData);
-NPError NPN_PostURL(NPP instance, const char* url,
- const char* target, uint32 len,
- const char* buf, NPBool file);
-NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);
-NPError NPN_NewStream(NPP instance, NPMIMEType type,
- const char* target, NPStream** stream);
-int32 NPN_Write(NPP instance, NPStream* stream, int32 len,
- void* buffer);
-NPError NPN_DestroyStream(NPP instance, NPStream* stream,
- NPReason reason);
-void NPN_Status(NPP instance, const char* message);
-const char* NPN_UserAgent(NPP instance);
-void* NPN_MemAlloc(uint32 size);
-void NPN_MemFree(void* ptr);
-uint32 NPN_MemFlush(uint32 size);
-void NPN_ReloadPlugins(NPBool reloadPages);
-JRIEnv* NPN_GetJavaEnv(void);
-jref NPN_GetJavaPeer(NPP instance);
-
-
-#ifdef __cplusplus
-} /* end extern "C" */
-#endif
-
-#endif /* _NPAPI_H_ */
diff --git a/extensions/nsplugin/src/npunix.c b/extensions/nsplugin/src/npunix.c
deleted file mode 100644
index 0f9ae9b6b..000000000
--- a/extensions/nsplugin/src/npunix.c
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * npunix.c
- *
- * Netscape Client Plugin API
- * - Wrapper function to interface with the Netscape Navigator
- *
- * dp Suresh <[email protected]>
- *
- *----------------------------------------------------------------------
- * PLUGIN DEVELOPERS:
- * YOU WILL NOT NEED TO EDIT THIS FILE.
- *----------------------------------------------------------------------
- */
-
-#define XP_UNIX 1
-
-#include <stdio.h>
-#include "npapi.h"
-#include "npupp.h"
-
-/*
- * Define PLUGIN_TRACE to have the wrapper functions print
- * messages to fd 3 or 4 (cannot use stderr - ns3 grabs that)
- * whenever they are called.
- */
-
-#ifdef PLUGIN_TRACE
-#include <stdio.h>
-#define PLUGINDEBUGSTR(msg) fprintf(out(), "%s\n", msg)
-#else
-#define PLUGINDEBUGSTR(msg)
-#endif
-
-
-/***********************************************************************
- *
- * Globals
- *
- ***********************************************************************/
-
-static NPNetscapeFuncs gNetscapeFuncs; /* Netscape Function table */
-
-
-/***********************************************************************
- *
- * Wrapper functions : plugin calling Netscape Navigator
- *
- * These functions let the plugin developer just call the APIs
- * as documented and defined in npapi.h, without needing to know
- * about the function table and call macros in npupp.h.
- *
- ***********************************************************************/
-
-void
-NPN_Version(int* plugin_major, int* plugin_minor,
- int* netscape_major, int* netscape_minor)
-{
- *plugin_major = NP_VERSION_MAJOR;
- *plugin_minor = NP_VERSION_MINOR;
-
- /* Major version is in high byte */
- *netscape_major = gNetscapeFuncs.version >> 8;
- /* Minor version is in low byte */
- *netscape_minor = gNetscapeFuncs.version & 0xFF;
-}
-
-NPError
-NPN_GetValue(NPP instance, NPNVariable variable, void *r_value)
-{
- return CallNPN_GetValueProc(gNetscapeFuncs.getvalue,
- instance, variable, r_value);
-}
-
-NPError
-NPN_GetURL(NPP instance, const char* url, const char* window)
-{
- return CallNPN_GetURLProc(gNetscapeFuncs.geturl, instance, url, window);
-}
-
-NPError
-NPN_PostURL(NPP instance, const char* url, const char* window,
- uint32 len, const char* buf, NPBool file)
-{
- return CallNPN_PostURLProc(gNetscapeFuncs.posturl, instance,
- url, window, len, buf, file);
-}
-
-NPError
-NPN_RequestRead(NPStream* stream, NPByteRange* rangeList)
-{
- return CallNPN_RequestReadProc(gNetscapeFuncs.requestread,
- stream, rangeList);
-}
-
-NPError
-NPN_NewStream(NPP instance, NPMIMEType type, const char *window,
- NPStream** stream_ptr)
-{
- return CallNPN_NewStreamProc(gNetscapeFuncs.newstream, instance,
- type, window, stream_ptr);
-}
-
-int32
-NPN_Write(NPP instance, NPStream* stream, int32 len, void* buffer)
-{
- return CallNPN_WriteProc(gNetscapeFuncs.write, instance,
- stream, len, buffer);
-}
-
-NPError
-NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason)
-{
- return CallNPN_DestroyStreamProc(gNetscapeFuncs.destroystream,
- instance, stream, reason);
-}
-
-void
-NPN_Status(NPP instance, const char* message)
-{
- CallNPN_StatusProc(gNetscapeFuncs.status, instance, message);
-}
-
-const char*
-NPN_UserAgent(NPP instance)
-{
- return CallNPN_UserAgentProc(gNetscapeFuncs.uagent, instance);
-}
-
-void*
-NPN_MemAlloc(uint32 size)
-{
- return CallNPN_MemAllocProc(gNetscapeFuncs.memalloc, size);
-}
-
-void NPN_MemFree(void* ptr)
-{
- CallNPN_MemFreeProc(gNetscapeFuncs.memfree, ptr);
-}
-
-uint32 NPN_MemFlush(uint32 size)
-{
- return CallNPN_MemFlushProc(gNetscapeFuncs.memflush, size);
-}
-
-void NPN_ReloadPlugins(NPBool reloadPages)
-{
- CallNPN_ReloadPluginsProc(gNetscapeFuncs.reloadplugins, reloadPages);
-}
-
-JRIEnv* NPN_GetJavaEnv()
-{
- return CallNPN_GetJavaEnvProc(gNetscapeFuncs.getJavaEnv);
-}
-
-jref NPN_GetJavaPeer(NPP instance)
-{
- return CallNPN_GetJavaPeerProc(gNetscapeFuncs.getJavaPeer,
- instance);
-}
-
-
-/***********************************************************************
- *
- * Wrapper functions : Netscape Navigator -> plugin
- *
- * These functions let the plugin developer just create the APIs
- * as documented and defined in npapi.h, without needing to
- * install those functions in the function table or worry about
- * setting up globals for 68K plugins.
- *
- ***********************************************************************/
-
-NPError
-Private_New(NPMIMEType pluginType, NPP instance, uint16 mode,
- int16 argc, char* argn[], char* argv[], NPSavedData* saved)
-{
- NPError ret;
- PLUGINDEBUGSTR("New");
- ret = NPP_New(pluginType, instance, mode, argc, argn, argv, saved);
- return ret;
-}
-
-NPError
-Private_Destroy(NPP instance, NPSavedData** save)
-{
- PLUGINDEBUGSTR("Destroy");
- return NPP_Destroy(instance, save);
-}
-
-NPError
-Private_SetWindow(NPP instance, NPWindow* window)
-{
- NPError err;
- PLUGINDEBUGSTR("SetWindow");
- err = NPP_SetWindow(instance, window);
- return err;
-}
-
-NPError
-Private_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
- NPBool seekable, uint16* stype)
-{
- NPError err;
- PLUGINDEBUGSTR("NewStream");
- err = NPP_NewStream(instance, type, stream, seekable, stype);
- return err;
-}
-
-int32
-Private_WriteReady(NPP instance, NPStream* stream)
-{
- unsigned int result;
- PLUGINDEBUGSTR("WriteReady");
- result = NPP_WriteReady(instance, stream);
- return result;
-}
-
-int32
-Private_Write(NPP instance, NPStream* stream, int32 offset, int32 len,
- void* buffer)
-{
- unsigned int result;
- PLUGINDEBUGSTR("Write");
- result = NPP_Write(instance, stream, offset, len, buffer);
- return result;
-}
-
-void
-Private_StreamAsFile(NPP instance, NPStream* stream, const char* fname)
-{
- PLUGINDEBUGSTR("StreamAsFile");
- NPP_StreamAsFile(instance, stream, fname);
-}
-
-
-NPError
-Private_DestroyStream(NPP instance, NPStream* stream, NPError reason)
-{
- NPError err;
- PLUGINDEBUGSTR("DestroyStream");
- err = NPP_DestroyStream(instance, stream, reason);
- return err;
-}
-
-
-void
-Private_Print(NPP instance, NPPrint* platformPrint)
-{
- PLUGINDEBUGSTR("Print");
- NPP_Print(instance, platformPrint);
-}
-
-JRIGlobalRef
-Private_GetJavaClass(void)
-{
- jref clazz = NPP_GetJavaClass();
- if (clazz) {
- JRIEnv* env = NPN_GetJavaEnv();
- return JRI_NewGlobalRef(env, clazz);
- }
- return NULL;
-}
-
-/***********************************************************************
- *
- * These functions are located automagically by netscape.
- *
- ***********************************************************************/
-
-/*
- * NP_GetMIMEDescription
- * - Netscape needs to know about this symbol
- * - Netscape uses the return value to identify when an object instance
- * of this plugin should be created.
- */
-char *
-NP_GetMIMEDescription(void)
-{
- return NPP_GetMIMEDescription();
-}
-
-/*
- * NP_GetValue [optional]
- * - Netscape needs to know about this symbol.
- * - Interfaces with plugin to get values for predefined variables
- * that the navigator needs.
- */
-NPError
-NP_GetValue(void *future, NPPVariable variable, void *value)
-{
- return NPP_GetValue(future, variable, value);
-}
-
-/*
- * NP_Initialize
- * - Netscape needs to know about this symbol.
- * - It calls this function after looking up its symbol before it
- * is about to create the first ever object of this kind.
- *
- * PARAMETERS
- * nsTable - The netscape function table. If developers just use these
- * wrappers, they dont need to worry about all these function
- * tables.
- * RETURN
- * pluginFuncs
- * - This functions needs to fill the plugin function table
- * pluginFuncs and return it. Netscape Navigator plugin
- * library will use this function table to call the plugin.
- *
- */
-NPError
-NP_Initialize(NPNetscapeFuncs* nsTable, NPPluginFuncs* pluginFuncs)
-{
- NPError err = NPERR_NO_ERROR;
-
- PLUGINDEBUGSTR("NP_Initialize");
-
- /* validate input parameters */
-
- if ((nsTable == NULL) || (pluginFuncs == NULL))
- err = NPERR_INVALID_FUNCTABLE_ERROR;
-
- /*
- * Check the major version passed in Netscape's function table.
- * We won't load if the major version is newer than what we expect.
- * Also check that the function tables passed in are big enough for
- * all the functions we need (they could be bigger, if Netscape added
- * new APIs, but that's OK with us -- we'll just ignore them).
- *
- */
-
- if (err == NPERR_NO_ERROR) {
- if ((nsTable->version >> 8) > NP_VERSION_MAJOR)
- err = NPERR_INCOMPATIBLE_VERSION_ERROR;
- if (nsTable->size < sizeof(NPNetscapeFuncs))
- err = NPERR_INVALID_FUNCTABLE_ERROR;
- if (pluginFuncs->size < sizeof(NPPluginFuncs))
- err = NPERR_INVALID_FUNCTABLE_ERROR;
- }
-
-
- if (err == NPERR_NO_ERROR) {
- /*
- * Copy all the fields of Netscape function table into our
- * copy so we can call back into Netscape later. Note that
- * we need to copy the fields one by one, rather than assigning
- * the whole structure, because the Netscape function table
- * could actually be bigger than what we expect.
- */
- gNetscapeFuncs.version = nsTable->version;
- gNetscapeFuncs.size = nsTable->size;
- gNetscapeFuncs.posturl = nsTable->posturl;
- gNetscapeFuncs.geturl = nsTable->geturl;
- gNetscapeFuncs.requestread = nsTable->requestread;
- gNetscapeFuncs.newstream = nsTable->newstream;
- gNetscapeFuncs.write = nsTable->write;
- gNetscapeFuncs.destroystream = nsTable->destroystream;
- gNetscapeFuncs.status = nsTable->status;
- gNetscapeFuncs.uagent = nsTable->uagent;
- gNetscapeFuncs.memalloc = nsTable->memalloc;
- gNetscapeFuncs.memfree = nsTable->memfree;
- gNetscapeFuncs.memflush = nsTable->memflush;
- gNetscapeFuncs.reloadplugins = nsTable->reloadplugins;
- gNetscapeFuncs.getJavaEnv = nsTable->getJavaEnv;
- gNetscapeFuncs.getJavaPeer = nsTable->getJavaPeer;
- gNetscapeFuncs.getvalue = nsTable->getvalue;
-
- /*
- * Set up the plugin function table that Netscape will use to
- * call us. Netscape needs to know about our version and size
- * and have a UniversalProcPointer for every function we
- * implement.
- */
- pluginFuncs->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
- pluginFuncs->size = sizeof(NPPluginFuncs);
- pluginFuncs->newp = NewNPP_NewProc(Private_New);
- pluginFuncs->destroy = NewNPP_DestroyProc(Private_Destroy);
- pluginFuncs->setwindow = NewNPP_SetWindowProc(Private_SetWindow);
- pluginFuncs->newstream = NewNPP_NewStreamProc(Private_NewStream);
- pluginFuncs->destroystream = NewNPP_DestroyStreamProc(Private_DestroyStream);
- pluginFuncs->asfile = NewNPP_StreamAsFileProc(Private_StreamAsFile);
- pluginFuncs->writeready = NewNPP_WriteReadyProc(Private_WriteReady);
- pluginFuncs->write = NewNPP_WriteProc(Private_Write);
- pluginFuncs->print = NewNPP_PrintProc(Private_Print);
- pluginFuncs->event = NULL;
- pluginFuncs->javaClass = Private_GetJavaClass();
-
- err = NPP_Initialize();
- }
-
- return err;
-}
-
-/*
- * NP_Shutdown [optional]
- * - Netscape needs to know about this symbol.
- * - It calls this function after looking up its symbol after
- * the last object of this kind has been destroyed.
- *
- */
-NPError
-NP_Shutdown(void)
-{
- PLUGINDEBUGSTR("NP_Shutdown");
- NPP_Shutdown();
- return NPERR_NO_ERROR;
-}
diff --git a/extensions/nsplugin/src/npupp.h b/extensions/nsplugin/src/npupp.h
deleted file mode 100644
index 3e7d35a95..000000000
--- a/extensions/nsplugin/src/npupp.h
+++ /dev/null
@@ -1,994 +0,0 @@
-/*
- * npupp.h $Revision: 1.1 $
- * function call mecahnics needed by platform specific glue code.
- */
-
-
-#ifndef _NPUPP_H_
-#define _NPUPP_H_
-
-#ifndef GENERATINGCFM
-#define GENERATINGCFM 0
-#endif
-
-#ifndef _NPAPI_H_
-#include "npapi.h"
-#endif
-
-#include "jri.h"
-
-/******************************************************************************************
- plug-in function table macros
- for each function in and out of the plugin API we define
- typedef NPP_FooUPP
- #define NewNPP_FooProc
- #define CallNPP_FooProc
- for mac, define the UPP magic for PPC/68K calling
- *******************************************************************************************/
-
-
-/* NPP_Initialize */
-
-#if GENERATINGCFM
-typedef UniversalProcPtr NPP_InitializeUPP;
-
-enum {
- uppNPP_InitializeProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(0))
- | RESULT_SIZE(SIZE_CODE(0))
-};
-
-#define NewNPP_InitializeProc(FUNC) \
- (NPP_InitializeUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_InitializeProcInfo, GetCurrentArchitecture())
-#define CallNPP_InitializeProc(FUNC) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_InitializeProcInfo)
-
-#else
-
-typedef void (*NPP_InitializeUPP)(void);
-#define NewNPP_InitializeProc(FUNC) \
- ((NPP_InitializeUPP) (FUNC))
-#define CallNPP_InitializeProc(FUNC) \
- (*(FUNC))()
-
-#endif
-
-
-/* NPP_Shutdown */
-
-#if GENERATINGCFM
-typedef UniversalProcPtr NPP_ShutdownUPP;
-
-enum {
- uppNPP_ShutdownProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(0))
- | RESULT_SIZE(SIZE_CODE(0))
-};
-
-#define NewNPP_ShutdownProc(FUNC) \
- (NPP_ShutdownUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_ShutdownProcInfo, GetCurrentArchitecture())
-#define CallNPP_ShutdownProc(FUNC) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_ShutdownProcInfo)
-
-#else
-
-typedef void (*NPP_ShutdownUPP)(void);
-#define NewNPP_ShutdownProc(FUNC) \
- ((NPP_ShutdownUPP) (FUNC))
-#define CallNPP_ShutdownProc(FUNC) \
- (*(FUNC))()
-
-#endif
-
-
-/* NPP_New */
-
-#if GENERATINGCFM
-typedef UniversalProcPtr NPP_NewUPP;
-
-enum {
- uppNPP_NewProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPMIMEType)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(uint16)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(int16)))
- | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(char **)))
- | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(char **)))
- | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(NPSavedData *)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-
-#define NewNPP_NewProc(FUNC) \
- (NPP_NewUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_NewProcInfo, GetCurrentArchitecture())
-#define CallNPP_NewProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_NewProcInfo, \
- (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6), (ARG7))
-#else
-
-typedef NPError (*NPP_NewUPP)(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved);
-#define NewNPP_NewProc(FUNC) \
- ((NPP_NewUPP) (FUNC))
-#define CallNPP_NewProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \
- (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6), (ARG7))
-
-#endif
-
-
-/* NPP_Destroy */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_DestroyUPP;
-enum {
- uppNPP_DestroyProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPSavedData **)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPP_DestroyProc(FUNC) \
- (NPP_DestroyUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_DestroyProcInfo, GetCurrentArchitecture())
-#define CallNPP_DestroyProc(FUNC, ARG1, ARG2) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_DestroyProcInfo, (ARG1), (ARG2))
-#else
-
-typedef NPError (*NPP_DestroyUPP)(NPP instance, NPSavedData** save);
-#define NewNPP_DestroyProc(FUNC) \
- ((NPP_DestroyUPP) (FUNC))
-#define CallNPP_DestroyProc(FUNC, ARG1, ARG2) \
- (*(FUNC))((ARG1), (ARG2))
-
-#endif
-
-
-/* NPP_SetWindow */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_SetWindowUPP;
-enum {
- uppNPP_SetWindowProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPWindow *)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPP_SetWindowProc(FUNC) \
- (NPP_SetWindowUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_SetWindowProcInfo, GetCurrentArchitecture())
-#define CallNPP_SetWindowProc(FUNC, ARG1, ARG2) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_SetWindowProcInfo, (ARG1), (ARG2))
-
-#else
-
-typedef NPError (*NPP_SetWindowUPP)(NPP instance, NPWindow* window);
-#define NewNPP_SetWindowProc(FUNC) \
- ((NPP_SetWindowUPP) (FUNC))
-#define CallNPP_SetWindowProc(FUNC, ARG1, ARG2) \
- (*(FUNC))((ARG1), (ARG2))
-
-#endif
-
-
-/* NPP_NewStream */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_NewStreamUPP;
-enum {
- uppNPP_NewStreamProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPMIMEType)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPStream *)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(NPBool)))
- | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(uint16 *)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPP_NewStreamProc(FUNC) \
- (NPP_NewStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_NewStreamProcInfo, GetCurrentArchitecture())
-#define CallNPP_NewStreamProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_NewStreamProcInfo, (ARG1), (ARG2), (ARG3), (ARG4), (ARG5))
-#else
-
-typedef NPError (*NPP_NewStreamUPP)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype);
-#define NewNPP_NewStreamProc(FUNC) \
- ((NPP_NewStreamUPP) (FUNC))
-#define CallNPP_NewStreamProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5) \
- (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4), (ARG5))
-#endif
-
-
-/* NPP_DestroyStream */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_DestroyStreamUPP;
-enum {
- uppNPP_DestroyStreamProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPReason)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPP_DestroyStreamProc(FUNC) \
- (NPP_DestroyStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_DestroyStreamProcInfo, GetCurrentArchitecture())
-#define CallNPP_DestroyStreamProc(FUNC, NPParg, NPStreamPtr, NPReasonArg) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_DestroyStreamProcInfo, (NPParg), (NPStreamPtr), (NPReasonArg))
-
-#else
-
-typedef NPError (*NPP_DestroyStreamUPP)(NPP instance, NPStream* stream, NPReason reason);
-#define NewNPP_DestroyStreamProc(FUNC) \
- ((NPP_DestroyStreamUPP) (FUNC))
-#define CallNPP_DestroyStreamProc(FUNC, NPParg, NPStreamPtr, NPReasonArg) \
- (*(FUNC))((NPParg), (NPStreamPtr), (NPReasonArg))
-
-#endif
-
-
-/* NPP_WriteReady */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_WriteReadyUPP;
-enum {
- uppNPP_WriteReadyProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *)))
- | RESULT_SIZE(SIZE_CODE(sizeof(int32)))
-};
-#define NewNPP_WriteReadyProc(FUNC) \
- (NPP_WriteReadyUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_WriteReadyProcInfo, GetCurrentArchitecture())
-#define CallNPP_WriteReadyProc(FUNC, NPParg, NPStreamPtr) \
- (int32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_WriteReadyProcInfo, (NPParg), (NPStreamPtr))
-
-#else
-
-typedef int32 (*NPP_WriteReadyUPP)(NPP instance, NPStream* stream);
-#define NewNPP_WriteReadyProc(FUNC) \
- ((NPP_WriteReadyUPP) (FUNC))
-#define CallNPP_WriteReadyProc(FUNC, NPParg, NPStreamPtr) \
- (*(FUNC))((NPParg), (NPStreamPtr))
-
-#endif
-
-
-/* NPP_Write */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_WriteUPP;
-enum {
- uppNPP_WriteProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(int32)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(int32)))
- | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(void*)))
- | RESULT_SIZE(SIZE_CODE(sizeof(int32)))
-};
-#define NewNPP_WriteProc(FUNC) \
- (NPP_WriteUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_WriteProcInfo, GetCurrentArchitecture())
-#define CallNPP_WriteProc(FUNC, NPParg, NPStreamPtr, offsetArg, lenArg, bufferPtr) \
- (int32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_WriteProcInfo, (NPParg), (NPStreamPtr), (offsetArg), (lenArg), (bufferPtr))
-
-#else
-
-typedef int32 (*NPP_WriteUPP)(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer);
-#define NewNPP_WriteProc(FUNC) \
- ((NPP_WriteUPP) (FUNC))
-#define CallNPP_WriteProc(FUNC, NPParg, NPStreamPtr, offsetArg, lenArg, bufferPtr) \
- (*(FUNC))((NPParg), (NPStreamPtr), (offsetArg), (lenArg), (bufferPtr))
-
-#endif
-
-
-/* NPP_StreamAsFile */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_StreamAsFileUPP;
-enum {
- uppNPP_StreamAsFileProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char *)))
- | RESULT_SIZE(SIZE_CODE(0))
-};
-#define NewNPP_StreamAsFileProc(FUNC) \
- (NPP_StreamAsFileUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_StreamAsFileProcInfo, GetCurrentArchitecture())
-#define CallNPP_StreamAsFileProc(FUNC, ARG1, ARG2, ARG3) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_StreamAsFileProcInfo, (ARG1), (ARG2), (ARG3))
-
-#else
-
-typedef void (*NPP_StreamAsFileUPP)(NPP instance, NPStream* stream, const char* fname);
-#define NewNPP_StreamAsFileProc(FUNC) \
- ((NPP_StreamAsFileUPP) (FUNC))
-#define CallNPP_StreamAsFileProc(FUNC, ARG1, ARG2, ARG3) \
- (*(FUNC))((ARG1), (ARG2), (ARG3))
-#endif
-
-
-/* NPP_Print */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_PrintUPP;
-enum {
- uppNPP_PrintProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPPrint *)))
- | RESULT_SIZE(SIZE_CODE(0))
-};
-#define NewNPP_PrintProc(FUNC) \
- (NPP_PrintUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_PrintProcInfo, GetCurrentArchitecture())
-#define CallNPP_PrintProc(FUNC, NPParg, voidPtr) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_PrintProcInfo, (NPParg), (voidPtr))
-
-#else
-
-typedef void (*NPP_PrintUPP)(NPP instance, NPPrint* platformPrint);
-#define NewNPP_PrintProc(FUNC) \
- ((NPP_PrintUPP) (FUNC))
-#define CallNPP_PrintProc(FUNC, NPParg, NPPrintArg) \
- (*(FUNC))((NPParg), (NPPrintArg))
-
-#endif
-
-
-/* NPP_HandleEvent */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_HandleEventUPP;
-enum {
- uppNPP_HandleEventProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *)))
- | RESULT_SIZE(SIZE_CODE(sizeof(int16)))
-};
-#define NewNPP_HandleEventProc(FUNC) \
- (NPP_HandleEventUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_HandleEventProcInfo, GetCurrentArchitecture())
-#define CallNPP_HandleEventProc(FUNC, NPParg, voidPtr) \
- (int16)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_HandleEventProcInfo, (NPParg), (voidPtr))
-
-#else
-
-typedef int16 (*NPP_HandleEventUPP)(NPP instance, void* event);
-#define NewNPP_HandleEventProc(FUNC) \
- ((NPP_HandleEventUPP) (FUNC))
-#define CallNPP_HandleEventProc(FUNC, NPParg, voidPtr) \
- (*(FUNC))((NPParg), (voidPtr))
-
-#endif
-
-
-/* NPP_URLNotify */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_URLNotifyUPP;
-enum {
- uppNPP_URLNotifyProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPReason)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(void*)))
- | RESULT_SIZE(SIZE_CODE(SIZE_CODE(0)))
-};
-#define NewNPP_URLNotifyProc(FUNC) \
- (NPP_URLNotifyUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_URLNotifyProcInfo, GetCurrentArchitecture())
-#define CallNPP_URLNotifyProc(FUNC, ARG1, ARG2, ARG3, ARG4) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_URLNotifyProcInfo, (ARG1), (ARG2), (ARG3), (ARG4))
-
-#else
-
-typedef void (*NPP_URLNotifyUPP)(NPP instance, const char* url, NPReason reason, void* notifyData);
-#define NewNPP_URLNotifyProc(FUNC) \
- ((NPP_URLNotifyUPP) (FUNC))
-#define CallNPP_URLNotifyProc(FUNC, ARG1, ARG2, ARG3, ARG4) \
- (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4))
-
-#endif
-
-
-
-
-/*
- * Netscape entry points
- */
-
-#ifdef XP_UNIX
-
-/* NPN_GetValue */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_GetValueUPP;
-enum {
- uppNPN_GetValueProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPNVariable)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_GetValueProc(FUNC) \
- (NPN_GetValueUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_GetValueProcInfo, GetCurrentArchitecture())
-#define CallNPN_GetURNotifyLProc(FUNC, ARG1, ARG2, ARG3) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_GetValueProcInfo, (ARG1), (ARG2), (ARG3))
-#else
-
-typedef NPError (*NPN_GetValueUPP)(NPP instance, NPNVariable variable, void *ret_alue);
-#define NewNPN_GetValueProc(FUNC) \
- ((NPN_GetValueUPP) (FUNC))
-#define CallNPN_GetValueProc(FUNC, ARG1, ARG2, ARG3) \
- (*(FUNC))((ARG1), (ARG2), (ARG3))
-#endif
-
-#endif /* XP_UNIX */
-
-
-
-/* NPN_GetUrlNotify */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_GetURLNotifyUPP;
-enum {
- uppNPN_GetURLNotifyProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(void*)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_GetURLNotifyProc(FUNC) \
- (NPN_GetURLNotifyUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_GetURLNotifyProcInfo, GetCurrentArchitecture())
-#define CallNPN_GetURLNotifyProc(FUNC, ARG1, ARG2, ARG3, ARG4) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_GetURLNotifyProcInfo, (ARG1), (ARG2), (ARG3), (ARG4))
-#else
-
-typedef NPError (*NPN_GetURLNotifyUPP)(NPP instance, const char* url, const char* window, void* notifyData);
-#define NewNPN_GetURLNotifyProc(FUNC) \
- ((NPN_GetURLNotifyUPP) (FUNC))
-#define CallNPN_GetURLNotifyProc(FUNC, ARG1, ARG2, ARG3, ARG4) \
- (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4))
-#endif
-
-
-/* NPN_PostUrlNotify */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_PostURLNotifyUPP;
-enum {
- uppNPN_PostURLNotifyProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(uint32)))
- | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(NPBool)))
- | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(void*)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_PostURLNotifyProc(FUNC) \
- (NPN_PostURLNotifyUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_PostURLNotifyProcInfo, GetCurrentArchitecture())
-#define CallNPN_PostURLNotifyProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_PostURLNotifyProcInfo, (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6), (ARG7))
-#else
-
-typedef NPError (*NPN_PostURLNotifyUPP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData);
-#define NewNPN_PostURLNotifyProc(FUNC) \
- ((NPN_PostURLNotifyUPP) (FUNC))
-#define CallNPN_PostURLNotifyProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \
- (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6), (ARG7))
-#endif
-
-
-/* NPN_GetUrl */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_GetURLUPP;
-enum {
- uppNPN_GetURLProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char*)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_GetURLProc(FUNC) \
- (NPN_GetURLUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_GetURLProcInfo, GetCurrentArchitecture())
-#define CallNPN_GetURLProc(FUNC, ARG1, ARG2, ARG3) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_GetURLProcInfo, (ARG1), (ARG2), (ARG3))
-#else
-
-typedef NPError (*NPN_GetURLUPP)(NPP instance, const char* url, const char* window);
-#define NewNPN_GetURLProc(FUNC) \
- ((NPN_GetURLUPP) (FUNC))
-#define CallNPN_GetURLProc(FUNC, ARG1, ARG2, ARG3) \
- (*(FUNC))((ARG1), (ARG2), (ARG3))
-#endif
-
-
-/* NPN_PostUrl */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_PostURLUPP;
-enum {
- uppNPN_PostURLProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(uint32)))
- | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(const char*)))
- | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(NPBool)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_PostURLProc(FUNC) \
- (NPN_PostURLUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_PostURLProcInfo, GetCurrentArchitecture())
-#define CallNPN_PostURLProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_PostURLProcInfo, (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6))
-#else
-
-typedef NPError (*NPN_PostURLUPP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file);
-#define NewNPN_PostURLProc(FUNC) \
- ((NPN_PostURLUPP) (FUNC))
-#define CallNPN_PostURLProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
- (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6))
-#endif
-
-
-/* NPN_RequestRead */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_RequestReadUPP;
-enum {
- uppNPN_RequestReadProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPStream *)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPByteRange *)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_RequestReadProc(FUNC) \
- (NPN_RequestReadUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_RequestReadProcInfo, GetCurrentArchitecture())
-#define CallNPN_RequestReadProc(FUNC, stream, range) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_RequestReadProcInfo, (stream), (range))
-
-#else
-
-typedef NPError (*NPN_RequestReadUPP)(NPStream* stream, NPByteRange* rangeList);
-#define NewNPN_RequestReadProc(FUNC) \
- ((NPN_RequestReadUPP) (FUNC))
-#define CallNPN_RequestReadProc(FUNC, stream, range) \
- (*(FUNC))((stream), (range))
-
-#endif
-
-
-/* NPN_NewStream */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_NewStreamUPP;
-enum {
- uppNPN_NewStreamProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPMIMEType)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char *)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(NPStream **)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_NewStreamProc(FUNC) \
- (NPN_NewStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_NewStreamProcInfo, GetCurrentArchitecture())
-#define CallNPN_NewStreamProc(FUNC, npp, type, window, stream) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_NewStreamProcInfo, (npp), (type), (window), (stream))
-
-#else
-
-typedef NPError (*NPN_NewStreamUPP)(NPP instance, NPMIMEType type, const char* window, NPStream** stream);
-#define NewNPN_NewStreamProc(FUNC) \
- ((NPN_NewStreamUPP) (FUNC))
-#define CallNPN_NewStreamProc(FUNC, npp, type, window, stream) \
- (*(FUNC))((npp), (type), (window), (stream))
-
-#endif
-
-
-/* NPN_Write */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_WriteUPP;
-enum {
- uppNPN_WriteProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(int32)))
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(void*)))
- | RESULT_SIZE(SIZE_CODE(sizeof(int32)))
-};
-#define NewNPN_WriteProc(FUNC) \
- (NPN_WriteUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_WriteProcInfo, GetCurrentArchitecture())
-#define CallNPN_WriteProc(FUNC, npp, stream, len, buffer) \
- (int32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_WriteProcInfo, (npp), (stream), (len), (buffer))
-
-#else
-
-typedef int32 (*NPN_WriteUPP)(NPP instance, NPStream* stream, int32 len, void* buffer);
-#define NewNPN_WriteProc(FUNC) \
- ((NPN_WriteUPP) (FUNC))
-#define CallNPN_WriteProc(FUNC, npp, stream, len, buffer) \
- (*(FUNC))((npp), (stream), (len), (buffer))
-
-#endif
-
-
-/* NPN_DestroyStream */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_DestroyStreamUPP;
-enum {
- uppNPN_DestroyStreamProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP )))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPReason)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPN_DestroyStreamProc(FUNC) \
- (NPN_DestroyStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_DestroyStreamProcInfo, GetCurrentArchitecture())
-#define CallNPN_DestroyStreamProc(FUNC, npp, stream, reason) \
- (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_DestroyStreamProcInfo, (npp), (stream), (reason))
-
-#else
-
-typedef NPError (*NPN_DestroyStreamUPP)(NPP instance, NPStream* stream, NPReason reason);
-#define NewNPN_DestroyStreamProc(FUNC) \
- ((NPN_DestroyStreamUPP) (FUNC))
-#define CallNPN_DestroyStreamProc(FUNC, npp, stream, reason) \
- (*(FUNC))((npp), (stream), (reason))
-
-#endif
-
-
-/* NPN_Status */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_StatusUPP;
-enum {
- uppNPN_StatusProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(char *)))
-};
-
-#define NewNPN_StatusProc(FUNC) \
- (NPN_StatusUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_StatusProcInfo, GetCurrentArchitecture())
-#define CallNPN_StatusProc(FUNC, npp, msg) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_StatusProcInfo, (npp), (msg))
-
-#else
-
-typedef void (*NPN_StatusUPP)(NPP instance, const char* message);
-#define NewNPN_StatusProc(FUNC) \
- ((NPN_StatusUPP) (FUNC))
-#define CallNPN_StatusProc(FUNC, npp, msg) \
- (*(FUNC))((npp), (msg))
-
-#endif
-
-
-/* NPN_UserAgent */
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_UserAgentUPP;
-enum {
- uppNPN_UserAgentProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | RESULT_SIZE(SIZE_CODE(sizeof(const char *)))
-};
-
-#define NewNPN_UserAgentProc(FUNC) \
- (NPN_UserAgentUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_UserAgentProcInfo, GetCurrentArchitecture())
-#define CallNPN_UserAgentProc(FUNC, ARG1) \
- (const char*)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_UserAgentProcInfo, (ARG1))
-
-#else
-
-typedef const char* (*NPN_UserAgentUPP)(NPP instance);
-#define NewNPN_UserAgentProc(FUNC) \
- ((NPN_UserAgentUPP) (FUNC))
-#define CallNPN_UserAgentProc(FUNC, ARG1) \
- (*(FUNC))((ARG1))
-
-#endif
-
-
-/* NPN_MemAlloc */
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_MemAllocUPP;
-enum {
- uppNPN_MemAllocProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(uint32)))
- | RESULT_SIZE(SIZE_CODE(sizeof(void *)))
-};
-
-#define NewNPN_MemAllocProc(FUNC) \
- (NPN_MemAllocUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_MemAllocProcInfo, GetCurrentArchitecture())
-#define CallNPN_MemAllocProc(FUNC, ARG1) \
- (void*)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_MemAllocProcInfo, (ARG1))
-
-#else
-
-typedef void* (*NPN_MemAllocUPP)(uint32 size);
-#define NewNPN_MemAllocProc(FUNC) \
- ((NPN_MemAllocUPP) (FUNC))
-#define CallNPN_MemAllocProc(FUNC, ARG1) \
- (*(FUNC))((ARG1))
-
-#endif
-
-
-/* NPN__MemFree */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_MemFreeUPP;
-enum {
- uppNPN_MemFreeProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void *)))
-};
-
-#define NewNPN_MemFreeProc(FUNC) \
- (NPN_MemFreeUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_MemFreeProcInfo, GetCurrentArchitecture())
-#define CallNPN_MemFreeProc(FUNC, ARG1) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_MemFreeProcInfo, (ARG1))
-
-#else
-
-typedef void (*NPN_MemFreeUPP)(void* ptr);
-#define NewNPN_MemFreeProc(FUNC) \
- ((NPN_MemFreeUPP) (FUNC))
-#define CallNPN_MemFreeProc(FUNC, ARG1) \
- (*(FUNC))((ARG1))
-
-#endif
-
-
-/* NPN_MemFlush */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_MemFlushUPP;
-enum {
- uppNPN_MemFlushProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(uint32)))
- | RESULT_SIZE(SIZE_CODE(sizeof(uint32)))
-};
-
-#define NewNPN_MemFlushProc(FUNC) \
- (NPN_MemFlushUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_MemFlushProcInfo, GetCurrentArchitecture())
-#define CallNPN_MemFlushProc(FUNC, ARG1) \
- (uint32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_MemFlushProcInfo, (ARG1))
-
-#else
-
-typedef uint32 (*NPN_MemFlushUPP)(uint32 size);
-#define NewNPN_MemFlushProc(FUNC) \
- ((NPN_MemFlushUPP) (FUNC))
-#define CallNPN_MemFlushProc(FUNC, ARG1) \
- (*(FUNC))((ARG1))
-
-#endif
-
-
-
-/* NPN_ReloadPlugins */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_ReloadPluginsUPP;
-enum {
- uppNPN_ReloadPluginsProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPBool)))
- | RESULT_SIZE(SIZE_CODE(0))
-};
-
-#define NewNPN_ReloadPluginsProc(FUNC) \
- (NPN_ReloadPluginsUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_ReloadPluginsProcInfo, GetCurrentArchitecture())
-#define CallNPN_ReloadPluginsProc(FUNC, ARG1) \
- (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_ReloadPluginsProcInfo, (ARG1))
-
-#else
-
-typedef void (*NPN_ReloadPluginsUPP)(NPBool reloadPages);
-#define NewNPN_ReloadPluginsProc(FUNC) \
- ((NPN_ReloadPluginsUPP) (FUNC))
-#define CallNPN_ReloadPluginsProc(FUNC, ARG1) \
- (*(FUNC))((ARG1))
-
-#endif
-
-
-/* NPN_GetJavaEnv */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_GetJavaEnvUPP;
-enum {
- uppNPN_GetJavaEnvProcInfo = kThinkCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(JRIEnv*)))
-};
-
-#define NewNPN_GetJavaEnvProc(FUNC) \
- (NPN_GetJavaEnvUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_GetJavaEnvProcInfo, GetCurrentArchitecture())
-#define CallNPN_GetJavaEnvProc(FUNC) \
- (JRIEnv*)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_GetJavaEnvProcInfo)
-
-#else
-
-typedef JRIEnv* (*NPN_GetJavaEnvUPP)(void);
-#define NewNPN_GetJavaEnvProc(FUNC) \
- ((NPN_GetJavaEnvUPP) (FUNC))
-#define CallNPN_GetJavaEnvProc(FUNC) \
- (*(FUNC))()
-
-#endif
-
-
-/* NPN_GetJavaPeer */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPN_GetJavaPeerUPP;
-enum {
- uppNPN_GetJavaPeerProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP)))
- | RESULT_SIZE(SIZE_CODE(sizeof(jref)))
-};
-
-#define NewNPN_GetJavaPeerProc(FUNC) \
- (NPN_GetJavaPeerUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_GetJavaPeerProcInfo, GetCurrentArchitecture())
-#define CallNPN_GetJavaPeerProc(FUNC, ARG1) \
- (jref)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_GetJavaPeerProcInfo, (ARG1))
-
-#else
-
-typedef jref (*NPN_GetJavaPeerUPP)(NPP instance);
-#define NewNPN_GetJavaPeerProc(FUNC) \
- ((NPN_GetJavaPeerUPP) (FUNC))
-#define CallNPN_GetJavaPeerProc(FUNC, ARG1) \
- (*(FUNC))((ARG1))
-
-#endif
-
-
-
-
-/******************************************************************************************
- * The actual plugin function table definitions
- *******************************************************************************************/
-
-typedef struct _NPPluginFuncs {
- uint16 size;
- uint16 version;
- NPP_NewUPP newp;
- NPP_DestroyUPP destroy;
- NPP_SetWindowUPP setwindow;
- NPP_NewStreamUPP newstream;
- NPP_DestroyStreamUPP destroystream;
- NPP_StreamAsFileUPP asfile;
- NPP_WriteReadyUPP writeready;
- NPP_WriteUPP write;
- NPP_PrintUPP print;
- NPP_HandleEventUPP event;
- NPP_URLNotifyUPP urlnotify;
- JRIGlobalRef javaClass;
-} NPPluginFuncs;
-
-typedef struct _NPNetscapeFuncs {
- uint16 size;
- uint16 version;
- NPN_GetURLUPP geturl;
- NPN_PostURLUPP posturl;
- NPN_RequestReadUPP requestread;
- NPN_NewStreamUPP newstream;
- NPN_WriteUPP write;
- NPN_DestroyStreamUPP destroystream;
- NPN_StatusUPP status;
- NPN_UserAgentUPP uagent;
- NPN_MemAllocUPP memalloc;
- NPN_MemFreeUPP memfree;
- NPN_MemFlushUPP memflush;
- NPN_ReloadPluginsUPP reloadplugins;
- NPN_GetJavaEnvUPP getJavaEnv;
- NPN_GetJavaPeerUPP getJavaPeer;
- NPN_GetURLNotifyUPP geturlnotify;
- NPN_PostURLNotifyUPP posturlnotify;
-#ifdef XP_UNIX
- NPN_GetValueUPP getvalue;
-#endif /* XP_UNIX */
-} NPNetscapeFuncs;
-
-
-
-#ifdef XP_MAC
-/******************************************************************************************
- * Mac platform-specific plugin glue stuff
- *******************************************************************************************/
-
-/*
- * Main entry point of the plugin.
- * This routine will be called when the plugin is loaded. The function
- * tables are passed in and the plugin fills in the NPPluginFuncs table
- * and NPPShutdownUPP for Netscape's use.
- */
-
-#if GENERATINGCFM
-
-typedef UniversalProcPtr NPP_MainEntryUPP;
-enum {
- uppNPP_MainEntryProcInfo = kThinkCStackBased
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPNetscapeFuncs*)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPPluginFuncs*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPP_ShutdownUPP*)))
- | RESULT_SIZE(SIZE_CODE(sizeof(NPError)))
-};
-#define NewNPP_MainEntryProc(FUNC) \
- (NPP_MainEntryUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_MainEntryProcInfo, GetCurrentArchitecture())
-#define CallNPP_MainEntryProc(FUNC, netscapeFunc, pluginFunc, shutdownUPP) \
- CallUniversalProc((UniversalProcPtr)(FUNC), (ProcInfoType)uppNPP_MainEntryProcInfo, (netscapeFunc), (pluginFunc), (shutdownUPP))
-
-#else
-
-typedef NPError (*NPP_MainEntryUPP)(NPNetscapeFuncs*, NPPluginFuncs*, NPP_ShutdownUPP*);
-#define NewNPP_MainEntryProc(FUNC) \
- ((NPP_MainEntryUPP) (FUNC))
-#define CallNPP_MainEntryProc(FUNC, netscapeFunc, pluginFunc, shutdownUPP) \
- (*(FUNC))((netscapeFunc), (pluginFunc), (shutdownUPP))
-
-#endif
-#endif /* MAC */
-
-
-#ifdef _WINDOWS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* plugin meta member functions */
-
-NPError WINAPI NP_GetEntryPoints(NPPluginFuncs* pFuncs);
-
-NPError WINAPI NP_Initialize(NPNetscapeFuncs* pFuncs);
-
-NPError WINAPI NP_Shutdown();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _WINDOWS */
-
-#ifdef XP_UNIX
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* plugin meta member functions */
-
-char* NP_GetMIMEDescription(void);
-NPError NP_Initialize(NPNetscapeFuncs*, NPPluginFuncs*);
-NPError NP_Shutdown(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* XP_UNIX */
-
-#endif /* _NPUPP_H_ */
diff --git a/extensions/nsplugin/src/npwin.cpp b/extensions/nsplugin/src/npwin.cpp
deleted file mode 100644
index 45a712272..000000000
--- a/extensions/nsplugin/src/npwin.cpp
+++ /dev/null
@@ -1,367 +0,0 @@
-/* npwin.cpp */
-
-//\\// INCLUDE
-//#include "StdAfx.h"
-
-// netscape
-#ifndef _NPAPI_H_
-#include "npapi.h"
-#endif
-#ifndef _NPUPP_H_
-#include "npupp.h"
-#endif
-
-//\\// DEFINE
-#ifdef WIN32
- #define NP_EXPORT //__declspec( dllexport )
-#else
- #define NP_EXPORT _export
-#endif
-
-//\\// GLOBAL DATA
-NPNetscapeFuncs* g_pNavigatorFuncs = NULL;
-
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\.
-////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//.
-// Private_GetJavaClass (global function)
-//
-// Given a Java class reference (thru NPP_GetJavaClass) inform JRT
-// of this class existence
-//
-JRIGlobalRef
-Private_GetJavaClass(void)
-{
- jref clazz = NPP_GetJavaClass();
- if (clazz) {
- JRIEnv* env = NPN_GetJavaEnv();
- return JRI_NewGlobalRef(env, clazz);
- }
- return NULL;
-}
-
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\.
-////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//.
-// PLUGIN DLL entry points
-//
-// These are the Windows specific DLL entry points. They must be exoprted
-//
-
-// we need these to be global since we have to fill one of its field
-// with a data (class) which requires knowlwdge of the navigator
-// jump-table. This jump table is known at Initialize time (NP_Initialize)
-// which is called after NP_GetEntryPoint
-static NPPluginFuncs* g_pluginFuncs;
-
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\.
-////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//.
-// NP_GetEntryPoints
-//
-// fills in the func table used by Navigator to call entry points in
-// plugin DLL. Note that these entry points ensure that DS is loaded
-// by using the NP_LOADDS macro, when compiling for Win16
-//
-NPError WINAPI NP_EXPORT
-NP_GetEntryPoints(NPPluginFuncs* pFuncs)
-{
- // trap a NULL ptr
- if(pFuncs == NULL)
- return NPERR_INVALID_FUNCTABLE_ERROR;
-
- // if the plugin's function table is smaller than the plugin expects,
- // then they are incompatible, and should return an error
-
- pFuncs->version = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR;
- pFuncs->newp = NPP_New;
- pFuncs->destroy = NPP_Destroy;
- pFuncs->setwindow = NPP_SetWindow;
- pFuncs->newstream = NPP_NewStream;
- pFuncs->destroystream = NPP_DestroyStream;
- pFuncs->asfile = NPP_StreamAsFile;
- pFuncs->writeready = NPP_WriteReady;
- pFuncs->write = NPP_Write;
- pFuncs->print = NPP_Print;
- pFuncs->event = NULL; /// reserved
-
- g_pluginFuncs = pFuncs;
-
- return NPERR_NO_ERROR;
-}
-
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\.
-////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//.
-// NP_Initialize
-//
-// called immediately after the plugin DLL is loaded
-//
-NPError WINAPI NP_EXPORT
-NP_Initialize(NPNetscapeFuncs* pFuncs)
-{
- // trap a NULL ptr
- if(pFuncs == NULL)
- return NPERR_INVALID_FUNCTABLE_ERROR;
-
- g_pNavigatorFuncs = pFuncs; // save it for future reference
-
- // if the plugin's major ver level is lower than the Navigator's,
- // then they are incompatible, and should return an error
- if(HIBYTE(pFuncs->version) > NP_VERSION_MAJOR)
- return NPERR_INCOMPATIBLE_VERSION_ERROR;
-
- // We have to defer these assignments until g_pNavigatorFuncs is set
- int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
-
-
- if( navMinorVers >= NPVERS_HAS_NOTIFICATION ) {
-
- g_pluginFuncs->urlnotify = NPP_URLNotify;
-
- }
-
- if( navMinorVers >= NPVERS_HAS_LIVECONNECT ) {
-
- g_pluginFuncs->javaClass = Private_GetJavaClass();
-
- }
-
-
- // NPP_Initialize is a standard (cross-platform) initialize function.
- return NPP_Initialize();
-}
-
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\.
-////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//.
-// NP_Shutdown
-//
-// called immediately before the plugin DLL is unloaded.
-// This functio shuold check for some ref count on the dll to see if it is
-// unloadable or it needs to stay in memory.
-//
-NPError WINAPI NP_EXPORT
-NP_Shutdown()
-{
- NPP_Shutdown();
-
- g_pNavigatorFuncs = NULL;
-
- return NPERR_NO_ERROR;
-}
-
-// END - PLUGIN DLL entry points
-////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//.
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\.
-
-/* NAVIGATOR Entry points */
-
-/* These entry points expect to be called from within the plugin. The
- noteworthy assumption is that DS has already been set to point to the
- plugin's DLL data segment. Don't call these functions from outside
- the plugin without ensuring DS is set to the DLLs data segment first,
- typically using the NP_LOADDS macro
-*/
-
-/* returns the major/minor version numbers of the Plugin API for the plugin
- and the Navigator
-*/
-void NPN_Version(int* plugin_major, int* plugin_minor, int* netscape_major, int* netscape_minor)
-{
- *plugin_major = NP_VERSION_MAJOR;
- *plugin_minor = NP_VERSION_MINOR;
- *netscape_major = HIBYTE(g_pNavigatorFuncs->version);
- *netscape_minor = LOBYTE(g_pNavigatorFuncs->version);
-}
-
-/* causes the specified URL to be fetched and streamed in
-*/
-NPError NPN_GetURLNotify(NPP instance, const char *url, const char *target, void* notifyData)
-
-{
-
- int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
-
- NPError err;
-
- if( navMinorVers >= NPVERS_HAS_NOTIFICATION ) {
-
- err = g_pNavigatorFuncs->geturlnotify(instance, url, target, notifyData);
-
- }
-
- else {
-
- err = NPERR_INCOMPATIBLE_VERSION_ERROR;
-
- }
-
- return err;
-
-}
-
-
-NPError NPN_GetURL(NPP instance, const char *url, const char *target)
-{
- return g_pNavigatorFuncs->geturl(instance, url, target);
-}
-
-NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData)
-
-{
-
- int navMinorVers = g_pNavigatorFuncs->version & 0xFF;
-
- NPError err;
-
- if( navMinorVers >= NPVERS_HAS_NOTIFICATION ) {
-
- err = g_pNavigatorFuncs->posturlnotify(instance, url, window, len, buf, file, notifyData);
-
- }
-
- else {
-
- err = NPERR_INCOMPATIBLE_VERSION_ERROR;
-
- }
-
- return err;
-
-}
-
-
-NPError NPN_PostURL(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file)
-{
- return g_pNavigatorFuncs->posturl(instance, url, window, len, buf, file);
-}
-
-/* Requests that a number of bytes be provided on a stream. Typically
- this would be used if a stream was in "pull" mode. An optional
- position can be provided for streams which are seekable.
-*/
-NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList)
-{
- return g_pNavigatorFuncs->requestread(stream, rangeList);
-}
-
-/* Creates a new stream of data from the plug-in to be interpreted
- by Netscape in the current window.
-*/
-NPError NPN_NewStream(NPP instance, NPMIMEType type,
- const char* target, NPStream** stream)
-{
-
- int navMinorVersion = g_pNavigatorFuncs->version & 0xFF;
-
- NPError err;
-
-
- if( navMinorVersion >= NPVERS_HAS_STREAMOUTPUT ) {
-
- err = g_pNavigatorFuncs->newstream(instance, type, target, stream);
-
- }
-
- else {
-
- err = NPERR_INCOMPATIBLE_VERSION_ERROR;
-
- }
-
- return err;
-}
-
-/* Provides len bytes of data.
-*/
-int32 NPN_Write(NPP instance, NPStream *stream,
- int32 len, void *buffer)
-{
- int navMinorVersion = g_pNavigatorFuncs->version & 0xFF;
-
- int32 result;
-
-
- if( navMinorVersion >= NPVERS_HAS_STREAMOUTPUT ) {
-
- result = g_pNavigatorFuncs->write(instance, stream, len, buffer);
-
- }
-
- else {
- result = -1;
-
- }
-
- return result;
-
-}
-
-/* Closes a stream object.
-reason indicates why the stream was closed.
-*/
-NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason)
-{
- int navMinorVersion = g_pNavigatorFuncs->version & 0xFF;
-
- NPError err;
-
-
- if( navMinorVersion >= NPVERS_HAS_STREAMOUTPUT ) {
-
- err = g_pNavigatorFuncs->destroystream(instance, stream, reason);
-
- }
- else {
-
- err = NPERR_INCOMPATIBLE_VERSION_ERROR;
-
- }
-
- return err;
-
-}
-
-/* Provides a text status message in the Netscape client user interface
-*/
-void NPN_Status(NPP instance, const char *message)
-{
- g_pNavigatorFuncs->status(instance, message);
-}
-
-/* returns the user agent string of Navigator, which contains version info
-*/
-const char* NPN_UserAgent(NPP instance)
-{
- return g_pNavigatorFuncs->uagent(instance);
-}
-
-/* allocates memory from the Navigator's memory space. Necessary so that
- saved instance data may be freed by Navigator when exiting.
-*/
-
-
-void* NPN_MemAlloc(uint32 size)
-{
- return g_pNavigatorFuncs->memalloc(size);
-}
-
-/* reciprocal of MemAlloc() above
-*/
-void NPN_MemFree(void* ptr)
-{
- g_pNavigatorFuncs->memfree(ptr);
-}
-
-/* private function to Netscape. do not use!
-*/
-void NPN_ReloadPlugins(NPBool reloadPages)
-{
- g_pNavigatorFuncs->reloadplugins(reloadPages);
-}
-
-JRIEnv* NPN_GetJavaEnv(void)
-{
- return g_pNavigatorFuncs->getJavaEnv();
-}
-
-jref NPN_GetJavaPeer(NPP instance)
-{
- return g_pNavigatorFuncs->getJavaPeer(instance);
-}
diff --git a/extensions/nsplugin/src/tqnp.cpp b/extensions/nsplugin/src/tqnp.cpp
deleted file mode 100644
index cd373ad45..000000000
--- a/extensions/nsplugin/src/tqnp.cpp
+++ /dev/null
@@ -1,2071 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQt extension classes for Netscape Plugin support.
-**
-** Created : 970601
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of the TQt GUI Toolkit.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at [email protected].
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-
-// Remaining TQ_WS_X11 considerations:
-// - What if !piApp upon NPP_NewStream? Are we safe?
-// - Yes, but users need to know of this: that no GUI can be
-// done until after setWindow is called.
-// - Use NPN_GetValue in Communicator4.0 to get the display earlier!
-// - For ClientMessage events, trap them, and if they are not for us,
-// untrap them and retransmit them and set a timer to retrap them
-// after N seconds.
-
-// Remaining TQ_WS_WIN considerations:
-// - we need to activateZeroTimers() at some time.
-// - we need to call winEventFilter on events
-// - timers:
-// if ( msg.message == WM_TIMER ) { // timer message received
-// activateTimer( msg.wParam );
-// return TRUE;
-// }
-// if ( msg.message == WM_KEYDOWN || msg.message == WM_KEYUP ) {
-// if ( translateKeyCode(msg.wParam) == 0 ) {
-// TranslateMessage( &msg ); // translate to WM_CHAR
-// return TRUE;
-// }
-// }
-// - qWinProcessConfigRequests?
-
-// Remaining general stuff:
-// - Provide the "reason" parameter to streamDestroyed
-
-// TQt stuff
-#include <ntqapplication.h>
-#include <tqeventloop.h>
-#include <tqwidget.h>
-#include <tqobjectlist.h>
-#include <tqcursor.h>
-#include <tqprinter.h>
-#include <tqfile.h>
-#include <tqpainter.h>
-
-#include "tqnp.h"
-
-#include <stdlib.h> // Must be here for Borland C++
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <limits.h>
-
-#ifdef TQ_WS_X11
-#include <X11/Intrinsic.h>
-
-class TQNPXtPrivate;
-
-class TQNPXt : public TQEventLoop
-{
-public:
- TQNPXt( const char *applicationClass, XtAppContext context = NULL, XrmOptionDescRec *options = 0, int numOptions = 0);
- ~TQNPXt();
-
- XtAppContext applicationContext() const;
-
- void registerSocketNotifier( TQSocketNotifier * );
- void unregisterSocketNotifier( TQSocketNotifier * );
-
- static void registerWidget( TQWidget* );
- static void unregisterWidget( TQWidget* );
- static bool redeliverEvent( XEvent *event );
- static XEvent* lastEvent();
-
-protected:
- bool processEvents( ProcessEventsFlags flags );
-
-private:
- void appStartingUp();
- void appClosingDown();
- TQNPXtPrivate *d;
-
-};
-
-#define GC GC_QQQ
-#endif
-
-extern "C" {
-//
-// Netscape plugin API
-//
-#ifdef TQ_WS_WIN
-#ifndef _WINDOWS
-#define _WINDOWS
-#endif
-#endif
-#ifdef TQ_WS_X11
-#define XP_UNIX
-#endif
-
-
-// This is to allow mingw support on windows without altering the sun header files
-#if defined(Q_CC_GNU) && defined(TQ_WS_WIN) && !defined(_MSC_VER)
-#define _MSC_VER 1
-#include "npapi.h"
-#undef _MSC_VER
-#else
-#include "npapi.h"
-#endif
-
-#ifdef TQ_WS_X11
-#undef XP_UNIX
-#include "npunix.c"
-#endif
-
-//
-// Stuff for the NPP_SetWindow function:
-//
-#ifdef TQ_WS_X11
-#include <X11/Xlib.h>
-#include <X11/Intrinsic.h>
-#include <X11/IntrinsicP.h> // for XtCreateWindow
-#include <X11/Shell.h>
-#include <X11/StringDefs.h>
-#include <X11/Xutil.h>
-#include <X11/Xos.h>
-//#include <dlfcn.h>
-#endif
-#ifdef TQ_WS_WIN
-#include <windows.h>
-#endif
-}
-
-#ifdef TQ_WS_WIN
-#include "npwin.cpp"
-#endif
-
-static TQEventLoop* event_loop = 0;
-static TQApplication* application = 0;
-
-struct _NPInstance
-{
- uint16 fMode;
-
-#ifdef TQ_WS_WIN
- HWND window;
-#endif
-
- NPP npp;
-
-#ifdef TQ_WS_X11
- Window window;
- Display *display;
-#endif
-
- uint32 x, y;
- uint32 width, height;
-
- TQNPWidget* widget;
- TQNPInstance* instance;
-
- int16 argc;
- TQString *argn;
- TQString *argv;
-};
-
-
-
-// The single global plugin
-static TQNPlugin *qNP=0;
-static int instance_count=0;
-
-// Temporary parameter passed `around the side' of calls to user functions
-static _NPInstance* next_pi=0;
-
-// To avoid looping when browser OR plugin can delete streams
-static int qnps_no_call_back = 0;
-
-#ifdef TQ_WS_WIN
-// defined in qapplication_win.cpp
-TQ_EXPORT extern bool qt_win_use_simple_timers;
-TQ_EXPORT void qWinProcessConfigRequests();
-static HHOOK hhook = 0;
-
-LRESULT CALLBACK FilterProc( int nCode, WPARAM wParam, LPARAM lParam )
-{
- if ( tqApp ) {
- tqApp->sendPostedEvents();
- tqApp->eventLoop()->activateSocketNotifiers();
- qWinProcessConfigRequests();
- }
-
- return CallNextHookEx( hhook, nCode, wParam, lParam );
-}
-
-#endif
-
-#ifdef TQ_WS_X11
-static int (*original_x_errhandler)( Display *dpy, XErrorEvent * ) = 0;
-static int dummy_x_errhandler( Display *, XErrorEvent * )
-{
- return 0;
-}
-#endif
-
-/******************************************************************************
- * Plug-in Calls - these are called by Netscape
- *****************************************************************************/
-
-
-// Instance state information about the plugin.
-
-#ifdef TQ_WS_X11
-
-extern "C" char*
-NPP_GetMIMEDescription(void)
-{
- if (!qNP) qNP = TQNPlugin::create();
- return (char*)qNP->getMIMEDescription();
-}
-
-
-
-extern "C" NPError
-NPP_GetValue(void * /*future*/, NPPVariable variable, void *value)
-{
- if (!qNP) qNP = TQNPlugin::create();
- NPError err = NPERR_NO_ERROR;
- if (variable == NPPVpluginNameString)
- *((const char **)value) = qNP->getPluginNameString();
- else if (variable == NPPVpluginDescriptionString)
- *((const char **)value) = qNP->getPluginDescriptionString();
- else
- err = NPERR_GENERIC_ERROR;
-
- return err;
-}
-
-#endif
-
-/*
-** NPP_Initialize is called when your DLL is being loaded to do any
-** DLL-specific initialization.
-*/
-extern "C" NPError
-NPP_Initialize(void)
-{
-#ifdef TQ_WS_WIN
- qt_win_use_simple_timers = TRUE;
- // Nothing more - we do it in DLLMain
-#endif
-
- if (!qNP) qNP = TQNPlugin::create();
- return NPERR_NO_ERROR;
-}
-
-static jref plugin_java_class = 0;
-
-/*
-** NPP_GetJavaClass is called during initialization to ask your plugin
-** what its associated Java class is. If you don't have one, just return
-** NULL. Otherwise, use the javah-generated "use_" function to both
-** initialize your class and return it. If you can't find your class, an
-** error will be signalled by "use_" and will cause the Navigator to
-** complain to the user.
-*/
-extern "C" jref
-NPP_GetJavaClass(void)
-{
- if (!qNP) qNP = TQNPlugin::create();
- plugin_java_class = (jref)qNP->getJavaClass();
- return plugin_java_class;
-}
-
-/*
-** NPP_Shutdown is called when your DLL is being unloaded to do any
-** DLL-specific shut-down. You should be a good citizen and declare that
-** you're not using your java class any more. This allows java to unload
-** it, freeing up memory.
-*/
-extern "C" void
-NPP_Shutdown(void)
-{
- if (qNP) {
- if (plugin_java_class)
- qNP->unuseJavaClass();
- delete qNP;
- qNP = 0;
- }
-
-#ifdef TQ_WS_X11
- if ( original_x_errhandler )
- XSetErrorHandler( original_x_errhandler );
-#endif
- if ( tqApp) {
-#ifdef TQ_WS_WIN32
- if ( hhook )
- UnhookWindowsHookEx( hhook );
- hhook = 0;
-#endif
- delete application;
- delete event_loop;
- }
-
-}
-
-
-struct NS_Private {
- uchar* a;
- uchar* b;
-};
-
-/*
-** NPP_New is called when your plugin is instantiated (i.e. when an EMBED
-** tag appears on a page).
-*/
-extern "C" NPError
-NPP_New(NPMIMEType /*pluginType*/,
- NPP instance,
- uint16 mode,
- int16 argc,
- char* argn[],
- char* argv[],
- NPSavedData* /*saved*/)
-{
- NPError result = NPERR_NO_ERROR;
- _NPInstance* This;
-
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- instance->pdata = new _NPInstance;
-
- This = (_NPInstance*) instance->pdata;
-
- if (This == NULL)
- return NPERR_OUT_OF_MEMORY_ERROR;
-
- This->npp = instance;
-
- /* mode is NP_EMBED, NP_FULL, or NP_BACKGROUND (see npapi.h) */
- This->fMode = mode;
-
- This->window = 0;
- This->widget = 0;
-
- This->argc = argc;
- This->argn = new TQString[argc+1];
- This->argv = new TQString[argc+1];
- for (int i=0; i<This->argc; i++) {
- This->argn[i] = argn[i];
- This->argv[i] = argv[i];
- }
-
- // Everything is set up - we can let TQNPInstance be created now.
- next_pi = This;
- qNP->newInstance();
- instance_count++;
-
- return result;
-}
-
-extern "C" NPError
-NPP_Destroy(NPP instance, NPSavedData** /*save*/)
-{
- _NPInstance* This;
-
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- This = (_NPInstance*) instance->pdata;
-
- if (This != NULL) {
- delete This->widget;
- delete This->instance;
- delete [] This->argn;
- delete [] This->argv;
-
- delete This;
- instance->pdata = NULL;
-
- instance_count--;
- }
-
- return NPERR_NO_ERROR;
-}
-
-extern "C" NPError
-NPP_SetWindow(NPP instance, NPWindow* window)
-{
- if (!qNP) qNP = TQNPlugin::create();
- NPError result = NPERR_NO_ERROR;
- _NPInstance* This;
-
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- This = (_NPInstance*) instance->pdata;
-
-
- // take a shortcut if all that was changed is the geometry
- if ( This->widget && window
-#ifdef TQ_WS_X11
- && This->window == (Window) window->window
-#endif
-#ifdef TQ_WS_WIN
- && This->window == (HWND) window->window
-#endif
- ) {
- This->x = window->x;
- This->y = window->y;
- This->width = window->width;
- This->height = window->height;
- This->widget->resize( This->width, This->height );
- return result;
- }
-
- delete This->widget;
-
- if ( !window )
- return result;
-
-#ifdef TQ_WS_X11
- This->window = (Window) window->window;
- This->display =
- ((NPSetWindowCallbackStruct *)window->ws_info)->display;
-#endif
-#ifdef TQ_WS_WIN
- This->window = (HWND) window->window;
-#endif
-
- This->x = window->x;
- This->y = window->y;
- This->width = window->width;
- This->height = window->height;
-
-
- if (!tqApp) {
-#ifdef TQ_WS_X11
- // We are the first TQt-based plugin to arrive
- event_loop = new TQNPXt( "qnp", XtDisplayToApplicationContext(This->display) );
- application = new TQApplication(This->display);
-#endif
-#ifdef TQ_WS_WIN
- static int argc=0;
- static char **argv={ 0 };
- application = new TQApplication( argc, argv );
-#ifdef UNICODE
- if ( qWinVersion() & TQt::WV_NT_based )
- hhook = SetWindowsHookExW( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() );
- else
-#endif
- hhook = SetWindowsHookExA( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() );
-#endif
- }
-
-#ifdef TQ_WS_X11
- if ( !original_x_errhandler )
- original_x_errhandler = XSetErrorHandler( dummy_x_errhandler );
-#endif
-
- // New widget on this new window.
- next_pi = This;
- /* This->widget = */ // (happens sooner - in TQNPWidget constructor)
- This->instance->newWindow();
-
- if ( !This->widget )
- return result;
-
-#ifdef TQ_WS_X11
- This->widget->resize( This->width, This->height );
- XReparentWindow( This->widget->x11Display(), This->widget->winId(), This->window, 0, 0 );
- XSync( This->widget->x11Display(), False );
-#endif
-#ifdef TQ_WS_WIN
- LONG oldLong = GetWindowLong(This->window, GWL_STYLE);
- ::SetWindowLong(This->window, GWL_STYLE, oldLong | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
- ::SetWindowLong( This->widget->winId(), GWL_STYLE, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS );
- ::SetParent( This->widget->winId(), This->window );
- This->widget->raise();
- This->widget->setGeometry( 0, 0, This->width, This->height );
-#endif
- This->widget->show();
- return result;
-}
-
-
-extern "C" NPError
-NPP_NewStream(NPP instance,
- NPMIMEType type,
- NPStream *stream,
- NPBool seekable,
- uint16 *stype)
-{
- _NPInstance* This;
-
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- This = (_NPInstance*) instance->pdata;
-
- if ( This ) {
- TQNPStream* qnps = new TQNPStream(This->instance,type,stream,seekable);
- stream->pdata = qnps;
- TQNPInstance::StreamMode sm = (TQNPInstance::StreamMode)*stype;
- if (!This->instance->newStreamCreated(qnps, sm)) {
- return NPERR_GENERIC_ERROR;
- }
- *stype = sm;
- }
-
- return NPERR_NO_ERROR;
-}
-
-
-int32 STREAMBUFSIZE = 0X0FFFFFFF; /* If we are reading from a file in NPAsFile
- * mode so we can take any size stream in our
- * write call (since we ignore it) */
-
-extern "C" int32
-NPP_WriteReady(NPP instance, NPStream *stream)
-{
- _NPInstance* This;
- if (instance != NULL) {
- This = (_NPInstance*) instance->pdata;
- } else {
- // Yikes, that's unusual!
- return 0;
- }
-
- if (This) {
- return This->instance->writeReady((TQNPStream*)stream->pdata);
- }
-
- /* Number of bytes ready to accept in NPP_Write() */
- return STREAMBUFSIZE;
-}
-
-
-extern "C" int32
-NPP_Write(NPP instance, NPStream *stream, int32 offset, int32 len, void *buffer)
-{
- if (instance != NULL)
- {
- _NPInstance* This = (_NPInstance*) instance->pdata;
-
- if (This) {
- return This->instance->write((TQNPStream*)stream->pdata,
- offset, len, buffer);
- }
- }
-
- return len; /* The number of bytes accepted */
-}
-
-
-extern "C" NPError
-NPP_DestroyStream(NPP instance, NPStream *stream, NPError reason)
-{
- _NPInstance* This;
-
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- if (!qnps_no_call_back) {
- This = (_NPInstance*) instance->pdata;
-
- TQNPStream* qnps = (TQNPStream*)stream->pdata;
- if ( qnps )
- switch (reason) {
- case NPRES_DONE:
- qnps->setComplete(TRUE);
- break;
- case NPRES_USER_BREAK:
- break;
- case NPRES_NETWORK_ERR:
- qnps->setOkay(FALSE);
- break;
- }
-
- if (This) {
- // Give the instance a chance to do something
- This->instance->streamDestroyed(qnps);
- }
-
- qnps_no_call_back++;
- delete qnps;
- qnps_no_call_back--;
- }
-
- return NPERR_NO_ERROR;
-}
-
-
-extern "C" void
-NPP_StreamAsFile(NPP instance, NPStream *stream, const char* fname)
-{
- _NPInstance* This;
-
- if (instance == NULL) return;
-
- This = (_NPInstance*) instance->pdata;
-
- if ( This ) {
- TQNPStream* qnps = (TQNPStream*)stream->pdata;
- This->instance->streamAsFile(qnps, fname);
- }
-}
-
-typedef struct
-{
- int32 type;
- FILE* fp;
-} NPPrintCallbackStruct;
-
-#ifdef TQ_WS_X11
-
-class TQNPPrinter : public TQPrinter {
- TQFile file;
-public:
- TQNPPrinter(FILE* fp)
- {
- file.open(IO_WriteOnly, fp);
- TQPDevCmdParam param;
- param.device = &file;
- cmd(PdcSetdev, 0, &param);
- }
- void end()
- {
- TQPDevCmdParam param;
- param.device = 0;
- cmd(PdcSetdev, 0, &param);
- }
-};
-#endif
-
-extern "C" void
-NPP_Print(NPP instance, NPPrint* printInfo)
-{
- if(printInfo == NULL)
- return;
-
- if (instance != NULL) {
- _NPInstance* This = (_NPInstance*) instance->pdata;
-
- if (printInfo->mode == NP_FULL) {
- printInfo->print.fullPrint.pluginPrinted =
- This->instance->printFullPage();
- } else if (printInfo->mode == NP_EMBED) {
-#ifdef TQ_WS_X11
- void* platformPrint =
- printInfo->print.embedPrint.platformPrint;
- FILE* outfile = ((NPPrintCallbackStruct*)platformPrint)->fp;
- if (ftell(outfile)) {
-// NPWindow* w =
-// &(printInfo->print.embedPrint.window);
- TQNPPrinter prn(outfile);
- TQPainter painter(&prn);
- // #### config viewport with w->{x,y,width,height}
- This->instance->print(&painter);
- prn.end();
- } else {
- // Why does the browser make spurious NPP_Print calls?
- }
-#endif
-#ifdef TQ_WS_WIN
- NPWindow* printWindow =
- &(printInfo->print.embedPrint.window);
- void* platformPrint =
- printInfo->print.embedPrint.platformPrint;
- // #### Nothing yet.
-#endif
- }
- }
-}
-
-extern "C" void
-NPP_URLNotify(NPP instance,
- const char* url,
- NPReason reason,
- void* notifyData)
-{
- if (instance != NULL) {
- TQNPInstance::Reason r;
- switch (reason) {
- case NPRES_DONE:
- r = TQNPInstance::ReasonDone;
- break;
- case NPRES_USER_BREAK:
- r = TQNPInstance::ReasonBreak;
- break;
- case NPRES_NETWORK_ERR:
- r = TQNPInstance::ReasonError;
- break;
- default:
- r = TQNPInstance::ReasonUnknown;
- break;
- }
- _NPInstance* This = (_NPInstance*) instance->pdata;
- This->instance->notifyURL(url, r, notifyData);
- }
-}
-
-
-
-#ifdef TQ_WS_WIN
-
-BOOL WINAPI DllMain (HANDLE hInst,
- ULONG ul_reason_for_call,
- LPVOID lpReserved)
-{
- return TRUE;
-}
-
-#endif
-
-
-
-/*!
- \class TQNPWidget tqnp.h
- \brief The TQNPWidget class provides a TQWidget that is a web browser plugin window.
-
- \extension Netscape Plugin
-
- Derive from TQNPWidget to create a widget that can be used as a
- web browser plugin window, or create one and add child widgets.
- Instances of TQNPWidget may only be created when
- TQNPInstance::newWindow() is called by the browser.
-
- A common way to develop a plugin widget is to develop it as a
- stand-alone application window, then make it a \e child of a
- plugin widget to use it as a browser plugin. The technique is:
-
-\code
-class MyPluginWindow : public TQNPWidget
-{
- TQWidget* child;
-public:
- MyPluginWindow()
- {
- // Some widget that is normally used as a top-level widget
- child = new MyIndependentlyDevelopedWidget();
-
- // Use the background color of the web page
- child->setBackgroundColor( backgroundColor() );
-
- // Fill the plugin widget
- child->setGeometry( 0, 0, width(), height() );
- }
-
- void resizeEvent(TQResizeEvent*)
- {
- // Fill the plugin widget
- child->resize(size());
- }
-};
-\endcode
-
- The default implementation is an empty window.
-*/
-
-/*!
- Creates a TQNPWidget.
-*/
-TQNPWidget::TQNPWidget() :
- pi(next_pi)
-{
- if (!next_pi) {
- tqFatal("TQNPWidget must only be created within call to newWindow");
- }
- next_pi->widget = this;
- next_pi = 0;
-
-#ifdef TQ_WS_WIN
- clearWFlags( WStyle_NormalBorder | WStyle_Title | WStyle_MinMax | WStyle_SysMenu );
- topData()->ftop = 0;
- topData()->fright = 0;
- topData()->fleft = 0;
- topData()->fbottom = 0;
-#endif
-}
-
-/*!
- Destroys the window. This will be called by the plugin binding
- code when the window is no longer required. The web browser will
- delete windows when they leave the page. The bindings will change
- the TQWidget::winId() of the window when the window is resized, but
- this should not affect normal widget behavior.
-*/
-TQNPWidget::~TQNPWidget()
-{
-#ifdef TQ_WS_X11
- destroy( FALSE, FALSE ); // X has destroyed all windows
-#endif
-}
-
-
-/*!\internal */
-void TQNPWidget::enterEvent(TQEvent*)
-{
- enterInstance();
-}
-
-/*!\internal */
-void TQNPWidget:: leaveEvent(TQEvent*)
-{
- if ( !TQApplication::activePopupWidget() )
- leaveInstance();
-}
-
-/*!
- Called when the mouse enters the plugin window. Does nothing by
- default.
-*/
-void TQNPWidget::enterInstance()
-{
-}
-
-/*!
- Called when the mouse leaves the plugin window. Does nothing by
- default.
-*/
-void TQNPWidget::leaveInstance()
-{
-}
-
-/*!
- Returns the instance for which this widget is the plugin window.
-*/
-TQNPInstance* TQNPWidget::instance()
-{
- return pi->instance;
-}
-
-
-
-
-
-/*!
- \class TQNPInstance tqnp.h
- \brief The TQNPInstance class provides a TQObject that is a web browser plugin.
-
- \extension Netscape Plugin
-
- Deriving from TQNPInstance creates an object that represents a
- single \c{<EMBED>} tag in an HTML document.
-
- The TQNPInstance is responsible for creating an appropriate
- TQNPWidget window if required (not all plugins have windows), and
- for interacting with the input/output facilities intrinsic to
- plugins.
-
- Note that there is \e{absolutely no guarantee} regarding the order
- in which functions are called. Sometimes the browser will call
- newWindow() first, at other times, newStreamCreated() will be
- called first (assuming the \c{<EMBED>} tag has a SRC parameter).
-
- \e{None of TQt's GUI functionality} may be used until after the
- first call to newWindow(). This includes any use of TQPaintDevice
- (i.e. TQPixmap, TQWidget, and all subclasses), TQApplication, anything
- related to TQPainter (TQBrush, etc.), fonts, TQMovie, TQToolTip, etc.
- Useful classes which specifically \e can be used are TQImage,
- TQFile, and TQBuffer.
-
- This restriction can easily be accommodated by structuring your
- plugin so that the task of the TQNPInstance is to gather data,
- while the task of the TQNPWidget is to provide a graphical
- interface to that data.
-*/
-
-/*!
- \enum TQNPInstance::InstanceMode
-
- This enum type provides TQt-style names for three #defines in
- \c npapi.h:
-
- \value Embed - corresponds to NP_EMBED
- \value Full - corresponds to NP_FULL
- \value Background - corresponds to NP_BACKGROUND
-
-*/
-
-/*!
- \enum TQNPInstance::Reason
-
- \value ReasonDone
- \value ReasonBreak
- \value ReasonError
- \value ReasonUnknown
-*/
-
-/*!
- \enum TQNPInstance::StreamMode
-
- \value Normal
- \value Seek
- \value AsFile
- \value AsFileOnly
-*/
-
-/*!
- Creates a TQNPInstance.
-
- Can only be called from within a derived class created within
- TQNPlugin::newInstance().
-*/
-TQNPInstance::TQNPInstance() :
- pi(next_pi)
-{
- if (!next_pi) {
- tqFatal("TQNPInstance must only be created within call to newInstance");
- }
- next_pi->instance = this;
- next_pi = 0;
-}
-
-/*!
- Called when the plugin instance is about to be deleted.
-*/
-TQNPInstance::~TQNPInstance()
-{
-}
-
-/*!
- Called at most once, at some time after the TQNPInstance is
- created. If the plugin requires a window, this function should
- return a derived class of TQNPWidget that provides the required
- interface.
-*/
-TQNPWidget* TQNPInstance::newWindow()
-{
- // No window by default
- next_pi = 0;
- return 0;
-}
-
-/*!
- Returns the plugin window created by newWindow(), if any.
-*/
-TQNPWidget* TQNPInstance::widget()
-{
- return pi->widget;
-}
-
-/*!
- \fn bool TQNPInstance::newStreamCreated(TQNPStream*, StreamMode& smode)
-
- This function is called when a new stream has been created. The
- instance should return TRUE if it accepts the processing of the
- stream. If the instance requires the stream as a file, it should
- set \a smode to \c AsFileOnly, in which case the data will be
- delivered some time later to the streamAsFile() function.
- Otherwise, the data will be delivered in chunks to the write()
- function, which must consume at least as much data as returned
- by the most recent call to writeReady().
-
- Note that the \c AsFileOnly method is not supported by Netscape
- 2.0 and MSIE 3.0.
-
- The default implementation accepts any stream.
-*/
-bool TQNPInstance::newStreamCreated(TQNPStream*, StreamMode&)
-{
- return TRUE;
-}
-
-/*!
- Called when a stream is delivered as a single file called \a fname
- rather than as chunks. This may be simpler for a plugin to deal
- with, but precludes any incremental behavior.
-
- Note that the \c AsFileOnly method is not supported by Netscape
- 2.0 and MSIE 3.0.
-
- \sa newStreamCreated(), newStream()
-*/
-void TQNPInstance::streamAsFile(TQNPStream*, const char* fname)
-{
-}
-
-/*!
- Called when a stream is destroyed. At this point, the stream may
- be complete() and okay(). If it is not okay(), then an error has
- occurred. If it is okay(), but not complete(), then the user has
- cancelled the transmission; do not give an error message in this
- case.
-*/
-void TQNPInstance::streamDestroyed(TQNPStream*)
-{
-}
-
-/*!
- Returns the minimum amount of data the instance is willing to
- receive from the given stream.
-
- The default returns a very large value.
-*/
-int TQNPInstance::writeReady(TQNPStream*)
-{
- // Yes, we can handle any amount of data at once.
- return 0X0FFFFFFF;
-}
-
-/*!
- \fn int TQNPInstance::write(TQNPStream*, int offset, int len, void* buffer)
-
- Called when incoming data is available for processing by the
- instance. The instance \e must consume at least the amount that it
- returned in the most recent call to writeReady(), but it may
- consume up to the amount given by \a len. \a buffer is the data
- available for consumption. The \a offset argument is merely an
- informational value indicating the total amount of data that has
- been consumed in prior calls.
-
- This function should return the amount of data actually consumed.
-*/
-int TQNPInstance::write(TQNPStream*, int, int len, void*)
-{
- // Yes, we processed it all... into the bit bucket.
- return len;
-}
-
-/*!
- Requests that the \a url be retrieved and sent to the named \a
- window. See Netscape's JavaScript documentation for an explanation
- of window names.
-*/
-void TQNPInstance::getURL(const char* url, const char* window)
-{
- NPN_GetURL( pi->npp, url, window );
-}
-
-/*!
- \preliminary
-
- This function is \e{not tested}.
-
- It is an interface to the NPN_PostURL function of the Netscape
- Plugin API.
-
- Passes \a url, \a window, \a buf, \a len, and \a file to
- NPN_PostURL.
-*/
-void TQNPInstance::postURL(const char* url, const char* window,
- uint len, const char* buf, bool file)
-{
- NPN_PostURL( pi->npp, url, window, len, buf, file );
-}
-
-/*!
- Requests that the given \a url be retrieved and sent to
- the named \a window. See Netscape's JavaScript documentation for
- an explanation of window names. Passes the arguments including \a
- data to NPN_GetURLNotify.
-
- \sa
- \link http://developer.netscape.com/docs/manuals/communicator/plugin/refpgur.htm#npngeturlnotify
- Netscape: NPN_GetURLNotify method\endlink
-*/
-void TQNPInstance::getURLNotify(const char* url, const char* window, void*data)
-{
-#ifdef TQ_WS_WIN // Only on Windows?
- NPN_GetURLNotify( pi->npp, url, window, data );
-#else
- Q_UNUSED( url );
- Q_UNUSED( window );
- Q_UNUSED( data );
-#endif
-}
-
-/*!
- \preliminary
-
- This function is \e{not tested}.
-
- It is an encapsulation of the NPP_Print function of the Netscape
- Plugin API.
-*/
-bool TQNPInstance::printFullPage()
-{
- return FALSE;
-}
-
-/*!
- \preliminary
-
- This function is \e{not tested}.
-
- Print the instance embedded in a page.
-
- It is an encapsulation of the NPP_Print function of the Netscape
- Plugin API.
-*/
-void TQNPInstance::print(TQPainter*)
-{
- // ### default could redirected-print the window.
-}
-
-/*!
- Returns the number of arguments to the instance. Note that you
- should not normally rely on the ordering of arguments, and
- note that the SGML specification does not permit multiple
- arguments with the same name.
-
- \sa arg(), argn()
-*/
-int TQNPInstance::argc() const
-{
- return pi->argc;
-}
-
-/*!
- Returns the name of the \a{i}-th argument.
-
- \sa argc(), argv()
-*/
-const char* TQNPInstance::argn(int i) const
-{
- return pi->argn[i];
-}
-
-/*!
- \preliminary
-
- This function is \e{not tested}.
-
- Called whenever a \a url is notified after a call to
- NPN_GetURLNotify with \a notifyData. The reason is given in \a r.
-
- It is an encapsulation of the NPP_URLNotify function of the
- Netscape Plugin API.
-
- See also:
- \link http://developer.netscape.com/docs/manuals/communicator/plugin/refpgur.htm#nppurlnotify
- Netscape: NPP_URLNotify method\endlink
-*/
-void TQNPInstance::notifyURL(const char*, Reason, void*)
-{
-}
-
-/*!
- Returns the value of the \a{i}-th argument.
-
- \as argc(), arg()
-*/
-const char* TQNPInstance::argv(int i) const
-{
- return pi->argv[i];
-}
-
-/*!
- Returns the mode of the plugin.
-*/
-TQNPInstance::InstanceMode TQNPInstance::mode() const
-{
- return (TQNPInstance::InstanceMode)pi->fMode;
-}
-
-/*!
- Returns the value of the named arguments, or 0 if no argument
- called \a name appears in the \c{<EMBED>} tag of this instance.
- If the argument appears, but has no value assigned, the empty
- string is returned. In summary:
-
- \table
- \header \i Tag \i Result
- \row \i \c{<EMBED ...>} \i arg("FOO") == 0
- \row \i \c{<EMBED FOO ...>} \i arg("FOO") == ""
- \row \i \c{<EMBED FOO=BAR ...>} \i arg("FOO") == "BAR"
- \endtable
-*/
-const char* TQNPInstance::arg(const char* name) const
-{
- for (int i=0; i<pi->argc; i++) {
- // SGML: names are case insensitive
- if ( tqstricmp( name, pi->argn[i] ) == 0 ) {
- if (pi->argv[i].isEmpty())
- return "";
- else
- return pi->argv[i];
- }
- }
- return 0;
-}
-
-/*!
- Returns the user agent (browser name) containing this instance.
-*/
-const char* TQNPInstance::userAgent() const
-{
- return NPN_UserAgent(pi->npp);
-}
-
-/*!
- \preliminary
-
- This function is \e{not tested}.
-
- Requests the creation of a new data stream \e from the plugin.
- The MIME type and window are passed in \a mimetype and \a window.
- \a as_file holds the \c AsFileOnly flag. It is an interface to the
- NPN_NewStream function of the Netscape Plugin API.
-*/
-TQNPStream* TQNPInstance::newStream(const char* mimetype, const char* window,
- bool as_file)
-{
- NPStream* s=0;
- NPError err = NPN_NewStream(pi->npp, (char*)mimetype, window, &s);
- if (err != NPERR_NO_ERROR) return 0;
- return s ? new TQNPStream(this, mimetype, s, as_file) : 0;
-}
-
-/*!
- Sets the status message in the browser containing this instance to
- \a msg.
-*/
-void TQNPInstance::status(const char* msg)
-{
- NPN_Status(pi->npp, msg);
-}
-
-
-/*!
- Returns the Java object associated with the plugin instance, an
- object of the \link TQNPlugin::getJavaClass() plugin's Java
- class\endlink, or 0 if the plug-in does not have a Java class,
- Java is disabled, or an error occurred.
-
- The return value is actually a \c{jref} we use \c{void*} so as to
- avoid burdening plugins which do not require Java.
-
- \sa TQNPlugin::getJavaClass(), TQNPlugin::getJavaEnv(), getJavaPeer()
-*/
-void* TQNPInstance::getJavaPeer() const
-{
- return NPN_GetJavaPeer(pi->npp);
-}
-
-
-/*!
- \class TQNPStream tqnp.h
- \brief The TQNPStream class provides a stream of data provided to a TQNPInstance by the browser.
-
- \extension Netscape Plugin
-
- Note that this is neither a TQTextStream nor a TQDataStream.
-
- \sa TQNPInstance::write(), TQNPInstance::newStreamCreated()
-*/
-
-/*!
- Creates a stream. Plugins should not call this; they should call
- TQNPInstance::newStream() if they need a stream.
-
- Takes a TQNPInstance \a in, MIME type \a mt, a pointer to an
- _NPStream \a st and a seekable flag \a se.
-*/
-TQNPStream::TQNPStream(TQNPInstance* in,const char* mt, _NPStream* st, bool se) :
- inst(in),
- stream(st),
- mtype(mt),
- seek(se)
-{
- isokay = TRUE;
- iscomplete = FALSE;
-}
-
-/*!
- Destroys the stream.
-*/
-TQNPStream::~TQNPStream()
-{
- if (!qnps_no_call_back) {
- qnps_no_call_back++;
- NPN_DestroyStream(inst->pi->npp, stream, NPRES_USER_BREAK);
- qnps_no_call_back--;
- }
-}
-
-/*!
- \fn TQNPInstance* TQNPStream::instance()
-
- Returns the TQNPInstance for which this stream was created.
-*/
-
-/*!
- Returns the URL from which the stream was created.
-*/
-const char* TQNPStream::url() const
-{
- return stream->url;
-}
-
-/*!
- Returns the length of the stream in bytes. The function might
- return 0 for streams of unknown length.
-*/
-uint TQNPStream::end() const
-{
- return stream->end;
-}
-
-/*!
- Returns the time when the source of the stream was last modified.
-*/
-uint TQNPStream::lastModified() const
-{
- return stream->lastmodified;
-}
-
-/*!
- Returns the MIME type of the stream.
-*/
-const char* TQNPStream::type() const
-{
- return mtype;
-}
-
-/*!
- Returns TRUE if the stream is seekable; otherwise returns FALSE.
-*/
-bool TQNPStream::seekable() const
-{
- return seek;
-}
-
-/*!
- \internal
-*/
-void TQNPStream::setOkay(bool y)
-{
- isokay = y;
-}
-
-/*!
- \internal
-*/
-void TQNPStream::setComplete(bool y)
-{
- iscomplete = y;
-}
-
-/*!
- Returns TRUE if no errors have occurred on the stream; otherwise
- returns FALSE.
-*/
-bool TQNPStream::okay() const
-{
- return isokay;
-}
-
-/*!
- Returns TRUE if the stream has received all the data from the
- source; otherwise returns FALSE.
-*/
-bool TQNPStream::complete() const
-{
- return iscomplete;
-}
-
-/*!
- Requests the section of the stream, of \a length bytes from \a
- offset, be sent to the TQNPInstance::write() function of the
- instance() of this stream.
-*/
-void TQNPStream::requestRead(int offset, uint length)
-{
- NPByteRange range;
- range.offset = offset;
- range.length = length;
- range.next = 0; // ### Only one supported at this time
- NPN_RequestRead(stream, &range);
-}
-
-/*!
- Writes \a len bytes from \a buffer \e to the stream.
-*/
-int TQNPStream::write( int len, void* buffer )
-{
- return NPN_Write(inst->pi->npp, stream, len, buffer);
-}
-
-
-
-/******************************************************************************
- * The plugin itself - only one ever exists, created by TQNPlugin::create()
- *****************************************************************************/
-
-
-/*!
- \class TQNPlugin tqnp.h
- \brief The TQNPlugin class provides the main factory for plugin objects.
-
- \extension Netscape Plugin
-
- This class is the heart of the plugin. One instance of this object
- is created when the plugin is \e first needed, by calling
- TQNPlugin::create(), which must be implemented in your plugin code
- to return some derived class of TQNPlugin. The one TQNPlugin object
- creates all TQNPInstance instances for a web browser running in a
- single process.
-
- Additionally, if TQt is linked to the plugin as a dynamic library,
- only one instance of TQApplication will exist \e{across all plugins
- that have been made with TQt}. So, your plugin should tread lightly
- on global settings. Do not, for example, use
- TQApplication::setFont() - that will change the font in every
- widget of every TQt-based plugin currently loaded!
-*/
-
-/*!
- \fn TQNPlugin* TQNPlugin::create()
-
- This function must be implemented by your plugin code. It should return a
- derived class of TQNPlugin.
-*/
-
-/*!
- Returns the plugin most recently returned by TQNPlugin::create().
-*/
-TQNPlugin* TQNPlugin::actual()
-{
- return qNP;
-}
-
-/*!
- Creates a TQNPlugin. This may only be used by the constructor
- of the class, derived from TQNPlugin, that is returned by your
- plugin's implementation of the TQNPlugin::create() function.
-*/
-TQNPlugin::TQNPlugin()
-{
- // Encourage linker to include stuff.
- static void* a;
- a = (void*)NP_Initialize;
- a = (void*)NP_Shutdown;
-}
-
-/*!
- Destroys the TQNPlugin. This is called by the plugin binding code
- just before the plugin is about to be unloaded from memory. If
- newWindow() has been called, a TQApplication will still exist at
- this time, but will be deleted shortly after, just before the plugin
- is deleted.
-*/
-TQNPlugin::~TQNPlugin()
-{
-}
-
-/*!
- Populates \e *\a plugin_major and \e *\a plugin_minor with the
- version of the plugin API and populates \e *\a browser_major and
- \e *\a browser_minor with the version of the web browser.
-*/
-void TQNPlugin::getVersionInfo(int& plugin_major, int& plugin_minor,
- int& browser_major, int& browser_minor)
-{
- NPN_Version(&plugin_major, &plugin_minor, &browser_major, &browser_minor);
-}
-
-/*!
- \fn TQNPInstance* TQNPlugin::newInstance()
-
- Override this function to return an appropriate derived class of
- TQNPInstance.
-*/
-
-/*!
- \fn const char* TQNPlugin::getMIMEDescription() const
-
- Override this function to return the MIME description of the data formats
- supported by your plugin. The format of this string is shown by
- the following example:
-
-\code
- const char* getMIMEDescription() const
- {
- return "image/x-png:png:PNG Image;"
- "image/png:png:PNG Image;"
- "image/x-portable-bitmap:pbm:PBM Image;"
- "image/x-portable-graymap:pgm:PGM Image;"
- "image/x-portable-pixmap:ppm:PPM Image;"
- "image/bmp:bmp:BMP Image;"
- "image/x-ms-bmp:bmp:BMP Image;"
- "image/x-xpixmap:xpm:XPM Image;"
- "image/xpm:xpm:XPM Image";
- }
-\endcode
-*/
-
-/*!
- \fn const char* TQNPlugin::getPluginNameString() const
-
- Returns a pointer to the plain-text name of the plugin.
-*/
-
-/*!
- \fn const char* TQNPlugin::getPluginDescriptionString() const
-
- Returns a pointer to the plain-text description of the plugin.
-*/
-
-/*!
- Override this function to return a reference to the Java class that represents
- the plugin. The default returns 0, indicating no class.
-
- If you override this class, you must also override
- TQNPlugin::unuseJavaClass().
-
- The return value is actually a \c{jref}; we use \c{void*} so as to
- avoid burdening plugins which do not require Java.
-
- \sa getJavaEnv(), TQNPInstance::getJavaPeer()
-*/
-void* TQNPlugin::getJavaClass()
-{
- return NULL;
-}
-
-/*!
- This function is called when the plugin is shutting down. The
- function should \e unuse the Java class returned earlier by
- getJavaClass().
-*/
-void TQNPlugin::unuseJavaClass()
-{
- tqFatal("TQNPlugin::unuseJavaClass() must be overridden along with getJavaClass()");
-}
-
-/*!
- Returns a pointer to the Java execution environment, or 0 if
- either Java is disabled or an error occurred.
-
- The return value is actually a \c{JRIEnv*}; we use \c{void*} so as
- to avoid burdening plugins which do not require Java.
-
- \sa getJavaClass(), TQNPInstance::getJavaPeer()
-*/
-void* TQNPlugin::getJavaEnv() const
-{
- return NPN_GetJavaEnv();
-}
-
-#ifdef TQ_WS_X11
-
-#include <ntqapplication.h>
-#include <tqwidgetintdict.h>
-
-// resolve the conflict between X11's FocusIn and TQEvent::FocusIn
-const int XFocusOut = FocusOut;
-const int XFocusIn = FocusIn;
-#undef FocusOut
-#undef FocusIn
-
-const int XKeyPress = KeyPress;
-const int XKeyRelease = KeyRelease;
-#undef KeyPress
-#undef KeyRelease
-
-Boolean qnpxt_event_dispatcher( XEvent *event );
-static void qnpxt_keep_alive();
-void qnpxt_timeout_handler( XtPointer, XtIntervalId * );
-
-class TQNPXtPrivate
-{
-public:
- TQNPXtPrivate();
-
- void hookMeUp();
- void unhook();
-
- XtAppContext appContext, ownContext;
- TQMemArray<XtEventDispatchProc> dispatchers;
- TQWidgetIntDict mapper;
-
- TQIntDict<TQSocketNotifier> socknotDict;
- uint pending_socknots;
- bool activate_timers;
- int timerid;
-
- // arguments for Xt display initialization
- const char* applicationClass;
- XrmOptionDescRec* options;
- int numOptions;
-};
-static TQNPXtPrivate *static_d = 0;
-static XEvent* last_xevent = 0;
-
-
-bool TQNPXt::redeliverEvent( XEvent *event )
-{
- // redeliver the event to Xt, NOT through TQt
- if ( static_d->dispatchers[ event->type ]( event ) ) {
- // tqDebug( "Xt: redelivered event" );
- return TRUE;
- }
- return FALSE;
-};
-
-
-XEvent* TQNPXt::lastEvent()
-{
- return last_xevent;
-}
-
-
-TQNPXtPrivate::TQNPXtPrivate()
- : appContext(NULL), ownContext(NULL),
- pending_socknots(0), activate_timers(FALSE), timerid(-1)
-{
-}
-
-void TQNPXtPrivate::hookMeUp()
-{
- // worker to plug TQt into Xt (event dispatchers)
- // and Xt into TQt (TQNPXtEventLoop)
-
- // ### TODO extensions?
- dispatchers.resize( LASTEvent );
- dispatchers.fill( 0 );
- int et;
- for ( et = 2; et < LASTEvent; et++ )
- dispatchers[ et ] =
- XtSetEventDispatcher( TQPaintDevice::x11AppDisplay(),
- et, ::qnpxt_event_dispatcher );
-}
-
-void TQNPXtPrivate::unhook()
-{
- // unhook TQt from Xt (event dispatchers)
- // unhook Xt from TQt? (TQNPXtEventLoop)
-
- // ### TODO extensions?
- int et;
- for ( et = 2; et < LASTEvent; et++ )
- (void) XtSetEventDispatcher( TQPaintDevice::x11AppDisplay(),
- et, dispatchers[ et ] );
- dispatchers.resize( 0 );
-
- /*
- We cannot destroy the app context here because it closes the X
- display, something TQApplication does as well a bit later.
- if ( ownContext )
- XtDestroyApplicationContext( ownContext );
- */
- appContext = ownContext = 0;
-}
-
-extern bool tqt_try_modal( TQWidget *, XEvent * ); // defined in qapplication_x11.cpp
-Boolean qnpxt_event_dispatcher( XEvent *event )
-{
- static bool grabbed = FALSE;
-
- TQApplication::sendPostedEvents();
-
- TQWidgetIntDict *mapper = &static_d->mapper;
- TQWidget* qnpxt = mapper->find( event->xany.window );
- if ( !qnpxt && TQWidget::find( event->xany.window) == 0 ) {
- // event is not for TQt, try Xt
- Widget w = XtWindowToWidget( TQPaintDevice::x11AppDisplay(),
- event->xany.window );
- while ( w && ! ( qnpxt = mapper->find( XtWindow( w ) ) ) ) {
- if ( XtIsShell( w ) ) {
- break;
- }
- w = XtParent( w );
- }
-
- if ( qnpxt && ( event->type == XKeyPress ||
- event->type == XKeyRelease ) ) {
- // remap key events to keep accelerators working
- event->xany.window = qnpxt->winId();
- }
-
- if ( w ) {
- if ( !grabbed && ( event->type == XFocusIn &&
- event->xfocus.mode == NotifyGrab ) ) {
- // tqDebug( "Xt: grab started" );
- grabbed = TRUE;
- } else if ( grabbed && ( event->type == XFocusOut &&
- event->xfocus.mode == NotifyUngrab ) ) {
- // tqDebug( "Xt: grab ended" );
- grabbed = FALSE;
- }
- }
- }
-
- /*
- If the mouse has been grabbed for a window that we don't know
- about, we shouldn't deliver any pointer events, since this will
- intercept the event that ends the mouse grab that Xt/Motif
- started.
- */
- bool do_deliver = TRUE;
- if ( grabbed && ( event->type == ButtonPress ||
- event->type == ButtonRelease ||
- event->type == MotionNotify ||
- event->type == EnterNotify ||
- event->type == LeaveNotify ) )
- do_deliver = FALSE;
-
- last_xevent = event;
- bool delivered = do_deliver && ( tqApp->x11ProcessEvent( event ) != -1 );
- last_xevent = 0;
- if ( qnpxt ) {
- switch ( event->type ) {
- case EnterNotify:
- case LeaveNotify:
- event->xcrossing.focus = False;
- delivered = FALSE;
- break;
- case XKeyPress:
- case XKeyRelease:
- delivered = TRUE;
- break;
- case XFocusIn:
- case XFocusOut:
- delivered = FALSE;
- break;
- default:
- delivered = FALSE;
- break;
- }
- }
-
- qnpxt_keep_alive();
-
- if ( delivered ) {
- // tqDebug( "TQt: delivered event" );
- return True;
- }
-
- // discard user input events when we have an active popup widget
- if ( TQApplication::activePopupWidget() ) {
- switch ( event->type ) {
- case ButtonPress: // disallow mouse/key events
- case ButtonRelease:
- case MotionNotify:
- case XKeyPress:
- case XKeyRelease:
- case EnterNotify:
- case LeaveNotify:
- case ClientMessage:
- // tqDebug( "TQt: active popup - discarding event" );
- return True;
-
- default:
- break;
- }
- }
-
- if ( TQApplication::activeModalWidget() ) {
- if ( qnpxt ) {
- // send event through TQt modality handling...
- if ( !tqt_try_modal( qnpxt, event ) ) {
- // tqDebug( "TQt: active modal widget discarded event" );
- return True;
- }
- } else if ( !grabbed ) {
- // we could have a pure Xt shell as a child of the active
- // modal widget
- TQWidget *qw = 0;
- Widget xw = XtWindowToWidget( TQPaintDevice::x11AppDisplay(),
- event->xany.window );
- while ( xw && !( qw = mapper->find( XtWindow( xw ) ) ) )
- xw = XtParent( xw );
-
- while ( qw && qw != TQApplication::activeModalWidget() )
- qw = qw->parentWidget();
-
- if ( !qw ) {
- // event is destined for an Xt widget, but since TQt has an
- // active modal widget, we stop here...
- switch ( event->type ) {
- case ButtonPress: // disallow mouse/key events
- case ButtonRelease:
- case MotionNotify:
- case XKeyPress:
- case XKeyRelease:
- case EnterNotify:
- case LeaveNotify:
- case ClientMessage:
- // tqDebug( "TQt: active modal widget discarded unknown event" );
- return True;
- default:
- break;
- }
- }
- }
- }
-
- if ( static_d->dispatchers[ event->type ]( event ) ) {
- // tqDebug( "Xt: delivered event" );
- // Xt handled the event.
- return True;
- }
-
- return False;
-}
-
-
-
-TQNPXt::TQNPXt( const char *applicationClass, XtAppContext context,
- XrmOptionDescRec *options , int numOptions)
-{
-#if defined(QT_CHECK_STATE)
- if ( static_d )
- tqWarning( "TQNPXt: should only have one TQNPXt instance!" );
-#endif
-
- d = static_d = new TQNPXtPrivate;
- XtToolkitInitialize();
- if ( context )
- d->appContext = context;
- else
- d->ownContext = d->appContext = XtCreateApplicationContext();
-
- d->applicationClass = applicationClass;
- d->options = options;
- d->numOptions = numOptions;
-}
-
-
-TQNPXt::~TQNPXt()
-{
- delete d;
- static_d = 0;
-}
-
-XtAppContext TQNPXt::applicationContext() const
-{
- return d->appContext;
-}
-
-
-void TQNPXt::appStartingUp()
-{
- /*
- TQApplication could be using a Display from an outside source, so
- we should only initialize the display if the current application
- context does not contain the TQApplication display
- */
-
- bool display_found = FALSE;
- Display **displays;
- Cardinal x, count;
- XtGetDisplays( d->appContext, &displays, &count );
- for ( x = 0; x < count && ! display_found; ++x ) {
- if ( displays[x] == TQPaintDevice::x11AppDisplay() )
- display_found = TRUE;
- }
- if ( displays )
- XtFree( (char *) displays );
-
- if ( ! display_found ) {
- int argc = tqApp->argc();
- XtDisplayInitialize( d->appContext,
- TQPaintDevice::x11AppDisplay(),
- tqApp->name(),
- d->applicationClass,
- d->options,
- d->numOptions,
- &argc,
- tqApp->argv() );
- }
-
- d->hookMeUp();
-
- // start a zero-timer to get the timer keep-alive working
- d->timerid = XtAppAddTimeOut( d->appContext, 0, qnpxt_timeout_handler, 0 );
-}
-
-void TQNPXt::appClosingDown()
-{
- if ( d->timerid != -1 )
- XtRemoveTimeOut( d->timerid );
- d->timerid = -1;
-
- d->unhook();
-}
-
-
-void TQNPXt::registerWidget( TQWidget* w )
-{
- if ( !static_d )
- return;
- static_d->mapper.insert( w->winId(), w );
-}
-
-
-void TQNPXt::unregisterWidget( TQWidget* w )
-{
- if ( !static_d )
- return;
- static_d->mapper.remove( w->winId() );
-}
-
-
-void qnpxt_socknot_handler( XtPointer pointer, int *, XtInputId *id )
-{
- TQNPXt *eventloop = (TQNPXt *) pointer;
- TQSocketNotifier *socknot = static_d->socknotDict.find( *id );
- if ( ! socknot ) // this shouldn't happen
- return;
- eventloop->setSocketNotifierPending( socknot );
- if ( ++static_d->pending_socknots > static_d->socknotDict.count() ) {
- /*
- We have too many pending socket notifiers. Since Xt prefers
- socket notifiers over X events, we should go ahead and
- activate all our pending socket notifiers so that the event
- loop doesn't freeze up because of this.
- */
- eventloop->activateSocketNotifiers();
- static_d->pending_socknots = 0;
- }
-}
-
-void TQNPXt::registerSocketNotifier( TQSocketNotifier *notifier )
-{
- XtInputMask mask;
- switch ( notifier->type() ) {
- case TQSocketNotifier::Read:
- mask = XtInputReadMask;
- break;
-
- case TQSocketNotifier::Write:
- mask = XtInputWriteMask;
- break;
-
- case TQSocketNotifier::Exception:
- mask = XtInputExceptMask;
- break;
-
- default:
- tqWarning( "TQNPXtEventLoop: socket notifier has invalid type" );
- return;
- }
-
- XtInputId id = XtAppAddInput( d->appContext,
- notifier->socket(), (XtPointer) mask,
- qnpxt_socknot_handler, this );
- d->socknotDict.insert( id, notifier );
-
- TQEventLoop::registerSocketNotifier( notifier );
-}
-
-void TQNPXt::unregisterSocketNotifier( TQSocketNotifier *notifier )
-{
- TQIntDictIterator<TQSocketNotifier> it( d->socknotDict );
- while ( it.current() && notifier != it.current() )
- ++it;
- if ( ! it.current() ) {
- // this shouldn't happen
- tqWarning( "TQNPXtEventLoop: failed to unregister socket notifier" );
- return;
- }
-
- XtRemoveInput( it.currentKey() );
- d->socknotDict.remove( it.currentKey() );
-
- TQEventLoop::unregisterSocketNotifier( notifier );
-}
-
-static void qnpxt_keep_alive() {
- // make sure we fire off TQt's timers
- int ttw = TQApplication::eventLoop()->timeToWait();
- if ( static_d->timerid != -1 )
- XtRemoveTimeOut( static_d->timerid );
- static_d->timerid = -1;
- if ( ttw != -1 ) {
- static_d->timerid =
- XtAppAddTimeOut( static_d->appContext, ttw, qnpxt_timeout_handler, 0 );
- }
-}
-
-void qnpxt_timeout_handler( XtPointer, XtIntervalId * )
-{
- static_d->timerid = -1;
-
- if ( ! TQApplication::eventLoop()->loopLevel() ) {
- /*
- when the TQt eventloop is not running, make sure that TQt
- timers still work with an Xt keep-alive timer
- */
- TQApplication::eventLoop()->activateTimers();
- static_d->activate_timers = FALSE;
-
- qnpxt_keep_alive();
- } else {
- static_d->activate_timers = TRUE;
- }
-}
-
-bool TQNPXt::processEvents( ProcessEventsFlags flags )
-{
- // TQt uses posted events to do lots of delayed operations, like
- // repaints... these need to be delivered before we go to sleep
- TQApplication::sendPostedEvents();
-
- bool canWait = ( flags & WaitForMore );
-
- qnpxt_keep_alive();
-
- // get the pending event mask from Xt and process the next event
- XtInputMask pendingmask = XtAppPending( d->appContext );
- XtInputMask mask = pendingmask;
- if ( pendingmask & XtIMTimer ) {
- mask &= ~XtIMTimer;
- // zero timers will starve the Xt X event dispatcher... so
- // process something *instead* of a timer first...
- if ( mask != 0 )
- XtAppProcessEvent( d->appContext, mask );
- // and process a timer afterwards
- mask = pendingmask & XtIMTimer;
- }
-
- if ( canWait )
- XtAppProcessEvent( d->appContext, XtIMAll );
- else
- XtAppProcessEvent( d->appContext, mask );
-
- int nevents = 0;
- if ( ! ( flags & ExcludeSocketNotifiers ) ) {
- nevents += activateSocketNotifiers();
- d->pending_socknots = 0;
- }
-
- if ( d->activate_timers ) {
- nevents += activateTimers();
- }
- d->activate_timers = FALSE;
-
- return ( canWait || ( pendingmask != 0 ) || nevents > 0 );
-}
-
-
-#endif // TQ_WS_X11
diff --git a/extensions/nsplugin/src/tqnp.h b/extensions/nsplugin/src/tqnp.h
deleted file mode 100644
index 3451afbb9..000000000
--- a/extensions/nsplugin/src/tqnp.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/****************************************************************************
-**
-** Definition of TQt extension classes for Netscape Plugin support.
-**
-** Created : 970601
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of the TQt GUI Toolkit.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at [email protected].
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef TQNP_H
-#define TQNP_H
-
-#ifndef QT_H
-#include "tqwidget.h"
-#endif // QT_H
-
-
-struct _NPInstance;
-struct _NPStream;
-class TQNPInstance;
-
-class TQNPStream {
-public:
- ~TQNPStream();
-
- const char* url() const;
- uint end() const;
- uint lastModified() const;
-
- const char* type() const;
- bool seekable() const;
- bool okay() const;
- bool complete() const;
-
- void requestRead(int offset, uint length);
- int write( int len, void* buffer );
-
- TQNPInstance* instance() { return inst; }
- TQNPStream(TQNPInstance*,const char*,_NPStream*,bool);
- void setOkay(bool);
- void setComplete(bool);
-
-private:
- TQNPInstance* inst;
- _NPStream* stream;
- TQString mtype;
- int seek:1;
- int isokay:1;
- int iscomplete:1;
-};
-
-class TQNPWidget : public TQWidget {
- TQ_OBJECT
-public:
- TQNPWidget();
- ~TQNPWidget();
- void enterEvent(TQEvent*);
- void leaveEvent(TQEvent*);
-
- virtual void enterInstance();
- virtual void leaveInstance();
-
- TQNPInstance* instance();
-
-private:
- _NPInstance* pi;
-};
-
-class TQNPInstance : public TQObject {
- TQ_OBJECT
-public:
- ~TQNPInstance();
-
- // Arguments passed to EMBED
- int argc() const;
- const char* argn(int) const;
- const char* argv(int) const;
- enum Reason {
- ReasonDone = 0,
- ReasonBreak = 1,
- ReasonError = 2,
- ReasonUnknown = -1
- };
- const char* arg(const char* name) const;
- enum InstanceMode { Embed=1, Full=2, Background=3 };
- InstanceMode mode() const;
-
- // The browser's name
- const char* userAgent() const;
-
- // Your window.
- virtual TQNPWidget* newWindow();
- TQNPWidget* widget();
-
- // Incoming streams (SRC=... tag).
- // Defaults ignore data.
- enum StreamMode { Normal=1, Seek=2, AsFile=3, AsFileOnly=4 };
- virtual bool newStreamCreated(TQNPStream*, StreamMode& smode);
- virtual int writeReady(TQNPStream*);
- virtual int write(TQNPStream*, int offset, int len, void* buffer);
- virtual void streamDestroyed(TQNPStream*);
-
- void status(const char* msg);
- void getURLNotify(const char* url, const char* window=0, void*data=0);
-
- void getURL(const char* url, const char* window=0);
- void postURL(const char* url, const char* window,
- uint len, const char* buf, bool file);
-
- TQNPStream* newStream(const char* mimetype, const char* window,
- bool as_file=FALSE);
- virtual void streamAsFile(TQNPStream*, const char* fname);
-
- void* getJavaPeer() const;
-
- virtual void notifyURL(const char* url, Reason r, void* notifyData);
- virtual bool printFullPage();
- virtual void print(TQPainter*);
-
-protected:
- TQNPInstance();
-
-private:
- friend class TQNPStream;
- _NPInstance* pi;
-};
-
-
-class TQNPlugin {
-public:
- // Write this to return your TQNPlugin derived class.
- static TQNPlugin* create();
-
- static TQNPlugin* actual();
-
- virtual ~TQNPlugin();
-
- void getVersionInfo(int& plugin_major, int& plugin_minor,
- int& browser_major, int& browser_minor);
-
- virtual TQNPInstance* newInstance()=0;
- virtual const char* getMIMEDescription() const=0;
- virtual const char* getPluginNameString() const=0;
- virtual const char* getPluginDescriptionString() const=0;
-
- virtual void* getJavaClass();
- virtual void unuseJavaClass();
- void* getJavaEnv() const;
-
-protected:
- TQNPlugin();
-};
-
-
-#endif // TQNP_H
diff --git a/extensions/nsplugin/src/tqnp.pro b/extensions/nsplugin/src/tqnp.pro
deleted file mode 100644
index e2d3047cf..000000000
--- a/extensions/nsplugin/src/tqnp.pro
+++ /dev/null
@@ -1,14 +0,0 @@
-TEMPLATE = lib
-TARGET = tqnp
-
-CONFIG -= dll
-CONFIG += qt x11 release staticlib
-DESTDIR = ../../../lib
-VERSION = 0.4
-
-SOURCES = tqnp.cpp
-unix:HEADERS += tqnp.h
-win32:HEADERS = ../../../include/tqnp.h
-win32:LIBS += -lqtmain
-MOC_DIR = .
-DESTINCDIR = ../../../include