<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/espenr/tmp/qt - 3.3.8 - espenr - 2499/qt - x11 - free - 3.3.8/extensions/nsplugin/doc/index.doc:14 -->
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >
< title > TQt Netscape Plugin Extension< / title >
< style type = "text/css" > < ! - -
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
-->< / style >
< / head >
< body >
< table border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
< tr bgcolor = "#E5E5E5" >
< td valign = center >
< a href = "index.html" >
< font color = "#004faf" > Home< / font > < / a >
| < a href = "classes.html" >
< font color = "#004faf" > All Classes< / font > < / a >
| < a href = "mainclasses.html" >
< font color = "#004faf" > Main Classes< / font > < / a >
| < a href = "annotated.html" >
< font color = "#004faf" > Annotated< / font > < / a >
| < a href = "groups.html" >
< font color = "#004faf" > Grouped Classes< / font > < / a >
| < a href = "functions.html" >
< font color = "#004faf" > Functions< / font > < / a >
< / td >
< td align = "right" valign = "center" > < img src = "logo32.png" align = "right" width = "64" height = "32" border = "0" > < / td > < / tr > < / table > < h1 align = center > TQt Netscape Plugin Extension< / h1 >
< p > <!-- index Netscape --> < a name = "Netscape" > < / a >
< p > 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. Use
the < a href = "activentqt.html#ActiveTQt" > ActiveTQt< / a > Framework to develop plugins for these browsers.
< p > < h2 > Information
< / h2 >
< a name = "1" > < / a > < p > The Netscape Plugin Extension consists of the follow classes:
< ul >
< li > < a href = "qnplugin.html" > TQNPlugin< / a >
< li > < a href = "qnpinstance.html" > TQNPInstance< / a >
< li > < a href = "qnpwidget.html" > TQNPWidget< / a >
< li > < a href = "qnpstream.html" > TQNPStream< / a >
< / ul >
< p > < h2 > How-to
< / h2 >
< a name = "2" > < / a > < p > < ol type = 1 >
< li > Download the
< a href = "http://home.netscape.com/comprod/development_partners/plugin_api/index.html" > Plugin SDK from Netscape< / a > , and copy the following files from there to
< tt > $QTDIR/extensions/nsplugin/src< / tt >
< ul >
< li > < tt > common/npwin.cpp< / tt >
< li > < tt > common/npunix.c< / tt >
< li > < tt > include/npapi.h< / tt >
< li > < tt > include/npupp.h< / tt >
< li > < tt > include/jri.h< / tt >
< li > < tt > include/jri_md.h< / tt >
< li > < tt > include/jritypes.h< / tt >
< / ul >
< li > Build the Netscape Plugin extension library, found in the
< tt > extensions/nsplugin/src< / tt > directory of your TQt distribution.
This produces a static library to be linked with your plugin code.
< li > Read the < a href = "qnplugin.html" > plugin class documentation< / a > , and
examine the < a href = "nsplugin-examples.html" > example plugins< / a > .
< li > Do most of your development as a stand-alone TQt application - debugging
Netscape Plugins is cumbersome. You may want to use < tt > signal(2)< / tt >
in your plugin to enable core-dumps if your browser disables them.
< li > Note the platform-specific build steps below.
< li > Read about the raw plugin interface
< a href = "http://developer.netscape.com/docs/manuals/communicator/plugin/index.htm" > in Netscape's handbook.< / a >
< li > If files viewed by a plugin are provided by an HTTP server
(using a < a href = "http://..." > http://...< / a > URL) then
the server must be configured to send the correct MIME type
for the file, e.g. by editing Apache's < tt > mime.types< / tt > file.
If the files are viewed via a < a href = "file://..." > //...< / a >
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.
< / ol >
< p > < h3 > Building under X11
< / h3 >
< a name = "2-1" > < / a > < p > < ul >
< li > The Makefiles in the examples are appropriate for UNIX/X11.
< li > The user must install the resulting Shared Object in the Plugins
directory of the browser.
< / ul >
< p > < h3 > Building under Windows
< / h3 >
< a name = "2-2" > < / a > < p > < ul >
< li > For Netscape plugins to work, TQt needs to be in the system DLL
path or be compiled into the plugin as a static library.
< li > Plugins must be named < tt > np< / tt > < em > name< / em > < tt > .dll< / tt > ,
or the browser will ignore them.
< li > The link step must include:
< ul >
< li > < tt > /def:< / tt > < em > name< / em > < tt > .def< / tt >
< li > < tt > /dll< / tt >
< li > a compiled resource file defining the
file/MIME types accepted by the plugin.
< / ul >
< li > The user must install the resulting DLL in the Plugins directory
of the browser.
< / ul >
< p > < h2 > Known Bugs and Limitations
< / h2 >
< a name = "3" > < / a > < p > The TQt-based LiveConnect Plugin binding code has a number of bugs and
limitations, but is sufficiently stable for many production
applications.
< p > < ul >
< li > Keyboard input only works in secondary windows (e.g. dialogs created by the plugin).
< li > You should not expect modality between the plugin and the browser to work.
< li > Netscape 4.78 on Unix/X11 tends to terminate with a bus error.
< li > Opaque resize behaviour is erratic due to browser behavior.
< / ul >
< p >
<!-- eof -->
< p > < address > < hr > < div align = center >
< table width = 100% cellspacing = 0 border = 0 > < tr >
< td > Copyright © 2007
< a href = "troll.html" > Trolltech< / a > < td align = center > < a href = "trademarks.html" > Trademarks< / a >
< td align = right > < div align = right > TQt 3.3.8< / div >
< / table > < / div > < / address > < / body >
< / html >