/**************************************************************************** ** ** 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. Use the ActiveQt Framework to develop plugins for these browsers. \section1 Information The Netscape Plugin Extension consists of the follow classes: \list \i \l QNPlugin \i \l QNPInstance \i \l QNPWidget \i \l QNPStream \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 qnplugin.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 */