Remove obsolete Netscape plugin and its classes

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/193/head
Michele Calgaro 2 months ago
parent 81288cfcb6
commit 6964feed83
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -250,10 +250,6 @@ body { background: #ffffff; color: black; }
<tr bgcolor=#f0f0f0><td><b><a href="tqmovie.html">TQMovie</a></b><td>Incremental loading of animations or images, signalling as it progresses
<tr bgcolor=#f0f0f0><td><b><a href="tqmutex.html">TQMutex</a></b><td>Access serialization between threads
<tr bgcolor=#f0f0f0><td><b><a href="tqmutexlocker.html">TQMutexLocker</a></b><td>Simplifies locking and unlocking TQMutexes
<tr bgcolor=#f0f0f0><td><b><a href="tqnpinstance.html">TQNPInstance</a></b><td>TQObject that is a web browser plugin
<tr bgcolor=#f0f0f0><td><b><a href="tqnpstream.html">TQNPStream</a></b><td>Stream of data provided to a TQNPInstance by the browser
<tr bgcolor=#f0f0f0><td><b><a href="tqnpwidget.html">TQNPWidget</a></b><td>TQWidget that is a web browser plugin window
<tr bgcolor=#f0f0f0><td><b><a href="tqnplugin.html">TQNPlugin</a></b><td>The main factory for plugin objects
<tr bgcolor=#f0f0f0><td><b><a href="tqnetworkoperation.html">TQNetworkOperation</a></b><td>Common operations for network protocols
<tr bgcolor=#f0f0f0><td><b><a href="tqnetworkprotocol.html">TQNetworkProtocol</a></b><td>Common API for network protocols
<tr bgcolor=#f0f0f0><td><b><a href="tqobject.html">TQObject</a></b><td>The base class of all TQt objects

@ -778,8 +778,8 @@ classes, see <a href="mainclasses.html">TQt's Main Classes</a>.
<td align="right"><b>H</b>
<td><a href="tqhbox.html">TQHBox</a>
<td align="right">
<td><a href="tqnpinstance.html">TQNPInstance</a>
*<td align="right">
<td align="right">
<td align="right">
<td><a href="tqsqlselectcursor.html">TQSqlSelectCursor</a>
<td align="right">
<td><a href="tqxmlcontenthandler.html">TQXmlContentHandler</a>
@ -789,8 +789,8 @@ classes, see <a href="mainclasses.html">TQt's Main Classes</a>.
<td align="right">
<td><a href="tqhboxlayout.html">TQHBoxLayout</a>
<td align="right">
<td><a href="tqnplugin.html">TQNPlugin</a>
*<td align="right">
<td align="right">
<td align="right">
<td><a href="tqstatusbar.html">TQStatusBar</a>
<td align="right">
<td><a href="tqxmldeclhandler.html">TQXmlDeclHandler</a>
@ -800,8 +800,8 @@ classes, see <a href="mainclasses.html">TQt's Main Classes</a>.
<td align="right">
<td><a href="tqhbuttongroup.html">TQHButtonGroup</a>
<td align="right">
<td><a href="tqnpstream.html">TQNPStream</a>
*<td align="right">
<td align="right">
<td align="right">
<td><a href="tqstoreddrag.html">TQStoredDrag</a>
<td align="right">
<td><a href="tqxmldefaulthandler.html">TQXmlDefaultHandler</a>
@ -811,8 +811,8 @@ classes, see <a href="mainclasses.html">TQt's Main Classes</a>.
<td align="right">
<td><a href="tqheader.html">TQHeader</a>
<td align="right">
<td><a href="tqnpwidget.html">TQNPWidget</a>
*<td align="right">
<td align="right">
<td align="right">
<td><a href="tqstrilist.html">TQStrIList</a>
<td align="right">
<td><a href="tqxmldtdhandler.html">TQXmlDTDHandler</a>
@ -961,7 +961,7 @@ classes, see <a href="mainclasses.html">TQt's Main Classes</a>.
<td align="right">
</table>
<p> * Extension classes of <a href="motif-extension.html#Motif">Motif</a> and <a href="netscape-plugin.html#Netscape">Netscape</a>.
<p> * Extension classes of <a href="motif-extension.html#Motif">Motif</a></a>.
<!-- eof -->

@ -62,7 +62,6 @@ in a line-by-line coverage please refer to the tutorials
</h2>
<a name="3"></a><p> <ul>
<li> <a href="motif-examples.html">TQMotif support extension</a>
<li> <a href="nsplugin-examples.html">TQt-based plugins for web browsers</a>
</ul>
<p> <h2> Miscellaneous Examples
</h2>

@ -74,8 +74,7 @@ abort:
<a href="tqpalette.html#active">TQPalette</a><li>activeModalWidget:
<a href="ntqapplication.html#activeModalWidget">TQApplication</a><li>activePopupWidget:
<a href="ntqapplication.html#activePopupWidget">TQApplication</a><li>activeWindow:
<a href="ntqapplication.html#activeWindow">TQApplication</a> <a href="tqworkspace.html#activeWindow">TQWorkspace</a><li>actual:
<a href="tqnplugin.html#actual">TQNPlugin</a><li>add:
<a href="ntqapplication.html#activeWindow">TQApplication</a> <a href="tqworkspace.html#activeWindow">TQWorkspace</a><li>add:
<a href="tqactiongroup.html#add">TQActionGroup</a> <a href="tqgridlayout.html#add">TQGridLayout</a> <a href="tqlayout.html#add">TQLayout</a> <a href="tqobjectcleanuphandler.html#add">TQObjectCleanupHandler</a> <a href="tqtooltip.html#add">TQToolTip</a> <a href="tqwhatsthis.html#add">TQWhatsThis</a><li>addArgument:
<a href="tqprocess.html#addArgument">TQProcess</a><li>addBindValue:
<a href="tqsqlquery.html#addBindValue">TQSqlQuery</a><li>addChild:
@ -163,11 +162,10 @@ abort:
<a href="tqdockwindow.html#area">TQDockWindow</a><li>areaPoints:
<a href="tqcanvaspolygon.html#areaPoints">TQCanvasPolygon</a> <a href="tqcanvaspolygonalitem.html#areaPoints">TQCanvasPolygonalItem</a><li>areaPointsAdvanced:
<a href="tqcanvaspolygonalitem.html#areaPointsAdvanced">TQCanvasPolygonalItem</a><li>arg:
<a href="tqnpinstance.html#arg">TQNPInstance</a> <a href="tqnetworkoperation.html#arg">TQNetworkOperation</a> <a href="tqstring.html#arg">TQString</a><li>argc:
<a href="ntqapplication.html#argc">TQApplication</a> <a href="tqnpinstance.html#argc">TQNPInstance</a><li>argn:
<a href="tqnpinstance.html#argn">TQNPInstance</a><li>arguments:
<a href="tqnetworkoperation.html#arg">TQNetworkOperation</a> <a href="tqstring.html#arg">TQString</a><li>argc:
<a href="ntqapplication.html#argc">TQApplication</a><li>arguments:
<a href="tqprocess.html#arguments">TQProcess</a><li>argv:
<a href="ntqapplication.html#argv">TQApplication</a> <a href="tqnpinstance.html#argv">TQNPInstance</a><li>arrangeItemsInGrid:
<a href="ntqapplication.html#argv">TQApplication</a><li>arrangeItemsInGrid:
<a href="tqiconview.html#arrangeItemsInGrid">TQIconView</a><li>arrangement:
<a href="tqiconview.html#arrangement">TQIconView</a><li>arrowType:
<a href="tqstyleoption.html#arrowType">TQStyleOption</a><li>asBitArray:
@ -467,8 +465,7 @@ c:
<a href="tqtranslatormessage.html#commonPrefix">TQTranslatorMessage</a><li>communication:
<a href="tqprocess.html#communication">TQProcess</a><li>compare:
<a href="tqiconviewitem.html#compare">TQIconViewItem</a> <a href="tqlistviewitem.html#compare">TQListViewItem</a> <a href="tqstring.html#compare">TQString</a><li>compareItems:
<a href="tqptrlist.html#compareItems">TQPtrList</a> <a href="tqptrvector.html#compareItems">TQPtrVector</a><li>complete:
<a href="tqnpstream.html#complete">TQNPStream</a><li>compose:
<a href="tqptrlist.html#compareItems">TQPtrList</a> <a href="tqptrvector.html#compareItems">TQPtrVector</a><li>compose:
<a href="tqstring.html#compose">TQString</a><li>confirmCancel:
<a href="tqdatabrowser.html#confirmCancel">TQDataBrowser</a> <a href="tqdatatable.html#confirmCancel">TQDataTable</a><li>confirmCancels:
<a href="tqdatabrowser.html#confirmCancels">TQDataBrowser</a> <a href="tqdatatable.html#confirmCancels">TQDataTable</a><li>confirmDelete:
@ -544,7 +541,7 @@ c:
<a href="tqmacmime.html#countFlavors">TQMacMime</a><li>country:
<a href="tqlocale.html#country">TQLocale</a><li>countryToString:
<a href="tqlocale.html#countryToString">TQLocale</a><li>create:
<a href="tqglcontext.html#create">TQGLContext</a> <a href="tqimage.html#create">TQImage</a> <a href="tqnplugin.html#create">TQNPlugin</a> <a href="tqsqldriverplugin.html#create">TQSqlDriverPlugin</a> <a href="tqstylefactory.html#create">TQStyleFactory</a> <a href="tqstyleplugin.html#create">TQStylePlugin</a> <a href="tqwidget.html#create">TQWidget</a> <a href="tqwidgetfactory.html#create">TQWidgetFactory</a> <a href="tqwidgetplugin.html#create">TQWidgetPlugin</a><li>createAlphaMask:
<a href="tqglcontext.html#create">TQGLContext</a> <a href="tqimage.html#create">TQImage</a> <a href="tqsqldriverplugin.html#create">TQSqlDriverPlugin</a> <a href="tqstylefactory.html#create">TQStyleFactory</a> <a href="tqstyleplugin.html#create">TQStylePlugin</a> <a href="tqwidget.html#create">TQWidget</a> <a href="tqwidgetfactory.html#create">TQWidgetFactory</a> <a href="tqwidgetplugin.html#create">TQWidgetPlugin</a><li>createAlphaMask:
<a href="tqimage.html#createAlphaMask">TQImage</a><li>createAttribute:
<a href="tqdomdocument.html#createAttribute">TQDomDocument</a><li>createAttributeNS:
<a href="tqdomdocument.html#createAttributeNS">TQDomDocument</a><li>createCDATASection:
@ -837,7 +834,7 @@ echoMode:
<a href="tqfile.html#encodeName">TQFile</a><li>encodedData:
<a href="tqdropevent.html#encodedData">TQDropEvent</a> <a href="tqicondrag.html#encodedData">TQIconDrag</a> <a href="tqmimesource.html#encodedData">TQMimeSource</a> <a href="tqstoreddrag.html#encodedData">TQStoredDrag</a><li>encodedPathAndQuery:
<a href="tqurl.html#encodedPathAndQuery">TQUrl</a><li>end:
<a href="tqimageconsumer.html#end">TQImageConsumer</a> <a href="tqlineedit.html#end">TQLineEdit</a> <a href="tqmap.html#end">TQMap</a> <a href="tqmemarray.html#end">TQMemArray</a> <a href="tqmultilineedit.html#end">TQMultiLineEdit</a> <a href="tqnpstream.html#end">TQNPStream</a> <a href="tqpainter.html#end">TQPainter</a> <a href="tqvaluelist.html#end">TQValueList</a> <a href="tqvaluevector.html#end">TQValueVector</a><li>endCDATA:
<a href="tqimageconsumer.html#end">TQImageConsumer</a> <a href="tqlineedit.html#end">TQLineEdit</a> <a href="tqmap.html#end">TQMap</a> <a href="tqmemarray.html#end">TQMemArray</a> <a href="tqmultilineedit.html#end">TQMultiLineEdit</a> <a href="tqpainter.html#end">TQPainter</a> <a href="tqvaluelist.html#end">TQValueList</a> <a href="tqvaluevector.html#end">TQValueVector</a><li>endCDATA:
<a href="tqxmllexicalhandler.html#endCDATA">TQXmlLexicalHandler</a><li>endDTD:
<a href="tqxmllexicalhandler.html#endDTD">TQXmlLexicalHandler</a><li>endDocument:
<a href="tqxmlcontenthandler.html#endDocument">TQXmlContentHandler</a><li>endEdit:
@ -856,8 +853,7 @@ echoMode:
<a href="tqiconview.html#ensureItemVisible">TQIconView</a> <a href="tqlistview.html#ensureItemVisible">TQListView</a><li>ensureVisible:
<a href="tqscrollview.html#ensureVisible">TQScrollView</a><li>enterAllocContext:
<a href="tqcolor.html#enterAllocContext">TQColor</a><li>enterEvent:
<a href="tqwidget.html#enterEvent">TQWidget</a><li>enterInstance:
<a href="tqnpwidget.html#enterInstance">TQNPWidget</a><li>enterLoop:
<a href="tqwidget.html#enterEvent">TQWidget</a><li>enterLoop:
<a href="tqeventloop.html#enterLoop">TQEventLoop</a><li>enterWhatsThisMode:
<a href="tqwhatsthis.html#enterWhatsThisMode">TQWhatsThis</a><li>entities:
<a href="tqdomdocumenttype.html#entities">TQDomDocumentType</a><li>entityResolver:
@ -1025,29 +1021,20 @@ gamma:
<a href="tqfontdialog.html#getFont">TQFontDialog</a><li>getHsv:
<a href="tqcolor.html#getHsv">TQColor</a><li>getInteger:
<a href="tqinputdialog.html#getInteger">TQInputDialog</a><li>getItem:
<a href="tqinputdialog.html#getItem">TQInputDialog</a><li>getJavaClass:
<a href="tqnplugin.html#getJavaClass">TQNPlugin</a><li>getJavaEnv:
<a href="tqnplugin.html#getJavaEnv">TQNPlugin</a><li>getJavaPeer:
<a href="tqnpinstance.html#getJavaPeer">TQNPInstance</a><li>getLast:
<a href="tqinputdialog.html#getItem">TQInputDialog</a><li>getLast:
<a href="tqptrlist.html#getLast">TQPtrList</a><li>getLocation:
<a href="tqmainwindow.html#getLocation">TQMainWindow</a><li>getMIMEDescription:
<a href="tqnplugin.html#getMIMEDescription">TQNPlugin</a><li>getMarkedRegion:
<a href="tqmainwindow.html#getLocation">TQMainWindow</a><li>getMarkedRegion:
<a href="tqmultilineedit.html#getMarkedRegion">TQMultiLineEdit</a><li>getNetworkProtocol:
<a href="tqnetworkprotocol.html#getNetworkProtocol">TQNetworkProtocol</a> <a href="tqurloperator.html#getNetworkProtocol">TQUrlOperator</a><li>getOpenFileName:
<a href="tqfiledialog.html#getOpenFileName">TQFileDialog</a><li>getOpenFileNames:
<a href="tqfiledialog.html#getOpenFileNames">TQFileDialog</a><li>getPluginDescriptionString:
<a href="tqnplugin.html#getPluginDescriptionString">TQNPlugin</a><li>getPluginNameString:
<a href="tqnplugin.html#getPluginNameString">TQNPlugin</a><li>getRange:
<a href="tqfiledialog.html#getOpenFileNames">TQFileDialog</a><li>getRange:
<a href="tqsplitter.html#getRange">TQSplitter</a><li>getRgb:
<a href="tqcolor.html#getRgb">TQColor</a><li>getRgba:
<a href="tqcolordialog.html#getRgba">TQColorDialog</a><li>getSaveFileName:
<a href="tqfiledialog.html#getSaveFileName">TQFileDialog</a><li>getSelection:
<a href="tqtextedit.html#getSelection">TQTextEdit</a><li>getText:
<a href="tqinputdialog.html#getText">TQInputDialog</a><li>getURL:
<a href="tqnpinstance.html#getURL">TQNPInstance</a><li>getURLNotify:
<a href="tqnpinstance.html#getURLNotify">TQNPInstance</a><li>getValidRect:
<a href="tqmovie.html#getValidRect">TQMovie</a><li>getVersionInfo:
<a href="tqnplugin.html#getVersionInfo">TQNPlugin</a><li>getWFlags:
<a href="tqinputdialog.html#getText">TQInputDialog</a><li>getValidRect:
<a href="tqmovie.html#getValidRect">TQMovie</a><li>getWFlags:
<a href="tqwidget.html#getWFlags">TQWidget</a><li>getch:
<a href="tqfile.html#getch">TQFile</a> <a href="tqiodevice.html#getch">TQIODevice</a> <a href="tqsocket.html#getch">TQSocket</a><li>glDraw:
<a href="tqglwidget.html#glDraw">TQGLWidget</a><li>glInit:
@ -1245,8 +1232,7 @@ icon:
<a href="tqimageformatplugin.html#installIOHandler">TQImageFormatPlugin</a><li>installIconFactory:
<a href="tqiconset.html#installIconFactory">TQIconSet</a><li>installPropertyMap:
<a href="tqdatatable.html#installPropertyMap">TQDataTable</a> <a href="tqsqlform.html#installPropertyMap">TQSqlForm</a><li>installTranslator:
<a href="ntqapplication.html#installTranslator">TQApplication</a><li>instance:
<a href="tqnpstream.html#instance">TQNPStream</a> <a href="tqnpwidget.html#instance">TQNPWidget</a><li>intValue:
<a href="ntqapplication.html#installTranslator">TQApplication</a><li>intValue:
<a href="tqlcdnumber.html#intValue">TQLCDNumber</a><li>internalEntityDecl:
<a href="tqxmldeclhandler.html#internalEntityDecl">TQXmlDeclHandler</a><li>internalSubset:
<a href="tqdomdocumenttype.html#internalSubset">TQDomDocumentType</a><li>interpretText:
@ -1480,7 +1466,7 @@ label:
<a href="tqdomnode.html#lastChild">TQDomNode</a><li>lastError:
<a href="tqsqldatabase.html#lastError">TQSqlDatabase</a> <a href="tqsqldriver.html#lastError">TQSqlDriver</a> <a href="tqsqlquery.html#lastError">TQSqlQuery</a> <a href="tqsqlresult.html#lastError">TQSqlResult</a><li>lastItem:
<a href="tqiconview.html#lastItem">TQIconView</a> <a href="tqlistview.html#lastItem">TQListView</a><li>lastModified:
<a href="tqfileinfo.html#lastModified">TQFileInfo</a> <a href="tqnpstream.html#lastModified">TQNPStream</a> <a href="tqurlinfo.html#lastModified">TQUrlInfo</a><li>lastQuery:
<a href="tqfileinfo.html#lastModified">TQFileInfo</a> <a href="tqurlinfo.html#lastModified">TQUrlInfo</a><li>lastQuery:
<a href="tqsqlquery.html#lastQuery">TQSqlQuery</a> <a href="tqsqlresult.html#lastQuery">TQSqlResult</a><li>lastRead:
<a href="tqfileinfo.html#lastRead">TQFileInfo</a> <a href="tqurlinfo.html#lastRead">TQUrlInfo</a><li>lastRecordAvailable:
<a href="tqdatabrowser.html#lastRecordAvailable">TQDataBrowser</a><li>lastResortFamily:
@ -1498,8 +1484,7 @@ label:
<a href="tqfontmetrics.html#leading">TQFontMetrics</a><li>leapYear:
<a href="tqdate.html#leapYear">TQDate</a><li>leaveAllocContext:
<a href="tqcolor.html#leaveAllocContext">TQColor</a><li>leaveEvent:
<a href="tqwidget.html#leaveEvent">TQWidget</a><li>leaveInstance:
<a href="tqnpwidget.html#leaveInstance">TQNPWidget</a><li>leaveWhatsThisMode:
<a href="tqwidget.html#leaveEvent">TQWidget</a><li>leaveWhatsThisMode:
<a href="tqwhatsthis.html#leaveWhatsThisMode">TQWhatsThis</a><li>left:
<a href="tqcstring.html#left">TQCString</a> <a href="tqrect.html#left">TQRect</a> <a href="tqstring.html#left">TQString</a><li>leftBearing:
<a href="tqfontmetrics.html#leftBearing">TQFontMetrics</a><li>leftCol:
@ -1666,7 +1651,7 @@ m11:
<a href="tqchar.html#mirroredChar">TQChar</a><li>mixedColor:
<a href="tqplatinumstyle.html#mixedColor">TQPlatinumStyle</a><li>mkdir:
<a href="tqdir.html#mkdir">TQDir</a> <a href="tqftp.html#mkdir">TQFtp</a> <a href="tqurloperator.html#mkdir">TQUrlOperator</a><li>mode:
<a href="tqfiledialog.html#mode">TQFileDialog</a> <a href="tqiodevice.html#mode">TQIODevice</a> <a href="tqlcdnumber.html#mode">TQLCDNumber</a> <a href="tqnpinstance.html#mode">TQNPInstance</a> <a href="tqsqlcursor.html#mode">TQSqlCursor</a><li>modificationChanged:
<a href="tqfiledialog.html#mode">TQFileDialog</a> <a href="tqiodevice.html#mode">TQIODevice</a> <a href="tqlcdnumber.html#mode">TQLCDNumber</a> <a href="tqsqlcursor.html#mode">TQSqlCursor</a><li>modificationChanged:
<a href="tqtextedit.html#modificationChanged">TQTextEdit</a><li>month:
<a href="tqdate.html#month">TQDate</a><li>motifWidget:
<a href="tqmotifwidget.html#motifWidget">TQMotifWidget</a><li>mouseButtonClicked:
@ -1716,14 +1701,10 @@ name:
<a href="tqaccessibleinterface.html#navigate">TQAccessibleInterface</a><li>newChild:
<a href="tqnetworkprotocol.html#newChild">TQNetworkProtocol</a><li>newChildren:
<a href="tqnetworkprotocol.html#newChildren">TQNetworkProtocol</a> <a href="tqurloperator.html#newChildren">TQUrlOperator</a><li>newConnection:
<a href="tqserversocket.html#newConnection">TQServerSocket</a><li>newInstance:
<a href="tqnplugin.html#newInstance">TQNPlugin</a><li>newItem:
<a href="tqserversocket.html#newConnection">TQServerSocket</a><li>newItem:
<a href="tqptrcollection.html#newItem">TQPtrCollection</a><li>newLine:
<a href="tqdockwindow.html#newLine">TQDockWindow</a> <a href="tqmultilineedit.html#newLine">TQMultiLineEdit</a><li>newPage:
<a href="tqprinter.html#newPage">TQPrinter</a><li>newStream:
<a href="tqnpinstance.html#newStream">TQNPInstance</a><li>newStreamCreated:
<a href="tqnpinstance.html#newStreamCreated">TQNPInstance</a><li>newWindow:
<a href="tqnpinstance.html#newWindow">TQNPInstance</a><li>next:
<a href="tqprinter.html#newPage">TQPrinter</a><li>next:
<a href="tqdatabrowser.html#next">TQDataBrowser</a> <a href="tqfocusdata.html#next">TQFocusData</a> <a href="tqglayoutiterator.html#next">TQGLayoutIterator</a> <a href="tqlistboxitem.html#next">TQListBoxItem</a> <a href="tqptrlist.html#next">TQPtrList</a> <a href="tqsqlquery.html#next">TQSqlQuery</a> <a href="tqwizard.html#next">TQWizard</a> <a href="tqxmlinputsource.html#next">TQXmlInputSource</a><li>nextButton:
<a href="tqwizard.html#nextButton">TQWizard</a><li>nextItem:
<a href="tqiconviewitem.html#nextItem">TQIconViewItem</a><li>nextLine:
@ -1743,8 +1724,7 @@ name:
<a href="tqdial.html#notchSize">TQDial</a><li>notchTarget:
<a href="tqdial.html#notchTarget">TQDial</a><li>notchesVisible:
<a href="tqdial.html#notchesVisible">TQDial</a><li>notify:
<a href="ntqapplication.html#notify">TQApplication</a><li>notifyURL:
<a href="tqnpinstance.html#notifyURL">TQNPInstance</a><li>nrefs:
<a href="ntqapplication.html#notify">TQApplication</a><li>nrefs:
<a href="tqmemarray.html#nrefs">TQMemArray</a><li>nullText:
<a href="tqdatatable.html#nullText">TQDataTable</a> <a href="tqsqldriver.html#nullText">TQSqlDriver</a><li>numBitPlanes:
<a href="tqcolor.html#numBitPlanes">TQColor</a><li>numBytes:
@ -1773,8 +1753,7 @@ object:
<a href="tqcanvaspixmap.html#offsetX">TQCanvasPixmap</a><li>offsetY:
<a href="tqcanvaspixmap.html#offsetY">TQCanvasPixmap</a><li>ok:
<a href="tqserversocket.html#ok">TQServerSocket</a><li>okRename:
<a href="tqlistviewitem.html#okRename">TQListViewItem</a><li>okay:
<a href="tqnpstream.html#okay">TQNPStream</a><li>oldPos:
<a href="tqlistviewitem.html#okRename">TQListViewItem</a><li>oldPos:
<a href="tqmoveevent.html#oldPos">TQMoveEvent</a><li>oldSize:
<a href="tqresizeevent.html#oldSize">TQResizeEvent</a><li>onCanvas:
<a href="tqcanvas.html#onCanvas">TQCanvas</a><li>onItem:
@ -1943,8 +1922,7 @@ packImage:
<a href="tqsqlrecord.html#position">TQSqlRecord</a><li>positionFromValue:
<a href="tqrangecontrol.html#positionFromValue">TQRangeControl</a><li>post:
<a href="tqhttp.html#post">TQHttp</a><li>postEvent:
<a href="ntqapplication.html#postEvent">TQApplication</a><li>postURL:
<a href="tqnpinstance.html#postURL">TQNPInstance</a><li>precision:
<a href="ntqapplication.html#postEvent">TQApplication</a><li>precision:
<a href="tqsqlfieldinfo.html#precision">TQSqlFieldInfo</a> <a href="tqtextstream.html#precision">TQTextStream</a><li>prefix:
<a href="tqdomnode.html#prefix">TQDomNode</a> <a href="tqspinbox.html#prefix">TQSpinBox</a> <a href="tqxmlnamespacesupport.html#prefix">TQXmlNamespaceSupport</a><li>prefixes:
<a href="tqxmlnamespacesupport.html#prefixes">TQXmlNamespaceSupport</a><li>prepare:
@ -1965,9 +1943,7 @@ packImage:
<a href="tqdesktopwidget.html#primaryScreen">TQDesktopWidget</a><li>primeDelete:
<a href="tqdatabrowser.html#primeDelete">TQDataBrowser</a> <a href="tqdatatable.html#primeDelete">TQDataTable</a> <a href="tqsqlcursor.html#primeDelete">TQSqlCursor</a><li>primeInsert:
<a href="tqdatabrowser.html#primeInsert">TQDataBrowser</a> <a href="tqdatatable.html#primeInsert">TQDataTable</a> <a href="tqsqlcursor.html#primeInsert">TQSqlCursor</a><li>primeUpdate:
<a href="tqdatabrowser.html#primeUpdate">TQDataBrowser</a> <a href="tqdatatable.html#primeUpdate">TQDataTable</a> <a href="tqsqlcursor.html#primeUpdate">TQSqlCursor</a><li>print:
<a href="tqnpinstance.html#print">TQNPInstance</a><li>printFullPage:
<a href="tqnpinstance.html#printFullPage">TQNPInstance</a><li>printProgram:
<a href="tqdatabrowser.html#primeUpdate">TQDataBrowser</a> <a href="tqdatatable.html#primeUpdate">TQDataTable</a> <a href="tqsqlcursor.html#primeUpdate">TQSqlCursor</a><li>printProgram:
<a href="tqprinter.html#printProgram">TQPrinter</a><li>printRange:
<a href="tqprinter.html#printRange">TQPrinter</a><li>printerName:
<a href="tqprinter.html#printerName">TQPrinter</a><li>printerSelectionOption:
@ -2177,8 +2153,7 @@ rBottom:
<a href="tqdomcharacterdata.html#replaceData">TQDomCharacterData</a><li>request:
<a href="tqhttp.html#request">TQHttp</a><li>requestFinished:
<a href="tqhttp.html#requestFinished">TQHttp</a><li>requestPhase2:
<a href="tqsessionmanager.html#requestPhase2">TQSessionManager</a><li>requestRead:
<a href="tqnpstream.html#requestRead">TQNPStream</a><li>requestStarted:
<a href="tqsessionmanager.html#requestPhase2">TQSessionManager</a><li>requestStarted:
<a href="tqhttp.html#requestStarted">TQHttp</a><li>requestedFormat:
<a href="tqglcontext.html#requestedFormat">TQGLContext</a><li>rereadDir:
<a href="tqfiledialog.html#rereadDir">TQFileDialog</a><li>reserve:
@ -2284,8 +2259,7 @@ sRect:
<a href="tqheader.html#sectionPos">TQHeader</a><li>sectionRect:
<a href="tqheader.html#sectionRect">TQHeader</a><li>sectionSize:
<a href="tqheader.html#sectionSize">TQHeader</a><li>seek:
<a href="tqdatabrowser.html#seek">TQDataBrowser</a> <a href="tqsqlquery.html#seek">TQSqlQuery</a><li>seekable:
<a href="tqnpstream.html#seekable">TQNPStream</a><li>segmentStyle:
<a href="tqdatabrowser.html#seek">TQDataBrowser</a> <a href="tqsqlquery.html#seek">TQSqlQuery</a><li>segmentStyle:
<a href="tqlcdnumber.html#segmentStyle">TQLCDNumber</a><li>select:
<a href="tqsqlcursor.html#select">TQSqlCursor</a><li>selectAll:
<a href="tqfiledialog.html#selectAll">TQFileDialog</a> <a href="tqiconview.html#selectAll">TQIconView</a> <a href="tqlineedit.html#selectAll">TQLineEdit</a> <a href="tqlistbox.html#selectAll">TQListBox</a> <a href="tqlistview.html#selectAll">TQListView</a> <a href="tqspinbox.html#selectAll">TQSpinBox</a> <a href="tqtextedit.html#selectAll">TQTextEdit</a><li>selectCells:
@ -3125,7 +3099,7 @@ sRect:
<a href="tqchecklistitem.html#stateChange">TQCheckListItem</a><li>stateChanged:
<a href="tqbutton.html#stateChanged">TQButton</a> <a href="tqbutton.html#stateChanged">TQCheckBox</a> <a href="tqftp.html#stateChanged">TQFtp</a> <a href="tqhttp.html#stateChanged">TQHttp</a> <a href="tqbutton.html#stateChanged">TQPushButton</a> <a href="tqbutton.html#stateChanged">TQRadioButton</a><li>statistics:
<a href="tqasciicache.html#statistics">TQAsciiCache</a> <a href="tqasciidict.html#statistics">TQAsciiDict</a> <a href="tqcache.html#statistics">TQCache</a> <a href="tqdict.html#statistics">TQDict</a> <a href="tqintcache.html#statistics">TQIntCache</a> <a href="tqintdict.html#statistics">TQIntDict</a> <a href="tqptrdict.html#statistics">TQPtrDict</a><li>status:
<a href="tqiodevice.html#status">TQIODevice</a> <a href="tqimageio.html#status">TQImageIO</a> <a href="tqnpinstance.html#status">TQNPInstance</a><li>statusBar:
<a href="tqiodevice.html#status">TQIODevice</a> <a href="tqimageio.html#status">TQImageIO</a><li>statusBar:
<a href="tqmainwindow.html#statusBar">TQMainWindow</a><li>statusCode:
<a href="tqhttpresponseheader.html#statusCode">TQHttpResponseHeader</a><li>statusTip:
<a href="tqaction.html#statusTip">TQAction</a><li>stencil:
@ -3137,9 +3111,7 @@ sRect:
<a href="tqmovie.html#steps">TQMovie</a><li>stereo:
<a href="tqglformat.html#stereo">TQGLFormat</a><li>stop:
<a href="tqnetworkprotocol.html#stop">TQNetworkProtocol</a> <a href="tqsound.html#stop">TQSound</a> <a href="tqtimer.html#stop">TQTimer</a> <a href="tqurloperator.html#stop">TQUrlOperator</a><li>stored:
<a href="tqmetaproperty.html#stored">TQMetaProperty</a><li>streamAsFile:
<a href="tqnpinstance.html#streamAsFile">TQNPInstance</a><li>streamDestroyed:
<a href="tqnpinstance.html#streamDestroyed">TQNPInstance</a><li>stretch:
<a href="tqmetaproperty.html#stored">TQMetaProperty</a><li>stretch:
<a href="tqfont.html#stretch">TQFont</a><li>strikeOut:
<a href="tqfont.html#strikeOut">TQFont</a><li>strikeOutPos:
<a href="tqfontmetrics.html#strikeOutPos">TQFontMetrics</a><li>string:
@ -3344,7 +3316,7 @@ tab:
<a href="ntqapplication.html#tryLock">TQApplication</a> <a href="tqmutex.html#tryLock">TQMutex</a><li>tryTerminate:
<a href="tqprocess.html#tryTerminate">TQProcess</a><li>turnOffChild:
<a href="tqchecklistitem.html#turnOffChild">TQCheckListItem</a><li>type:
<a href="ntqapplication.html#type">TQApplication</a> <a href="tqchecklistitem.html#type">TQCheckListItem</a> <a href="tqevent.html#type">TQEvent</a> <a href="tqmetaproperty.html#type">TQMetaProperty</a> <a href="tqnpstream.html#type">TQNPStream</a> <a href="tqsocketdevice.html#type">TQSocketDevice</a> <a href="tqsocketnotifier.html#type">TQSocketNotifier</a> <a href="tqsqlerror.html#type">TQSqlError</a> <a href="tqsqlfield.html#type">TQSqlField</a> <a href="tqsqlfieldinfo.html#type">TQSqlFieldInfo</a> <a href="tqvariant.html#type">TQVariant</a> <a href="tqxmlattributes.html#type">TQXmlAttributes</a><li>typeID:
<a href="ntqapplication.html#type">TQApplication</a> <a href="tqchecklistitem.html#type">TQCheckListItem</a> <a href="tqevent.html#type">TQEvent</a> <a href="tqmetaproperty.html#type">TQMetaProperty</a> <a href="tqsocketdevice.html#type">TQSocketDevice</a> <a href="tqsocketnotifier.html#type">TQSocketNotifier</a> <a href="tqsqlerror.html#type">TQSqlError</a> <a href="tqsqlfield.html#type">TQSqlField</a> <a href="tqsqlfieldinfo.html#type">TQSqlFieldInfo</a> <a href="tqvariant.html#type">TQVariant</a> <a href="tqxmlattributes.html#type">TQXmlAttributes</a><li>typeID:
<a href="tqsqlfieldinfo.html#typeID">TQSqlFieldInfo</a><li>typeName:
<a href="tqvariant.html#typeName">TQVariant</a><li>typeToName:
<a href="tqvariant.html#typeToName">TQVariant</a><li><a name="u"></a>
@ -3373,8 +3345,7 @@ ucs2:
<a href="tqwidget.html#unsetFont">TQWidget</a><li>unsetPalette:
<a href="tqwidget.html#unsetPalette">TQWidget</a><li>unsetf:
<a href="tqtextstream.html#unsetf">TQTextStream</a><li>unsqueeze:
<a href="tqtranslator.html#unsqueeze">TQTranslator</a><li>unuseJavaClass:
<a href="tqnplugin.html#unuseJavaClass">TQNPlugin</a><li>upRect:
<a href="tqtranslator.html#unsqueeze">TQTranslator</a><li>upRect:
<a href="tqspinbox.html#upRect">TQSpinBox</a><li>update:
<a href="tqcanvas.html#update">TQCanvas</a> <a href="tqcanvasitem.html#update">TQCanvasItem</a> <a href="tqdatabrowser.html#update">TQDataBrowser</a> <a href="tqsqlcursor.html#update">TQSqlCursor</a> <a href="tqwidget.html#update">TQWidget</a><li>updateAccessibility:
<a href="tqaccessible.html#updateAccessibility">TQAccessible</a><li>updateBoundary:
@ -3395,10 +3366,9 @@ ucs2:
<a href="tqxmlattributes.html#uri">TQXmlAttributes</a> <a href="tqxmlnamespacesupport.html#uri">TQXmlNamespaceSupport</a><li>uriToLocalFile:
<a href="tquridrag.html#uriToLocalFile">TQUriDrag</a><li>uriToUnicodeUri:
<a href="tquridrag.html#uriToUnicodeUri">TQUriDrag</a><li>url:
<a href="tqfiledialog.html#url">TQFileDialog</a> <a href="tqnpstream.html#url">TQNPStream</a> <a href="tqnetworkprotocol.html#url">TQNetworkProtocol</a><li>useHighlightColors:
<a href="tqfiledialog.html#url">TQFileDialog</a> <a href="tqnetworkprotocol.html#url">TQNetworkProtocol</a><li>useHighlightColors:
<a href="tqmotifstyle.html#useHighlightColors">TQMotifStyle</a><li>user:
<a href="tqurl.html#user">TQUrl</a><li>userAgent:
<a href="tqnpinstance.html#userAgent">TQNPInstance</a><li>userName:
<a href="tqurl.html#user">TQUrl</a><li>userName:
<a href="tqsqldatabase.html#userName">TQSqlDatabase</a><li>uses3D:
<a href="tqtoolbutton.html#uses3D">TQToolButton</a><li>usesBigPixmap:
<a href="tqtoolbutton.html#usesBigPixmap">TQToolButton</a><li>usesBigPixmaps:
@ -3459,7 +3429,7 @@ wait:
<a href="tqwidget.html#wheelEvent">TQWidget</a><li>wheelScrollLines:
<a href="ntqapplication.html#wheelScrollLines">TQApplication</a><li>whiteSpaceMode:
<a href="tqstylesheetitem.html#whiteSpaceMode">TQStyleSheetItem</a><li>widget:
<a href="tqdockwindow.html#widget">TQDockWindow</a> <a href="tqlayoutitem.html#widget">TQLayoutItem</a> <a href="tqnpinstance.html#widget">TQNPInstance</a> <a href="tqsqlform.html#widget">TQSqlForm</a> <a href="tqstyleoption.html#widget">TQStyleOption</a> <a href="tqwidgetitem.html#widget">TQWidgetItem</a> <a href="tqwidgetstack.html#widget">TQWidgetStack</a><li>widgetAt:
<a href="tqdockwindow.html#widget">TQDockWindow</a> <a href="tqlayoutitem.html#widget">TQLayoutItem</a> <a href="tqsqlform.html#widget">TQSqlForm</a> <a href="tqstyleoption.html#widget">TQStyleOption</a> <a href="tqwidgetitem.html#widget">TQWidgetItem</a> <a href="tqwidgetstack.html#widget">TQWidgetStack</a><li>widgetAt:
<a href="ntqapplication.html#widgetAt">TQApplication</a><li>widgetSizePolicy:
<a href="tqmacstyle.html#widgetSizePolicy">TQMacStyle</a><li>widgetToField:
<a href="tqsqlform.html#widgetToField">TQSqlForm</a><li>widgets:
@ -3490,14 +3460,13 @@ wait:
<a href="tqtextedit.html#wrapPolicy">TQTextEdit</a><li>wrapping:
<a href="tqdial.html#wrapping">TQDial</a> <a href="tqspinbox.html#wrapping">TQSpinBox</a><li>writable:
<a href="tqmetaproperty.html#writable">TQMetaProperty</a><li>write:
<a href="tqasciidict.html#write">TQAsciiDict</a> <a href="tqdict.html#write">TQDict</a> <a href="tqimageio.html#write">TQImageIO</a> <a href="tqintdict.html#write">TQIntDict</a> <a href="tqnpinstance.html#write">TQNPInstance</a> <a href="tqnpstream.html#write">TQNPStream</a> <a href="tqptrdict.html#write">TQPtrDict</a> <a href="tqptrlist.html#write">TQPtrList</a> <a href="tqptrqueue.html#write">TQPtrQueue</a> <a href="tqptrstack.html#write">TQPtrStack</a> <a href="tqptrvector.html#write">TQPtrVector</a> <a href="tqtranslatormessage.html#write">TQTranslatorMessage</a><li>writeBlock:
<a href="tqasciidict.html#write">TQAsciiDict</a> <a href="tqdict.html#write">TQDict</a> <a href="tqimageio.html#write">TQImageIO</a> <a href="tqintdict.html#write">TQIntDict</a> <a href="tqptrdict.html#write">TQPtrDict</a> <a href="tqptrlist.html#write">TQPtrList</a> <a href="tqptrqueue.html#write">TQPtrQueue</a> <a href="tqptrstack.html#write">TQPtrStack</a> <a href="tqptrvector.html#write">TQPtrVector</a> <a href="tqtranslatormessage.html#write">TQTranslatorMessage</a><li>writeBlock:
<a href="tqbuffer.html#writeBlock">TQBuffer</a> <a href="tqiodevice.html#writeBlock">TQIODevice</a> <a href="tqsocket.html#writeBlock">TQSocket</a> <a href="tqsocketdevice.html#writeBlock">TQSocketDevice</a><li>writeBytes:
<a href="tqdatastream.html#writeBytes">TQDataStream</a><li>writeEntry:
<a href="tqsettings.html#writeEntry">TQSettings</a><li>writeField:
<a href="tqsqlform.html#writeField">TQSqlForm</a><li>writeFields:
<a href="tqdatabrowser.html#writeFields">TQDataBrowser</a> <a href="tqdataview.html#writeFields">TQDataView</a> <a href="tqsqlform.html#writeFields">TQSqlForm</a><li>writeRawBytes:
<a href="tqdatastream.html#writeRawBytes">TQDataStream</a> <a href="tqtextstream.html#writeRawBytes">TQTextStream</a><li>writeReady:
<a href="tqnpinstance.html#writeReady">TQNPInstance</a><li>writeToStdin:
<a href="tqdatastream.html#writeRawBytes">TQDataStream</a> <a href="tqtextstream.html#writeRawBytes">TQTextStream</a><li>writeToStdin:
<a href="tqprocess.html#writeToStdin">TQProcess</a><li>wroteToStdin:
<a href="tqprocess.html#wroteToStdin">TQProcess</a><li><a name="x"></a>
x:

@ -1,704 +0,0 @@
<!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/examples/grapher/grapher.doc:1 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Grapher Plugin</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>Grapher Plugin</h1>
<p> This example graphs data from a simple text file. It
demonstrates the use of the <a href="tqnpinstance.html#writeReady">TQNPInstance::writeReady</a>()
and <a href="tqnpinstance.html#write">TQNPInstance::write</a>() functions.
<p> 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.
<p> <EMBED ALIGN=LEFT WIDTH=49% HEIGHT=300 SRC=graph.g1n
graphstyle=pie fontfamily=times fontsize=18>
<p> 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.
<p> 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><p> </small>
Note that some HTML arguments (which we have capitalized here)
are interpreted by the browser, while others are used by the
plugin.
<p> <br clear>
With the simplicity and cross-platform nature of TQt-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.
<p> <br clear>
<hr>
Implementation:
<p> <pre>// Include TQt Netscape Plugin classes.
#include "tqnp.h"
// Include other TQt classes.
#include &lt;<a href="tqpainter-h.html">tqpainter.h</a>&gt;
#include &lt;<a href="tqtextstream-h.html">tqtextstream.h</a>&gt;
#include &lt;<a href="tqbuffer-h.html">tqbuffer.h</a>&gt;
#include &lt;<a href="tqpixmap-h.html">tqpixmap.h</a>&gt;
#include &lt;<a href="tqmenubar-h.html">tqmenubar.h</a>&gt;
#include &lt;<a href="tqpushbutton-h.html">tqpushbutton.h</a>&gt;
#include &lt;<a href="tqptrlist-h.html">tqptrlist.h</a>&gt;
#include &lt;<a href="tqmessagebox-h.html">tqmessagebox.h</a>&gt;
// Include some C library functions.
#include &lt;math.h&gt;
#include &lt;stdlib.h&gt;
#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;
<a href="tqstring.html">TQString</a>* str;
};
virtual TQPtrList&lt;Datum&gt;&amp; 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 <a href="tqnpwidget.html">TQNPWidget</a> {
<a href="metaobjects.html#TQ_OBJECT">TQ_OBJECT</a>
public:
// Constructs a Graph to display a GraphModel
//
Graph(GraphModel&amp;);
~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&amp; model;
<a href="tqmenubar.html">TQMenuBar</a> *menubar;
Style style;
<a href="tqpopupmenu.html">TQPopupMenu</a>* stylemenu;
int pieRotationTimer;
int pieRotation;
<a href="tqpixmap.html">TQPixmap</a> pm;
private slots:
void setStyleFromMenu(int id);
};
<a name="f564"></a>Graph::Graph( GraphModel&amp; mdl ) :
model(mdl),
<a href="tqwidget.html#style">style</a>(Bar),
pieRotationTimer(0),
pieRotation(0)
{
// Create a menubar for the widget
//
menubar = new <a href="tqmenubar.html">TQMenuBar</a>( this );
stylemenu = new <a href="tqpopupmenu.html">TQPopupMenu</a>;
<a name="x2768"></a> stylemenu-&gt;<a href="tqpopupmenu.html#setCheckable">setCheckable</a>(TRUE);
for ( Style s = Pie; styleName[s]; s = Style(s+1)) {
stylemenu-&gt;<a href="tqmenudata.html#insertItem">insertItem</a>(styleName[s], s+100);
}
<a name="x2767"></a> <a href="tqobject.html#connect">connect</a>(stylemenu, TQ_SIGNAL(<a href="tqpopupmenu.html#activated">activated</a>(int)),
this, TQ_SLOT(setStyleFromMenu(int)));
<a href="tqwidget.html#setStyle">setStyle</a>(Pie);
menubar-&gt;<a href="tqmenudata.html#insertItem">insertItem</a>("Style", stylemenu);
menubar-&gt;<a href="tqmenudata.html#insertSeparator">insertSeparator</a>();
<a href="tqpopupmenu.html">TQPopupMenu</a>* help = new <a href="tqpopupmenu.html">TQPopupMenu</a>;
help-&gt;<a href="tqmenudata.html#insertItem">insertItem</a>( "About plugin...", this, TQ_SIGNAL(aboutPlugin()) );
help-&gt;<a href="tqmenudata.html#insertItem">insertItem</a>( "About data...", this, TQ_SIGNAL(aboutData()) );
menubar-&gt;<a href="tqmenudata.html#insertItem">insertItem</a>("Help", help);
<a name="x2745"></a> menubar-&gt;<a href="tqmenubar.html#hide">hide</a>();
}
Graph::~Graph()
{
}
<a name="x2778"></a>void Graph::<a href="tqwidget.html#setStyle">setStyle</a>(Style s)
{
if (style != s) {
if (pieRotationTimer)
<a href="tqobject.html#killTimer">killTimer</a>(pieRotationTimer);
<a name="x2749"></a> stylemenu-&gt;<a href="tqmenudata.html#setItemChecked">setItemChecked</a>(100+style, FALSE);
style = s;
if ( style == Pie )
pieRotationTimer = <a href="tqobject.html#startTimer">startTimer</a>( 80 );
else
pieRotationTimer = 0;
stylemenu-&gt;<a href="tqmenudata.html#setItemChecked">setItemChecked</a>(100+style, TRUE);
<a href="tqwidget.html#update">update</a>();
}
}
<a name="x2755"></a>void Graph::<a href="tqobject.html#timerEvent">timerEvent</a>(TQTimerEvent*)
{
pieRotation = ( pieRotation + 6 ) % 360; repaint(FALSE);
}
void Graph::<a href="tqwidget.html#setStyle">setStyle</a>(const char* stext)
{
for ( Style s = Pie; styleName[s]; s = Style(s+1) ) {
if ( <a href="tqcstring.html#qstricmp">tqstricmp</a>(stext,styleName[s])==0 ) {
<a href="tqwidget.html#setStyle">setStyle</a>(s);
return;
}
}
}
<a name="x2753"></a>void Graph::<a href="tqnpwidget.html#enterInstance">enterInstance</a>()
{
<a name="x2746"></a> menubar-&gt;<a href="tqmenubar.html#show">show</a>();
}
<a name="x2754"></a>void Graph::<a href="tqnpwidget.html#leaveInstance">leaveInstance</a>()
{
menubar-&gt;<a href="tqmenubar.html#hide">hide</a>();
}
void <a name="f565"></a>Graph::paintError(const char* e)
{
<a href="tqpainter.html">TQPainter</a> p(this);
int w = <a href="tqwidget.html#width">width</a>();
<a name="x2760"></a> p.<a href="tqpainter.html#drawText">drawText</a>(w/8, 0, w-w/4, height(), AlignCenter|WordBreak, e);
}
void <a name="f566"></a>Graph::paintBar(TQPaintEvent* event)
{
if ( model.colType(0) != GraphModel::Numeric ) {
paintError("First column not numeric, cannot draw bar graph\n");
return;
}
<a href="tqptrlist.html">TQPtrList</a>&lt;GraphModel::Datum&gt;&amp; data = model.graphData();
double max = 0.0;
<a name="x2772"></a> for (GraphModel::Datum* rowdata = data.<a href="tqptrlist.html#first">first</a>();
<a name="x2773"></a> rowdata; rowdata = data.<a href="tqptrlist.html#next">next</a>())
{
if (rowdata[0].dbl &gt; max) max = rowdata[0].dbl;
}
const uint w = <a href="tqwidget.html#width">width</a>();
const uint h = <a href="tqwidget.html#height">height</a>();
<a href="tqpainter.html">TQPainter</a> p(this);
<a name="x2762"></a> p.<a href="tqpainter.html#setClipRect">setClipRect</a>(event-&gt;rect());
<a name="x2771"></a> if ( w &gt; data.<a href="tqptrlist.html#count">count</a>() ) {
// More pixels than data
int x = 0;
int i = 0;
<a href="tqfontmetrics.html">TQFontMetrics</a> fm=<a href="tqwidget.html#fontMetrics">fontMetrics</a>();
<a name="x2741"></a> int fh = fm.<a href="tqfontmetrics.html#height">height</a>();
for (GraphModel::Datum* rowdata = data.<a href="tqptrlist.html#first">first</a>();
rowdata; rowdata = data.<a href="tqptrlist.html#next">next</a>())
{
<a href="tqcolor.html">TQColor</a> c;
<a name="x2740"></a> c.<a href="tqcolor.html#setHsv">setHsv</a>( (i * 255)/data.<a href="tqptrlist.html#count">count</a>(), 255, 255 );// rainbow effect
p.<a href="tqpainter.html#setBrush">setBrush</a>(c);
int bw = (w-w/4-x)/(data.<a href="tqptrlist.html#count">count</a>()-i);
int bh = int((h-h/4-1)*rowdata[0].dbl/max);
p.<a href="tqpainter.html#drawRect">drawRect</a>( 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.<a href="tqptrlist.html#first">first</a>(); rowdata;
rowdata = data.<a href="tqptrlist.html#next">next</a>())
{
int bx = i*w/data.<a href="tqptrlist.html#count">count</a>();
if (bx &gt; x) {
<a href="tqcolor.html">TQColor</a> c;
c.<a href="tqcolor.html#setHsv">setHsv</a>( (x * 255)/w, 255, 255 );// rainbow effect
p.<a href="tqpainter.html#setPen">setPen</a>(c);
int bh = int(h*av/n/max);
p.<a href="tqpainter.html#drawLine">drawLine</a>(x,h-1,x,h-bh);
av = 0.0;
n = 0;
x = bx;
}
av += rowdata[0].dbl;
n++;
i++;
}
}
}
void <a name="f567"></a>Graph::paintPie(TQPaintEvent* event)
{
if ( model.colType(0) != GraphModel::Numeric ) {
paintError("First column not numeric, cannot draw pie graph\n");
return;
}
<a href="tqptrlist.html">TQPtrList</a>&lt;GraphModel::Datum&gt;&amp; data = model.graphData();
double total = 0.0;
GraphModel::Datum* rowdata;
for (rowdata = data.<a href="tqptrlist.html#first">first</a>();
rowdata; rowdata = data.<a href="tqptrlist.html#next">next</a>())
{
total += rowdata[0].dbl;
}
// Only use first column for pie chart
if ( !total ) return;
int apos = (pieRotation-90)*16;
const int w = <a href="tqwidget.html#width">width</a>();
const int h = <a href="tqwidget.html#height">height</a>();
const int xd = w - w/5;
const int yd = h - h/5;
<a name="x2766"></a> pm.<a href="tqpixmap.html#resize">resize</a>(<a href="tqwidget.html#width">width</a>(),height());
<a name="x2765"></a> pm.<a href="tqpixmap.html#fill">fill</a>(<a href="tqwidget.html#backgroundColor">backgroundColor</a>());
<a href="tqpainter.html">TQPainter</a> p(&amp;pm);
<a name="x2763"></a> p.<a href="tqpainter.html#setFont">setFont</a>(<a href="tqwidget.html#font">font</a>());
p.<a href="tqpainter.html#setClipRect">setClipRect</a>(event-&gt;rect());
int i = 0;
for (rowdata = data.<a href="tqptrlist.html#first">first</a>();
rowdata; rowdata = data.<a href="tqptrlist.html#next">next</a>())
{
<a href="tqcolor.html">TQColor</a> c;
c.<a href="tqcolor.html#setHsv">setHsv</a>( ( i * 255)/data.<a href="tqptrlist.html#count">count</a>(), 255, 255 );// rainbow effect
p.<a href="tqpainter.html#setBrush">setBrush</a>( c ); // solid fill with color c
int a = int(( rowdata[0].dbl * 360.0 ) / total * 16.0 + 0.5);
<a name="x2757"></a> p.<a href="tqpainter.html#drawPie">drawPie</a>( 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.<a href="tqptrlist.html#first">first</a>();
rowdata; rowdata = data.<a href="tqptrlist.html#next">next</a>())
{
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.<a href="tqpainter.html#drawText">drawText</a>(x-w/8, y-h/8, w/4, h/4,
WordBreak|AlignCenter,
*rowdata[1].str);*/
apos += a;
}
}
<a href="tqpainter.html">TQPainter</a> p2(this);
p2.<a href="tqpainter.html#setClipRect">setClipRect</a>(event-&gt;rect());
<a name="x2758"></a> p2.<a href="tqpainter.html#drawPixmap">drawPixmap</a>(0,0,pm);
}
void <a name="f568"></a>Graph::paintWait(TQPaintEvent*)
{
<a href="tqpainter.html">TQPainter</a> p(this);
p.<a href="tqpainter.html#drawText">drawText</a>(rect(), AlignCenter, "Loading...");
}
void Graph::<a href="tqwidget.html#paintEvent">paintEvent</a>(TQPaintEvent* event)
{
if (!model.nCols()) {
paintWait(event);
} else {
switch (style) {
case Pie:
paintPie(event);
break;
case Bar:
paintBar(event);
break;
}
}
}
void <a name="f569"></a>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 <a href="tqnpinstance.html">TQNPInstance</a>, 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.
//
<a href="tqnpwidget.html">TQNPWidget</a>* 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.
//
<a href="tqptrlist.html">TQPtrList</a>&lt;Datum&gt;&amp; graphData();
ColType colType(int col) const;
int nCols() const;
void consumeLine();
<a href="tqptrlist.html">TQPtrList</a>&lt;Datum&gt; data;
<a href="tqbuffer.html">TQBuffer</a> line;
int ncols;
ColType *coltype;
private slots:
// Slots that are connected to the Graph menu items.
//
void aboutPlugin();
void aboutData();
};
<a name="f570"></a>Grapher::Grapher()
{
<a name="x2769"></a> data.<a href="tqptrcollection.html#setAutoDelete">setAutoDelete</a>(TRUE);
ncols = 0;
<a name="x2743"></a> line.<a href="tqiodevice.html#open">open</a>(IO_WriteOnly|IO_Truncate);
}
Grapher::~Grapher()
{
}
TQPtrList&lt;GraphModel::Datum&gt;&amp; <a name="f571"></a>Grapher::graphData()
{
return data;
}
GraphModel::ColType <a name="f572"></a>Grapher::colType(int col) const
{
return coltype[col];
}
int <a name="f573"></a>Grapher::nCols() const
{
return ncols;
}
<a name="x2751"></a>TQNPWidget* Grapher::<a href="tqnpinstance.html#newWindow">newWindow</a>()
{
// 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 = <a href="tqnpinstance.html#arg">arg</a>("GRAPHSTYLE");
if ( style ) graph-&gt;<a href="tqwidget.html#setStyle">setStyle</a>(style);
const char* fontfamily = <a href="tqnpinstance.html#arg">arg</a>("FONTFAMILY");
const char* fontsize = <a href="tqnpinstance.html#arg">arg</a>("FONTSIZE");
<a name="x2775"></a> int ptsize = fontsize ? atoi(fontsize) : graph-&gt;<a href="tqwidget.html#font">font</a>().pointSize();
if (fontfamily) graph-&gt;<a href="tqwidget.html#setFont">setFont</a>(TQFont(fontfamily, ptsize));
<a href="tqobject.html#connect">connect</a>(graph, TQ_SIGNAL(aboutPlugin()), this, TQ_SLOT(aboutPlugin()));
<a href="tqobject.html#connect">connect</a>(graph, TQ_SIGNAL(aboutData()), this, TQ_SLOT(aboutData()));
return graph;
}
void <a name="f574"></a>Grapher::consumeLine()
{
<a name="x2742"></a> line.<a href="tqiodevice.html#close">close</a>();
line.<a href="tqiodevice.html#open">open</a>(IO_ReadOnly);
<a href="tqtextstream.html">TQTextStream</a> ts( &amp;line );
if (ncols == 0 ) {
ncols=0;
<a href="tqptrlist.html">TQPtrList</a>&lt;ColType&gt; typelist;
typelist.<a href="tqptrcollection.html#setAutoDelete">setAutoDelete</a>(TRUE);
do {
<a href="tqstring.html">TQString</a> typestr;
ts &gt;&gt; typestr &gt;&gt; ws;
ColType* t = 0;
if ( typestr == "num" ) {
t = new ColType(Numeric);
} else if ( typestr == "label" ) {
t = new ColType(Label);
}
<a name="x2770"></a> if (t) typelist.<a href="tqptrlist.html#append">append</a>(t);
<a name="x2774"></a> } while (!ts.<a href="tqtextstream.html#atEnd">atEnd</a>());
coltype = new ColType[ncols];
for (ColType* t = typelist.<a href="tqptrlist.html#first">first</a>(); t; t = typelist.<a href="tqptrlist.html#next">next</a>()) {
coltype[ncols++] = *t;
}
} else {
int col=0;
Datum *rowdata = new Datum[ncols];
while ( col &lt; ncols &amp;&amp; !ts.<a href="tqtextstream.html#atEnd">atEnd</a>() ) {
switch (coltype[col]) {
case Numeric: {
double value;
ts &gt;&gt; value &gt;&gt; ws;
rowdata[col].dbl = value;
break;
}
case Label: {
<a href="tqstring.html">TQString</a>* value = new <a href="tqstring.html">TQString</a>;
ts &gt;&gt; *value &gt;&gt; ws;
rowdata[col].str = value;
break;
}
}
col++;
}
data.<a href="tqptrlist.html#append">append</a>(rowdata);
}
line.<a href="tqiodevice.html#close">close</a>();
line.<a href="tqiodevice.html#open">open</a>(IO_WriteOnly|IO_Truncate);
}
<a name="x2752"></a>int Grapher::<a href="tqnpinstance.html#write">write</a>(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&lt;len; i++) {
char ch = txt[i];
switch ( ch ) {
case '\n':
consumeLine();
break;
case '\r': // ignore;
break;
default:
<a name="x2744"></a> line.<a href="tqiodevice.html#putch">putch</a>(ch);
}
}
if ( <a href="tqnpinstance.html#widget">widget</a>() )
<a href="tqnpinstance.html#widget">widget</a>()-&gt;update();
return len;
}
void <a name="f575"></a>Grapher::aboutPlugin()
{
<a href="tqnpinstance.html#getURL">getURL</a>( "http://doc.trolltech.com/netscape-plugin.html", "_blank" );
}
void <a name="f576"></a>Grapher::aboutData()
{
const char* page = <a href="tqnpinstance.html#arg">arg</a>("DATAPAGE");
if (page)
<a href="tqnpinstance.html#getURL">getURL</a>( page, "_blank" );
else
<a name="x2750"></a> TQMessageBox::<a href="tqmessagebox.html#message">message</a>("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 <a href="tqnplugin.html">TQNPlugin</a> {
public:
GrapherPlugin()
{
}
<a href="tqnpinstance.html">TQNPInstance</a>* 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"
</pre>
<p>See also <a href="nsplugin-examples.html">Netscape Plugin Examples</a>.
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -116,10 +116,6 @@ tqwindowsmime.h tqmime.h
tqmacmime.h tqmime.h
tqmutexlocker.h tqmutex.h
tqnetworkoperation.h tqnetworkprotocol.h
tqnpstream.h tqnp.h
tqnpwidget.h tqnp.h
tqnpinstance.h tqnp.h
tqnplugin.h tqnp.h
tqobjectlistiterator.h tqobjectlist.h
tqcolorgroup.h tqpalette.h
tqpngimagepacker.h tqpngio.h

@ -150,7 +150,6 @@ body { background: #ffffff; color: black; }
<li><a href="tqmutex-h.html">tqmutex.h</a>
<li><a href="tqnamespace-h.html">tqnamespace.h</a>
<li><a href="tqnetworkprotocol-h.html">tqnetworkprotocol.h</a>
<li><a href="tqnp-h.html">tqnp.h</a>
<li><a href="tqobject-h.html">tqobject.h</a>
<li><a href="tqobjectcleanuphandler-h.html">tqobjectcleanuphandler.h</a>
<li><a href="tqobjectlist-h.html">tqobjectlist.h</a>

@ -163,8 +163,6 @@ classes in the TQt API.
<li><a href="tqmovie.html">TQMovie</a>
<li><a href="tqmutex.html">TQMutex</a>
<li><a href="tqmutexlocker.html">TQMutexLocker</a>
<li><a href="tqnplugin.html">TQNPlugin</a>
<li><a href="tqnpstream.html">TQNPStream</a>
<li><a href="tqpaintdevice.html">TQPaintDevice</a>
<ul>
<li><a href="tqpicture.html">TQPicture</a>
@ -344,7 +342,6 @@ classes in the TQt API.
<li><a href="tqhttp.html">TQHttp</a>
<li><a href="tqlocalfs.html">TQLocalFs</a>
</ul>
<li><a href="tqnpinstance.html">TQNPInstance</a>
<li><a href="tqobjectcleanuphandler.html">TQObjectCleanupHandler</a>
<li><a href="tqprocess.html">TQProcess</a>
<li><a href="tqserversocket.html">TQServerSocket</a>
@ -472,7 +469,6 @@ classes in the TQt API.
<li><a href="tqheader.html">TQHeader</a>
<li><a href="tqmainwindow.html">TQMainWindow</a>
<li><a href="tqmotifwidget.html">TQMotifWidget</a>
<li><a href="tqnpwidget.html">TQNPWidget</a>
<li><a href="tqscrollbar.html">TQScrollBar</a>
<li><a href="tqsizegrip.html">TQSizeGrip</a>
<li><a href="tqslider.html">TQSlider</a>

@ -55,7 +55,6 @@
"Format of the TQDataStream Operators" datastreamformat.html
"GNU General Public License" gpl.html
"Getting Started" motif-walkthrough-1.html
"Grapher Plugin" grapher-nsplugin-example.html
"Grouped Classes" groups.html
"Header File Index" headers.html
"Hello, World" hello-example.html
@ -4150,62 +4149,6 @@
"TQMutexLocker::~TQMutexLocker" tqmutexlocker.html#~TQMutexLocker
"TQMutexPool::get" tqmutexpool.html#get
"TQMutexPool::~TQMutexPool" tqmutexpool.html#~TQMutexPool
"TQNPInstance" tqnpinstance.html
"TQNPInstance::InstanceMode" tqnpinstance.html#InstanceMode
"TQNPInstance::Reason" tqnpinstance.html#Reason
"TQNPInstance::StreamMode" tqnpinstance.html#StreamMode
"TQNPInstance::arg" tqnpinstance.html#arg
"TQNPInstance::argc" tqnpinstance.html#argc
"TQNPInstance::argn" tqnpinstance.html#argn
"TQNPInstance::argv" tqnpinstance.html#argv
"TQNPInstance::getJavaPeer" tqnpinstance.html#getJavaPeer
"TQNPInstance::getURL" tqnpinstance.html#getURL
"TQNPInstance::getURLNotify" tqnpinstance.html#getURLNotify
"TQNPInstance::mode" tqnpinstance.html#mode
"TQNPInstance::newStream" tqnpinstance.html#newStream
"TQNPInstance::newStreamCreated" tqnpinstance.html#newStreamCreated
"TQNPInstance::newWindow" tqnpinstance.html#newWindow
"TQNPInstance::notifyURL" tqnpinstance.html#notifyURL
"TQNPInstance::postURL" tqnpinstance.html#postURL
"TQNPInstance::print" tqnpinstance.html#print
"TQNPInstance::printFullPage" tqnpinstance.html#printFullPage
"TQNPInstance::status" tqnpinstance.html#status
"TQNPInstance::streamAsFile" tqnpinstance.html#streamAsFile
"TQNPInstance::streamDestroyed" tqnpinstance.html#streamDestroyed
"TQNPInstance::userAgent" tqnpinstance.html#userAgent
"TQNPInstance::widget" tqnpinstance.html#widget
"TQNPInstance::write" tqnpinstance.html#write
"TQNPInstance::writeReady" tqnpinstance.html#writeReady
"TQNPInstance::~TQNPInstance" tqnpinstance.html#~TQNPInstance
"TQNPStream" tqnpstream.html
"TQNPStream::complete" tqnpstream.html#complete
"TQNPStream::end" tqnpstream.html#end
"TQNPStream::instance" tqnpstream.html#instance
"TQNPStream::lastModified" tqnpstream.html#lastModified
"TQNPStream::okay" tqnpstream.html#okay
"TQNPStream::requestRead" tqnpstream.html#requestRead
"TQNPStream::seekable" tqnpstream.html#seekable
"TQNPStream::type" tqnpstream.html#type
"TQNPStream::url" tqnpstream.html#url
"TQNPStream::write" tqnpstream.html#write
"TQNPStream::~TQNPStream" tqnpstream.html#~TQNPStream
"TQNPWidget" tqnpwidget.html
"TQNPWidget::enterInstance" tqnpwidget.html#enterInstance
"TQNPWidget::instance" tqnpwidget.html#instance
"TQNPWidget::leaveInstance" tqnpwidget.html#leaveInstance
"TQNPWidget::~TQNPWidget" tqnpwidget.html#~TQNPWidget
"TQNPlugin" tqnplugin.html
"TQNPlugin::actual" tqnplugin.html#actual
"TQNPlugin::create" tqnplugin.html#create
"TQNPlugin::getJavaClass" tqnplugin.html#getJavaClass
"TQNPlugin::getJavaEnv" tqnplugin.html#getJavaEnv
"TQNPlugin::getMIMEDescription" tqnplugin.html#getMIMEDescription
"TQNPlugin::getPluginDescriptionString" tqnplugin.html#getPluginDescriptionString
"TQNPlugin::getPluginNameString" tqnplugin.html#getPluginNameString
"TQNPlugin::getVersionInfo" tqnplugin.html#getVersionInfo
"TQNPlugin::newInstance" tqnplugin.html#newInstance
"TQNPlugin::unuseJavaClass" tqnplugin.html#unuseJavaClass
"TQNPlugin::~TQNPlugin" tqnplugin.html#~TQNPlugin
"TQNetworkOperation" tqnetworkoperation.html
"TQNetworkOperation::arg" tqnetworkoperation.html#arg
"TQNetworkOperation::errorCode" tqnetworkoperation.html#errorCode
@ -7783,7 +7726,6 @@
"TQt Editions" editions.html
"TQt Motif Extension" motif-extension.html
"TQt Motif Extension - A Migration Walkthrough" motif-walkthrough.html
"TQt Netscape Plugin Extension" netscape-plugin.html
"TQt Object Model" object.html
"TQt Open Source Edition" opensourceedition.html
"TQt Open Source Edition License Agreement" license.html
@ -7890,7 +7832,6 @@
"Toplevel Widgets" toplevel-example.html
"Trademarks" trademarks.html
"Transformed Graphics Demo" xform-example.html
"Trivial Example" trivial-nsplugin-example.html
"Tutorial #2" tutorial2.html
"User Interface Compiler (uic)" uic.html
"Using Custom TQDialogs" motif-walkthrough-4.html
@ -7938,7 +7879,6 @@
"motif-examples" motif-examples.html
"multimedia" multimedia.html
"network-examples" network-examples.html
"nsplugin-examples" nsplugin-examples.html
"objectmodel" objectmodel.html
"opengl-examples" opengl-examples.html
"operator!=" tqchar.html#operator!-eq

@ -51,7 +51,6 @@ with each Edition.
<li> <a href="workspace.html">Workspace (MDI) Module</a>
<li> <a href="xml.html">XML Module</a>
<li> <a href="motif-extension.html">TQMotif Extension</a>
<li> <a href="netscape-plugin.html">Netscape Plugin Extension</a>
</ul>
<p>
<!-- eof -->

@ -1,129 +0,0 @@
<!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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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.
<p> <h2> Information
</h2>
<a name="1"></a><p> The Netscape Plugin Extension consists of the follow classes:
<ul>
<li> <a href="tqnplugin.html">TQNPlugin</a>
<li> <a href="tqnpinstance.html">TQNPInstance</a>
<li> <a href="tqnpwidget.html">TQNPWidget</a>
<li> <a href="tqnpstream.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>$TQTDIR/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="tqnplugin.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 &copy; 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>

@ -1,51 +0,0 @@
<!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/doc/indices.doc:460 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Netscape Plugin Examples</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>Netscape Plugin Examples</h1>
<p> The following example programs show how to write plugins
that can be used with web browsers supporting the LiveConnect
protocol.
<p> For more information see the <a href="netscape-plugin.html">Plugin Howto</a>.
<p><table width="100%">
<tr bgcolor=#f0f0f0><td><b><a href="grapher-nsplugin-example.html">Grapher Plugin</a></b>
<tr bgcolor=#f0f0f0><td><b><a href="trivial-nsplugin-example.html">Trivial Example</a></b>
</table>
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -77,7 +77,6 @@ body { background: #ffffff; color: black; }
<li> <a href="eventsandfilters.html">Events and Event Filters</a>
<li> <a href="focus.html">Keyboard Focus Overview</a>
<li> <a href="accelerators.html">Standard Accelerators</a>
<li> <a href="netscape-plugin.html">TQt-based LiveConnect Plugins</a>
<li> <a href="motif-extension.html">Motif Support Extension</a>
<li> <a href="opengl-x11-overlays.html">OpenGL Overlays (X11)</a>
<li> <a href="appicon.html">Setting the Application Icon</a>

@ -4909,78 +4909,6 @@
<section ref="tqnetworkprotocol-members.html" title="List of All Member Functions"/>
<section ref="tqnetworkprotocol-h.html" title="Header File"/>
</section>
<section ref="tqnpinstance.html" title="TQNPInstance Class Reference">
<keyword ref="tqnpinstance.html">TQNPInstance</keyword>
<keyword ref="tqnpinstance.html#InstanceMode">InstanceMode</keyword>
<keyword ref="tqnpinstance.html#Reason">Reason</keyword>
<keyword ref="tqnpinstance.html#StreamMode">StreamMode</keyword>
<keyword ref="tqnpinstance.html#arg">arg</keyword>
<keyword ref="tqnpinstance.html#argc">argc</keyword>
<keyword ref="tqnpinstance.html#argn">argn</keyword>
<keyword ref="tqnpinstance.html#argv">argv</keyword>
<keyword ref="tqnpinstance.html#getJavaPeer">getJavaPeer</keyword>
<keyword ref="tqnpinstance.html#getURL">getURL</keyword>
<keyword ref="tqnpinstance.html#getURLNotify">getURLNotify</keyword>
<keyword ref="tqnpinstance.html#mode">mode</keyword>
<keyword ref="tqnpinstance.html#newStream">newStream</keyword>
<keyword ref="tqnpinstance.html#newStreamCreated">newStreamCreated</keyword>
<keyword ref="tqnpinstance.html#newWindow">newWindow</keyword>
<keyword ref="tqnpinstance.html#notifyURL">notifyURL</keyword>
<keyword ref="tqnpinstance.html#postURL">postURL</keyword>
<keyword ref="tqnpinstance.html#print">print</keyword>
<keyword ref="tqnpinstance.html#printFullPage">printFullPage</keyword>
<keyword ref="tqnpinstance.html#status">status</keyword>
<keyword ref="tqnpinstance.html#streamAsFile">streamAsFile</keyword>
<keyword ref="tqnpinstance.html#streamDestroyed">streamDestroyed</keyword>
<keyword ref="tqnpinstance.html#userAgent">userAgent</keyword>
<keyword ref="tqnpinstance.html#widget">widget</keyword>
<keyword ref="tqnpinstance.html#write">write</keyword>
<keyword ref="tqnpinstance.html#writeReady">writeReady</keyword>
<keyword ref="tqnpinstance.html#~TQNPInstance">~TQNPInstance</keyword>
<section ref="tqnpinstance-members.html" title="List of All Member Functions"/>
<section ref="tqnp-h.html" title="Header File"/>
</section>
<section ref="tqnplugin.html" title="TQNPlugin Class Reference">
<keyword ref="tqnplugin.html">TQNPlugin</keyword>
<keyword ref="tqnplugin.html#actual">actual</keyword>
<keyword ref="tqnplugin.html#create">create</keyword>
<keyword ref="tqnplugin.html#getJavaClass">getJavaClass</keyword>
<keyword ref="tqnplugin.html#getJavaEnv">getJavaEnv</keyword>
<keyword ref="tqnplugin.html#getMIMEDescription">getMIMEDescription</keyword>
<keyword ref="tqnplugin.html#getPluginDescriptionString">getPluginDescriptionString</keyword>
<keyword ref="tqnplugin.html#getPluginNameString">getPluginNameString</keyword>
<keyword ref="tqnplugin.html#getVersionInfo">getVersionInfo</keyword>
<keyword ref="tqnplugin.html#newInstance">newInstance</keyword>
<keyword ref="tqnplugin.html#unuseJavaClass">unuseJavaClass</keyword>
<keyword ref="tqnplugin.html#~TQNPlugin">~TQNPlugin</keyword>
<section ref="tqnplugin-members.html" title="List of All Member Functions"/>
<section ref="tqnp-h.html" title="Header File"/>
</section>
<section ref="tqnpstream.html" title="TQNPStream Class Reference">
<keyword ref="tqnpstream.html">TQNPStream</keyword>
<keyword ref="tqnpstream.html#complete">complete</keyword>
<keyword ref="tqnpstream.html#end">end</keyword>
<keyword ref="tqnpstream.html#instance">instance</keyword>
<keyword ref="tqnpstream.html#lastModified">lastModified</keyword>
<keyword ref="tqnpstream.html#okay">okay</keyword>
<keyword ref="tqnpstream.html#requestRead">requestRead</keyword>
<keyword ref="tqnpstream.html#seekable">seekable</keyword>
<keyword ref="tqnpstream.html#type">type</keyword>
<keyword ref="tqnpstream.html#url">url</keyword>
<keyword ref="tqnpstream.html#write">write</keyword>
<keyword ref="tqnpstream.html#~TQNPStream">~TQNPStream</keyword>
<section ref="tqnpstream-members.html" title="List of All Member Functions"/>
<section ref="tqnp-h.html" title="Header File"/>
</section>
<section ref="tqnpwidget.html" title="TQNPWidget Class Reference">
<keyword ref="tqnpwidget.html">TQNPWidget</keyword>
<keyword ref="tqnpwidget.html#enterInstance">enterInstance</keyword>
<keyword ref="tqnpwidget.html#instance">instance</keyword>
<keyword ref="tqnpwidget.html#leaveInstance">leaveInstance</keyword>
<keyword ref="tqnpwidget.html#~TQNPWidget">~TQNPWidget</keyword>
<section ref="tqnpwidget-members.html" title="List of All Member Functions"/>
<section ref="tqnp-h.html" title="Header File"/>
</section>
<section ref="tqobject.html" title="TQObject Class Reference">
<keyword ref="tqobject.html">TQObject</keyword>
<keyword ref="tqobject.html#activate_signal">activate_signal</keyword>
@ -9446,9 +9374,6 @@
<section ref="gpl.html" title="GNU General Public License">
<keyword ref="gpl.html">GNU General Public License</keyword>
</section>
<section ref="grapher-nsplugin-example.html" title="Grapher Plugin">
<keyword ref="grapher-nsplugin-example.html">Grapher Plugin</keyword>
</section>
<section ref="graphics.html" title="Graphics Classes">
<keyword ref="graphics.html">graphics</keyword>
</section>
@ -9569,9 +9494,6 @@
<section ref="multimedia.html" title="Multimedia Classes">
<keyword ref="multimedia.html">multimedia</keyword>
</section>
<section ref="nsplugin-examples.html" title="Netscape Plugin Examples">
<keyword ref="nsplugin-examples.html">nsplugin-examples</keyword>
</section>
<section ref="network-examples.html" title="Network Examples">
<keyword ref="network-examples.html">network-examples</keyword>
</section>
@ -9689,9 +9611,6 @@
<section ref="motif-walkthrough.html" title="TQt Motif Extension - A Migration Walkthrough">
<keyword ref="motif-walkthrough.html">TQt Motif Extension - A Migration Walkthrough</keyword>
</section>
<section ref="netscape-plugin.html" title="TQt Netscape Plugin Extension">
<keyword ref="netscape-plugin.html">TQt Netscape Plugin Extension</keyword>
</section>
<section ref="object.html" title="TQt Object Model">
<keyword ref="object.html">TQt Object Model</keyword>
</section>
@ -9938,9 +9857,6 @@
<section ref="xform-example.html" title="Transformed Graphics Demo">
<keyword ref="xform-example.html">Transformed Graphics Demo</keyword>
</section>
<section ref="trivial-nsplugin-example.html" title="Trivial Example">
<keyword ref="trivial-nsplugin-example.html">Trivial Example</keyword>
</section>
<section ref="tutorial2.html" title="Tutorial #2">
<keyword ref="tutorial2.html">Tutorial #2</keyword>
</section>

@ -65,7 +65,6 @@ Font Displayer | qfd-example.html
Format of the TQDataStream Operators | datastreamformat.html
GNU General Public License | gpl.html
Getting Started | motif-walkthrough-1.html
Grapher Plugin | grapher-nsplugin-example.html
Graphics Classes | graphics.html
Grouped Classes | groups.html
Header File Index | headers.html
@ -106,7 +105,6 @@ Meta Object System | metaobjects.html
Miscellaneous Classes | misc.html
Movies or the Story of the Animated GIF file | movies-example.html
Multimedia Classes | multimedia.html
Netscape Plugin Examples | nsplugin-examples.html
Network Examples | network-examples.html
Network Module | network.html
Non-GUI Classes | tools.html
@ -583,14 +581,6 @@ TQMutex Class | tqmutex.html
TQMutex Member List | tqmutex-members.html
TQMutexLocker Class | tqmutexlocker.html
TQMutexLocker Member List | tqmutexlocker-members.html
TQNPInstance Class | tqnpinstance.html
TQNPInstance Member List | tqnpinstance-members.html
TQNPStream Class | tqnpstream.html
TQNPStream Member List | tqnpstream-members.html
TQNPWidget Class | tqnpwidget.html
TQNPWidget Member List | tqnpwidget-members.html
TQNPlugin Class | tqnplugin.html
TQNPlugin Member List | tqnplugin-members.html
TQNetworkOperation Class | tqnetworkoperation.html
TQNetworkOperation Member List | tqnetworkoperation-members.html
TQNetworkProtocol Class | tqnetworkprotocol.html
@ -946,7 +936,6 @@ Qt Editions | editions.html
Qt Member List | qt-members.html
Qt Motif Extension | motif-extension.html
Qt Motif Extension - A Migration Walkthrough | motif-walkthrough.html
Qt Netscape Plugin Extension | netscape-plugin.html
Qt Object Model | object.html
Qt Open Source Edition | opensourceedition.html
Qt Open Source Edition License Agreement | license.html
@ -1029,7 +1018,6 @@ Timers | timers.html
Toplevel Widgets | toplevel-example.html
Trademarks | trademarks.html
Transformed Graphics Demo | xform-example.html
Trivial Example | trivial-nsplugin-example.html
Tutorial #2 | tutorial2.html
User Interface Compiler (uic) | uic.html
Using Custom TQDialogs | motif-walkthrough-4.html
@ -1186,7 +1174,6 @@ tqmutex.h Include File | tqmutex-h.html
tqnamespace.h Include File | tqnamespace-h.html
tqnetwork.h Example File | tqnetwork-h.html
tqnetworkprotocol.h Include File | tqnetworkprotocol-h.html
tqnp.h Include File | tqnp-h.html
tqobject.h Include File | tqobject-h.html
tqobjectcleanuphandler.h Include File | tqobjectcleanuphandler-h.html
tqobjectlist.h Include File | tqobjectlist-h.html

@ -278,7 +278,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="tqptrcollection.html#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<h3 class=fn>uint <a name="size"></a>TQAsciiDict::size () const
</h3>

@ -225,7 +225,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="tqptrcollection.html#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<h3 class=fn>void <a name="setMaxCost"></a>TQCache::setMaxCost ( int&nbsp;m )
</h3>

@ -505,7 +505,7 @@ color is not changed.
may return slightly different values to those set by <a href="#setHsv">setHsv</a>().
<p> <p>See also <a href="#hsv">hsv</a>() and <a href="#setRgb">setRgb</a>().
<p>Examples: <a href="drawdemo-example.html#x1063">drawdemo/drawdemo.cpp</a>, <a href="grapher-nsplugin-example.html#x2740">grapher/grapher.cpp</a>, and <a href="progress-example.html#x66">progress/progress.cpp</a>.
<p>Examples: <a href="drawdemo-example.html#x1063">drawdemo/drawdemo.cpp</a> and <a href="progress-example.html#x66">progress/progress.cpp</a>.
<h3 class=fn>void <a name="setNamedColor"></a>TQColor::setNamedColor ( const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;name )
</h3>
Sets the RGB value to <em>name</em>, which may be in one of these

@ -352,7 +352,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="tqptrcollection.html#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<h3 class=fn>uint <a name="size"></a>TQDict::size () const
</h3>

@ -260,7 +260,7 @@ Returns the height of the font.
base line).
<p> <p>See also <a href="#leading">leading</a>() and <a href="#lineSpacing">lineSpacing</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2741">grapher/grapher.cpp</a>, <a href="hello-example.html#x1630">hello/hello.cpp</a>, and <a href="qfd-example.html#x1986">qfd/fontdisplayer.cpp</a>.
<p>Examples: <a href="hello-example.html#x1630">hello/hello.cpp</a> and <a href="qfd-example.html#x1986">qfd/fontdisplayer.cpp</a>.
<h3 class=fn>bool <a name="inFont"></a>TQFontMetrics::inFont ( <a href="tqchar.html">TQChar</a>&nbsp;ch ) const
</h3>
Returns TRUE if character <em>ch</em> is a valid character in the font;

@ -265,7 +265,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="tqptrcollection.html#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<h3 class=fn>uint <a name="size"></a>TQIntDict::size () const
</h3>

@ -239,7 +239,6 @@ at the end of the input; otherwise returns FALSE.
<p> This virtual function must be reimplemented by all subclasses.
<p> <p>See also <a href="#open">open</a>().
<p>Example: <a href="grapher-nsplugin-example.html#x2742">grapher/grapher.cpp</a>.
<p>Reimplemented in <a href="tqfile.html#close">TQFile</a> and <a href="tqsocket.html#close">TQSocket</a>.
<h3 class=fn>int <a name="flags"></a>TQIODevice::flags () const
</h3>
@ -397,7 +396,6 @@ binary data. Cannot be combined with <a href="tqfile.html#open">IO_Raw</a>.
<p> This virtual function must be reimplemented by all subclasses.
<p> <p>See also <a href="#close">close</a>().
<p>Example: <a href="grapher-nsplugin-example.html#x2743">grapher/grapher.cpp</a>.
<p>Reimplemented in <a href="tqfile.html#open">TQFile</a> and <a href="tqsocket.html#open">TQSocket</a>.
<h3 class=fn>int <a name="putch"></a>TQIODevice::putch ( int&nbsp;ch )<tt> [pure virtual]</tt>
</h3>
@ -407,7 +405,6 @@ binary data. Cannot be combined with <a href="tqfile.html#open">IO_Raw</a>.
<p> This virtual function must be reimplemented by all subclasses.
<p> <p>See also <a href="#getch">getch</a>() and <a href="#ungetch">ungetch</a>().
<p>Example: <a href="grapher-nsplugin-example.html#x2744">grapher/grapher.cpp</a>.
<p>Reimplemented in <a href="tqfile.html#putch">TQFile</a> and <a href="tqsocket.html#putch">TQSocket</a>.
<h3 class=fn><a href="tqbytearray.html">TQByteArray</a> <a name="readAll"></a>TQIODevice::readAll ()<tt> [virtual]</tt>
</h3>

@ -235,7 +235,6 @@ menu bar is needed after items have been inserted. See <a href="showimg-example.
Reimplements <a href="tqwidget.html#hide">TQWidget::hide</a>() in order to deselect any selected
item, and calls setUpLayout() for the main window.
<p>Example: <a href="grapher-nsplugin-example.html#x2745">grapher/grapher.cpp</a>.
<p>Reimplemented from <a href="tqwidget.html#hide">TQWidget</a>.
<h3 class=fn>void <a name="highlighted"></a>TQMenuBar::highlighted ( int&nbsp;id )<tt> [signal]</tt>
</h3>
@ -562,7 +561,6 @@ Reimplements <a href="tqwidget.html#show">TQWidget::show</a>() in order to set u
keyboard accelerators and to raise itself to the top of the widget
stack.
<p>Example: <a href="grapher-nsplugin-example.html#x2746">grapher/grapher.cpp</a>.
<p>Reimplemented from <a href="tqwidget.html#show">TQWidget</a>.
<hr><h2>Property Documentation</h2>
<h3 class=fn>bool <a name="defaultUp-prop"></a>defaultUp</h3>

@ -647,7 +647,7 @@ unchecks the menu item with id <em>id</em>. Calls
<a href="tqpopupmenu.html#setCheckable">TQPopupMenu::setCheckable</a>( TRUE ) if necessary.
<p> <p>See also <a href="#isItemChecked">isItemChecked</a>().
<p>Examples: <a href="canvas-example.html#x2939">canvas/canvas.cpp</a>, <a href="grapher-nsplugin-example.html#x2749">grapher/grapher.cpp</a>, <a href="mdi-example.html#x2032">mdi/application.cpp</a>, <a href="menu-example.html#x1872">menu/menu.cpp</a>, <a href="progress-example.html#x71">progress/progress.cpp</a>, <a href="scrollview-example.html#x636">scrollview/scrollview.cpp</a>, and <a href="showimg-example.html#x1330">showimg/showimg.cpp</a>.
<p>Examples: <a href="canvas-example.html#x2939">canvas/canvas.cpp</a>, <a href="mdi-example.html#x2032">mdi/application.cpp</a>, <a href="menu-example.html#x1872">menu/menu.cpp</a>, <a href="progress-example.html#x71">progress/progress.cpp</a>, <a href="scrollview-example.html#x636">scrollview/scrollview.cpp</a>, and <a href="showimg-example.html#x1330">showimg/showimg.cpp</a>.
<h3 class=fn>void <a name="setItemEnabled"></a>TQMenuData::setItemEnabled ( int&nbsp;id, bool&nbsp;enable )
</h3>
If <em>enable</em> is TRUE, enables the menu item with identifier <em>id</em>;

@ -407,7 +407,7 @@ See the examples/menu/menu.cpp example.
<p> <a href="ntqapplication.html">TQApplication</a> provides this functionality as a slot.
<p> <p>See also <a href="ntqapplication.html#aboutTQt">TQApplication::aboutTQt</a>().
<p>Examples: <a href="tqaction-application-example.html#x1138">action/application.cpp</a>, <a href="simple-application-example.html#x1556">application/application.cpp</a>, <a href="canvas-chart-example.html#x2887">chart/chartform.cpp</a>, <a href="helpviewer-example.html#x995">helpviewer/helpwindow.cpp</a>, <a href="menu-example.html#x1875">menu/menu.cpp</a>, <a href="themes-example.html#x331">themes/themes.cpp</a>, and <a href="trivial-nsplugin-example.html#x2736">trivial/trivial.cpp</a>.
<p>Examples: <a href="tqaction-application-example.html#x1138">action/application.cpp</a>, <a href="simple-application-example.html#x1556">application/application.cpp</a>, <a href="canvas-chart-example.html#x2887">chart/chartform.cpp</a>, <a href="helpviewer-example.html#x995">helpviewer/helpwindow.cpp</a>, <a href="menu-example.html#x1875">menu/menu.cpp</a> and <a href="themes-example.html#x331">themes/themes.cpp</a></a>.
<h3 class=fn>void <a name="adjustSize"></a>TQMessageBox::adjustSize ()<tt> [virtual]</tt>
</h3>
Adjusts the size of the message box to fit the contents just before
@ -539,7 +539,6 @@ you specify an Escape button to prevent this from happening.
<p> Opens a modal message box directly using the specified parameters.
<p> Please use <a href="#information">information</a>(), <a href="#warning">warning</a>(), <a href="#question">question</a>(), or <a href="#critical">critical</a>() instead.
<p>Example: <a href="grapher-nsplugin-example.html#x2750">grapher/grapher.cpp</a>.
<h3 class=fn>bool <a name="query"></a>TQMessageBox::query ( const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;caption, const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;text, const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;yesButtonText = TQString::null, const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;noButtonText = TQString::null, <a href="tqwidget.html">TQWidget</a>&nbsp;*&nbsp;parent = 0, const char * = 0 )<tt> [static]</tt>
</h3>
<b>This function is obsolete.</b> It is provided to keep old source working. We strongly advise against using it in new code.

@ -1,231 +0,0 @@
<!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/include/tqnp.h:1 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>tqnp.h Include File</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>tqnp.h</h1>
<p>This is the verbatim text of the tqnp.h include file. It is provided only for illustration; the copyright remains with Trolltech.
<hr>
<pre>
/****************************************************************************
** $Id: qt/tqnp.h 3.3.8 edited Jan 11 14:37 $
**
** Definition of TQt extension classes for Netscape Plugin support.
**
** Created : 970601
**
** Copyright (C) 1992-2007 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 file LICENSE.GPL 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 sales@trolltech.com.
**
** 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&amp; 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&amp; plugin_major, int&amp; plugin_minor,
int&amp; browser_major, int&amp; 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
</pre>
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,112 +0,0 @@
<!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/include/tqnp.h:97 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPInstance Member List</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>Complete Member List for TQNPInstance</h1>
<p>This is the complete list of member functions for
<a href="tqnpinstance.html">TQNPInstance</a>, including inherited members.
<ul>
<li><a href="tqnpinstance.html#TQNPInstance">TQNPInstance</a>()
<li><a href="tqnpinstance.html#~TQNPInstance">~TQNPInstance</a>()
<li><a href="tqnpinstance.html#arg">arg</a>()
<li><a href="tqnpinstance.html#argc">argc</a>()
<li><a href="tqnpinstance.html#argn">argn</a>()
<li><a href="tqnpinstance.html#argv">argv</a>()
<li><a href="tqobject.html#blockSignals">blockSignals</a>()
<li><a href="tqobject.html#checkConnectArgs">checkConnectArgs</a>()
<li><a href="tqobject.html#child">child</a>()
<li><a href="tqobject.html#childEvent">childEvent</a>()
<li><a href="tqobject.html#children">children</a>()
<li><a href="tqobject.html#className">className</a>()
<li><a href="tqobject.html#connect">connect</a>()
<li><a href="tqobject.html#connectNotify">connectNotify</a>()
<li><a href="tqobject.html#customEvent">customEvent</a>()
<li><a href="tqobject.html#deleteLater">deleteLater</a>()
<li><a href="tqobject.html#destroyed">destroyed</a>()
<li><a href="tqobject.html#disconnect">disconnect</a>()
<li><a href="tqobject.html#disconnectNotify">disconnectNotify</a>()
<li><a href="tqobject.html#dumpObjectInfo">dumpObjectInfo</a>()
<li><a href="tqobject.html#dumpObjectTree">dumpObjectTree</a>()
<li><a href="tqobject.html#event">event</a>()
<li><a href="tqobject.html#eventFilter">eventFilter</a>()
<li><a href="tqnpinstance.html#getJavaPeer">getJavaPeer</a>()
<li><a href="tqnpinstance.html#getURL">getURL</a>()
<li><a href="tqnpinstance.html#getURLNotify">getURLNotify</a>()
<li><a href="tqobject.html#highPriority">highPriority</a>()
<li><a href="tqobject.html#inherits">inherits</a>()
<li><a href="tqobject.html#insertChild">insertChild</a>()
<li><a href="tqobject.html#installEventFilter">installEventFilter</a>()
<li><a href="tqobject.html#isA">isA</a>()
<li><a href="tqobject.html#isWidgetType">isWidgetType</a>()
<li><a href="tqobject.html#killTimer">killTimer</a>()
<li><a href="tqobject.html#killTimers">killTimers</a>()
<li><a href="tqobject.html#metaObject">metaObject</a>()
<li><a href="tqnpinstance.html#mode">mode</a>()
<li><a href="tqobject.html#name">name</a>()
<li><a href="tqnpinstance.html#newStream">newStream</a>()
<li><a href="tqnpinstance.html#newStreamCreated">newStreamCreated</a>()
<li><a href="tqnpinstance.html#newWindow">newWindow</a>()
<li><a href="tqobject.html#normalizeSignalSlot">normalizeSignalSlot</a>()
<li><a href="tqnpinstance.html#notifyURL">notifyURL</a>()
<li><a href="tqobject.html#objectTrees">objectTrees</a>()
<li><a href="tqobject.html#parent">parent</a>()
<li><a href="tqnpinstance.html#postURL">postURL</a>()
<li><a href="tqnpinstance.html#print">print</a>()
<li><a href="tqnpinstance.html#printFullPage">printFullPage</a>()
<li><a href="tqobject.html#property">property</a>()
<li><a href="tqobject.html#queryList">queryList</a>()
<li><a href="tqobject.html#removeChild">removeChild</a>()
<li><a href="tqobject.html#removeEventFilter">removeEventFilter</a>()
<li><a href="tqobject.html#sender">sender</a>()
<li><a href="tqobject.html#setName">setName</a>()
<li><a href="tqobject.html#setProperty">setProperty</a>()
<li><a href="tqobject.html#signalsBlocked">signalsBlocked</a>()
<li><a href="tqobject.html#startTimer">startTimer</a>()
<li><a href="tqnpinstance.html#status">status</a>()
<li><a href="tqnpinstance.html#streamAsFile">streamAsFile</a>()
<li><a href="tqnpinstance.html#streamDestroyed">streamDestroyed</a>()
<li><a href="tqobject.html#timerEvent">timerEvent</a>()
<li><a href="tqobject.html#tr">tr</a>()
<li><a href="tqobject.html#trUtf8">trUtf8</a>()
<li><a href="tqnpinstance.html#userAgent">userAgent</a>()
<li><a href="tqnpinstance.html#widget">widget</a>()
<li><a href="tqnpinstance.html#write">write</a>()
<li><a href="tqnpinstance.html#writeReady">writeReady</a>()
</ul>
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,320 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPInstance Class</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>TQNPInstance Class Reference</h1>
<p>The TQNPInstance class provides a TQObject that is a web browser plugin.
<a href="#details">More...</a>
<p>This class is part of the <b>TQt Netscape Extension</b>.
<p><tt>#include &lt;<a href="tqnp-h.html">tqnp.h</a>&gt;</tt>
<p>Inherits <a href="tqobject.html">TQObject</a>.
<p><a href="tqnpinstance-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
<li class=fn><a href="#~TQNPInstance"><b>~TQNPInstance</b></a> ()</li>
<li class=fn>int <a href="#argc"><b>argc</b></a> () const</li>
<li class=fn>const char * <a href="#argn"><b>argn</b></a> ( int&nbsp;i ) const</li>
<li class=fn>const char * <a href="#argv"><b>argv</b></a> ( int&nbsp;i ) const</li>
<li class=fn>enum <a href="#Reason-enum"><b>Reason</b></a> { ReasonDone = 0, ReasonBreak = 1, ReasonError = 2, ReasonUnknown = -1 }</li>
<li class=fn>const char * <a href="#arg"><b>arg</b></a> ( const&nbsp;char&nbsp;*&nbsp;name ) const</li>
<li class=fn>enum <a href="#InstanceMode-enum"><b>InstanceMode</b></a> { Embed = 1, Full = 2, Background = 3 }</li>
<li class=fn>InstanceMode <a href="#mode"><b>mode</b></a> () const</li>
<li class=fn>const char * <a href="#userAgent"><b>userAgent</b></a> () const</li>
<li class=fn>virtual TQNPWidget * <a href="#newWindow"><b>newWindow</b></a> ()</li>
<li class=fn>TQNPWidget * <a href="#widget"><b>widget</b></a> ()</li>
<li class=fn>enum <a href="#StreamMode-enum"><b>StreamMode</b></a> { Normal = 1, Seek = 2, AsFile = 3, AsFileOnly = 4 }</li>
<li class=fn>virtual bool <a href="#newStreamCreated"><b>newStreamCreated</b></a> ( TQNPStream *, StreamMode&nbsp;&amp;&nbsp;smode )</li>
<li class=fn>virtual int <a href="#writeReady"><b>writeReady</b></a> ( TQNPStream * )</li>
<li class=fn>virtual int <a href="#write"><b>write</b></a> ( TQNPStream *, int&nbsp;offset, int&nbsp;len, void&nbsp;*&nbsp;buffer )</li>
<li class=fn>virtual void <a href="#streamDestroyed"><b>streamDestroyed</b></a> ( TQNPStream * )</li>
<li class=fn>void <a href="#status"><b>status</b></a> ( const&nbsp;char&nbsp;*&nbsp;msg )</li>
<li class=fn>void <a href="#getURLNotify"><b>getURLNotify</b></a> ( const&nbsp;char&nbsp;*&nbsp;url, const&nbsp;char&nbsp;*&nbsp;window = 0, void&nbsp;*&nbsp;data = 0 )</li>
<li class=fn>void <a href="#getURL"><b>getURL</b></a> ( const&nbsp;char&nbsp;*&nbsp;url, const&nbsp;char&nbsp;*&nbsp;window = 0 )</li>
<li class=fn>void <a href="#postURL"><b>postURL</b></a> ( const&nbsp;char&nbsp;*&nbsp;url, const&nbsp;char&nbsp;*&nbsp;window, uint&nbsp;len, const&nbsp;char&nbsp;*&nbsp;buf, bool&nbsp;file )</li>
<li class=fn>TQNPStream * <a href="#newStream"><b>newStream</b></a> ( const&nbsp;char&nbsp;*&nbsp;mimetype, const&nbsp;char&nbsp;*&nbsp;window, bool&nbsp;as_file = FALSE )</li>
<li class=fn>virtual void <a href="#streamAsFile"><b>streamAsFile</b></a> ( TQNPStream *, const&nbsp;char&nbsp;*&nbsp;fname )</li>
<li class=fn>void * <a href="#getJavaPeer"><b>getJavaPeer</b></a> () const</li>
<li class=fn>virtual void <a href="#notifyURL"><b>notifyURL</b></a> ( const&nbsp;char&nbsp;*&nbsp;url, Reason&nbsp;r, void&nbsp;*&nbsp;notifyData )</li>
<li class=fn>virtual bool <a href="#printFullPage"><b>printFullPage</b></a> ()</li>
<li class=fn>virtual void <a href="#print"><b>print</b></a> ( TQPainter * )</li>
</ul>
<h2>Protected Members</h2>
<ul>
<li class=fn><a href="#TQNPInstance"><b>TQNPInstance</b></a> ()</li>
</ul>
<hr><a name="details"></a><h2>Detailed Description</h2>
<p> This class is defined in the <b>TQt <a href="netscape-plugin.html#Netscape">Netscape</a> Extension</b>, which can be found in the <tt>qt/extensions</tt> directory. It is not included in the main TQt API.
<p>
The TQNPInstance class provides a <a href="tqobject.html">TQObject</a> that is a web browser plugin.
<p>
<p> Deriving from TQNPInstance creates an object that represents a
single <tt>&lt;EMBED&gt;</tt> tag in an HTML document.
<p> The TQNPInstance is responsible for creating an appropriate
<a href="tqnpwidget.html">TQNPWidget</a> window if required (not all plugins have windows), and
for interacting with the input/output facilities intrinsic to
plugins.
<p> Note that there is <em>absolutely no guarantee</em> regarding the order
in which functions are called. Sometimes the browser will call
<a href="#newWindow">newWindow</a>() first, at other times, <a href="#newStreamCreated">newStreamCreated</a>() will be
called first (assuming the <tt>&lt;EMBED&gt;</tt> tag has a SRC parameter).
<p> <em>None of TQt's GUI functionality</em> may be used until after the
first call to newWindow(). This includes any use of <a href="tqpaintdevice.html">TQPaintDevice</a>
(i.e. <a href="tqpixmap.html">TQPixmap</a>, <a href="tqwidget.html">TQWidget</a>, and all subclasses), <a href="ntqapplication.html">TQApplication</a>, anything
related to <a href="tqpainter.html">TQPainter</a> (<a href="tqbrush.html">TQBrush</a>, etc.), fonts, <a href="tqmovie.html">TQMovie</a>, <a href="tqtooltip.html">TQToolTip</a>, etc.
Useful classes which specifically <em>can</em> be used are <a href="tqimage.html">TQImage</a>,
<a href="tqfile.html">TQFile</a>, and <a href="tqbuffer.html">TQBuffer</a>.
<p> 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 <a href="tqnpwidget.html">TQNPWidget</a> is to provide a graphical
interface to that data.
<hr><h2>Member Type Documentation</h2>
<h3 class=fn><a name="InstanceMode-enum"></a>TQNPInstance::InstanceMode</h3>
<p> This enum type provides TQt-style names for three #defines in
<tt>npapi.h</tt>:
<ul>
<li><tt>TQNPInstance::Embed</tt> - corresponds to NP_EMBED
<li><tt>TQNPInstance::Full</tt> - corresponds to NP_FULL
<li><tt>TQNPInstance::Background</tt> - corresponds to NP_BACKGROUND
</ul><p>
<h3 class=fn><a name="Reason-enum"></a>TQNPInstance::Reason</h3>
<ul>
<li><tt>TQNPInstance::ReasonDone</tt>
<li><tt>TQNPInstance::ReasonBreak</tt>
<li><tt>TQNPInstance::ReasonError</tt>
<li><tt>TQNPInstance::ReasonUnknown</tt>
</ul>
<h3 class=fn><a name="StreamMode-enum"></a>TQNPInstance::StreamMode</h3>
<ul>
<li><tt>TQNPInstance::Normal</tt>
<li><tt>TQNPInstance::Seek</tt>
<li><tt>TQNPInstance::AsFile</tt>
<li><tt>TQNPInstance::AsFileOnly</tt>
</ul>
<hr><h2>Member Function Documentation</h2>
<h3 class=fn><a name="TQNPInstance"></a>TQNPInstance::TQNPInstance ()<tt> [protected]</tt>
</h3>
Creates a TQNPInstance.
<p> Can only be called from within a derived class created within
<a href="tqnplugin.html#newInstance">TQNPlugin::newInstance</a>().
<h3 class=fn><a name="~TQNPInstance"></a>TQNPInstance::~TQNPInstance ()
</h3>
Called when the plugin instance is about to be deleted.
<h3 class=fn>const char * <a name="arg"></a>TQNPInstance::arg ( const&nbsp;char&nbsp;*&nbsp;name ) const
</h3>
Returns the value of the named arguments, or 0 if no argument
called <em>name</em> appears in the <tt>&lt;EMBED&gt;</tt> tag of this instance.
If the argument appears, but has no value assigned, the empty
string is returned. In summary:
<p> <center><table cellpadding="4" cellspacing="2" border="0">
<tr bgcolor="#a2c511"> <th valign="top">Tag <th valign="top">Result
<tr bgcolor="#f0f0f0"> <td valign="top"><tt>&lt;EMBED ...&gt;</tt> <td valign="top">arg("FOO") == 0
<tr bgcolor="#d0d0d0"> <td valign="top"><tt>&lt;EMBED FOO ...&gt;</tt> <td valign="top">arg("FOO") == ""
<tr bgcolor="#f0f0f0"> <td valign="top"><tt>&lt;EMBED FOO=BAR ...&gt;</tt> <td valign="top">arg("FOO") == "BAR"
</table></center>
<h3 class=fn>int <a name="argc"></a>TQNPInstance::argc () const
</h3>
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.
<p> <p>See also <a href="#arg">arg</a>() and <a href="#argn">argn</a>().
<h3 class=fn>const char * <a name="argn"></a>TQNPInstance::argn ( int&nbsp;i ) const
</h3>
Returns the name of the <em>i</em>-th argument.
<p> <p>See also <a href="#argc">argc</a>() and <a href="#argv">argv</a>().
<h3 class=fn>const char * <a name="argv"></a>TQNPInstance::argv ( int&nbsp;i ) const
</h3>
Returns the value of the <em>i</em>-th argument.
<p> \as <a href="#argc">argc</a>(), <a href="#arg">arg</a>()
<h3 class=fn>void * <a name="getJavaPeer"></a>TQNPInstance::getJavaPeer () const
</h3>
Returns the Java object associated with the plugin instance, an
object of the <a href="tqnplugin.html#getJavaClass">plugin's Java
class</a>, or 0 if the plug-in does not have a Java class,
Java is disabled, or an error occurred.
<p> The return value is actually a <tt>jref</tt> we use <tt>void*</tt> so as to
avoid burdening plugins which do not require Java.
<p> <p>See also <a href="tqnplugin.html#getJavaClass">TQNPlugin::getJavaClass</a>() and <a href="tqnplugin.html#getJavaEnv">TQNPlugin::getJavaEnv</a>().
<h3 class=fn>void <a name="getURL"></a>TQNPInstance::getURL ( const&nbsp;char&nbsp;*&nbsp;url, const&nbsp;char&nbsp;*&nbsp;window = 0 )
</h3>
Requests that the <em>url</em> be retrieved and sent to the named <em>window</em>. See <a href="netscape-plugin.html#Netscape">Netscape</a>'s JavaScript documentation for an explanation
of window names.
<h3 class=fn>void <a name="getURLNotify"></a>TQNPInstance::getURLNotify ( const&nbsp;char&nbsp;*&nbsp;url, const&nbsp;char&nbsp;*&nbsp;window = 0, void&nbsp;*&nbsp;data = 0 )
</h3>
Requests that the given <em>url</em> be retrieved and sent to
the named <em>window</em>. See <a href="netscape-plugin.html#Netscape">Netscape</a>'s JavaScript documentation for
an explanation of window names. Passes the arguments including <em>data</em> to NPN_GetURLNotify.
<p>
<a href="http://developer.netscape.com/docs/manuals/communicator/plugin/refpgur.htm#npngeturlnotify">Netscape: NPN_GetURLNotify method</a>
<h3 class=fn><a href="tqnpinstance.html#InstanceMode-enum">InstanceMode</a> <a name="mode"></a>TQNPInstance::mode () const
</h3>
Returns the mode of the plugin.
<h3 class=fn><a href="tqnpstream.html">TQNPStream</a>&nbsp;* <a name="newStream"></a>TQNPInstance::newStream ( const&nbsp;char&nbsp;*&nbsp;mimetype, const&nbsp;char&nbsp;*&nbsp;window, bool&nbsp;as_file = FALSE )
</h3>
<p><b>This function is under development and is subject to change.</b>
<p> This function is <em>not tested</em>.
<p> Requests the creation of a new data stream <em>from</em> the plugin.
The MIME type and window are passed in <em>mimetype</em> and <em>window</em>.
<em>as_file</em> holds the <a href="#StreamMode-enum">AsFileOnly</a> flag. It is an interface to the
NPN_NewStream function of the <a href="netscape-plugin.html#Netscape">Netscape</a> Plugin API.
<h3 class=fn>bool <a name="newStreamCreated"></a>TQNPInstance::newStreamCreated ( <a href="tqnpstream.html">TQNPStream</a>&nbsp;*, <a href="tqnpinstance.html#StreamMode-enum">StreamMode</a>&nbsp;&amp;&nbsp;smode )<tt> [virtual]</tt>
</h3>
<p> 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 <em>smode</em> to <a href="#StreamMode-enum">AsFileOnly</a>, in which case the data will be
delivered some time later to the <a href="#streamAsFile">streamAsFile</a>() function.
Otherwise, the data will be delivered in chunks to the <a href="#write">write</a>()
function, which must consume at least as much data as returned
by the most recent call to <a href="#writeReady">writeReady</a>().
<p> Note that the <a href="#StreamMode-enum">AsFileOnly</a> method is not supported by <a href="netscape-plugin.html#Netscape">Netscape</a>
2.0 and MSIE 3.0.
<p> The default implementation accepts any stream.
<h3 class=fn><a href="tqnpwidget.html">TQNPWidget</a>&nbsp;* <a name="newWindow"></a>TQNPInstance::newWindow ()<tt> [virtual]</tt>
</h3>
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 <a href="tqnpwidget.html">TQNPWidget</a> that provides the required
interface.
<p>Example: <a href="grapher-nsplugin-example.html#x2751">grapher/grapher.cpp</a>.
<h3 class=fn>void <a name="notifyURL"></a>TQNPInstance::notifyURL ( const&nbsp;char&nbsp;*&nbsp;url, <a href="tqnpinstance.html#Reason-enum">Reason</a>&nbsp;r, void&nbsp;*&nbsp;notifyData )<tt> [virtual]</tt>
</h3>
<p><b>This function is under development and is subject to change.</b>
<p> This function is <em>not tested</em>.
<p> Called whenever a <em>url</em> is notified after a call to
NPN_GetURLNotify with <em>notifyData</em>. The reason is given in <em>r</em>.
<p> It is an encapsulation of the NPP_URLNotify function of the
<a href="netscape-plugin.html#Netscape">Netscape</a> Plugin API.
<p> See also:
<a href="http://developer.netscape.com/docs/manuals/communicator/plugin/refpgur.htm#nppurlnotify">Netscape: NPP_URLNotify method</a>
<h3 class=fn>void <a name="postURL"></a>TQNPInstance::postURL ( const&nbsp;char&nbsp;*&nbsp;url, const&nbsp;char&nbsp;*&nbsp;window, uint&nbsp;len, const&nbsp;char&nbsp;*&nbsp;buf, bool&nbsp;file )
</h3>
<p><b>This function is under development and is subject to change.</b>
<p> This function is <em>not tested</em>.
<p> It is an interface to the NPN_PostURL function of the <a href="netscape-plugin.html#Netscape">Netscape</a>
Plugin API.
<p> Passes <em>url</em>, <em>window</em>, <em>buf</em>, <em>len</em>, and <em>file</em> to
NPN_PostURL.
<h3 class=fn>void <a name="print"></a>TQNPInstance::print ( <a href="tqpainter.html">TQPainter</a>&nbsp;* )<tt> [virtual]</tt>
</h3>
<p><b>This function is under development and is subject to change.</b>
<p> This function is <em>not tested</em>.
<p> Print the instance embedded in a page.
<p> It is an encapsulation of the NPP_Print function of the <a href="netscape-plugin.html#Netscape">Netscape</a>
Plugin API.
<h3 class=fn>bool <a name="printFullPage"></a>TQNPInstance::printFullPage ()<tt> [virtual]</tt>
</h3>
<p><b>This function is under development and is subject to change.</b>
<p> This function is <em>not tested</em>.
<p> It is an encapsulation of the NPP_Print function of the <a href="netscape-plugin.html#Netscape">Netscape</a>
Plugin API.
<h3 class=fn>void <a name="status"></a>TQNPInstance::status ( const&nbsp;char&nbsp;*&nbsp;msg )
</h3>
Sets the status message in the browser containing this instance to
<em>msg</em>.
<h3 class=fn>void <a name="streamAsFile"></a>TQNPInstance::streamAsFile ( <a href="tqnpstream.html">TQNPStream</a>&nbsp;*, const&nbsp;char&nbsp;*&nbsp;fname )<tt> [virtual]</tt>
</h3>
Called when a stream is delivered as a single file called <em>fname</em>
rather than as chunks. This may be simpler for a plugin to deal
with, but precludes any incremental behavior.
<p> Note that the <a href="#StreamMode-enum">AsFileOnly</a> method is not supported by <a href="netscape-plugin.html#Netscape">Netscape</a>
2.0 and MSIE 3.0.
<p> <p>See also <a href="#newStreamCreated">newStreamCreated</a>() and <a href="#newStream">newStream</a>().
<h3 class=fn>void <a name="streamDestroyed"></a>TQNPInstance::streamDestroyed ( <a href="tqnpstream.html">TQNPStream</a>&nbsp;* )<tt> [virtual]</tt>
</h3>
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.
<h3 class=fn>const char * <a name="userAgent"></a>TQNPInstance::userAgent () const
</h3>
Returns the user agent (browser name) containing this instance.
<h3 class=fn><a href="tqnpwidget.html">TQNPWidget</a>&nbsp;* <a name="widget"></a>TQNPInstance::widget ()
</h3>
Returns the plugin window created by <a href="#newWindow">newWindow</a>(), if any.
<h3 class=fn>int <a name="write"></a>TQNPInstance::write ( <a href="tqnpstream.html">TQNPStream</a>&nbsp;*, int&nbsp;offset, int&nbsp;len, void&nbsp;*&nbsp;buffer )<tt> [virtual]</tt>
</h3>
<p> Called when incoming data is available for processing by the
instance. The instance <em>must</em> consume at least the amount that it
returned in the most recent call to <a href="#writeReady">writeReady</a>(), but it may
consume up to the amount given by <em>len</em>. <em>buffer</em> is the data
available for consumption. The <em>offset</em> argument is merely an
informational value indicating the total amount of data that has
been consumed in prior calls.
<p> This function should return the amount of data actually consumed.
<p>Example: <a href="grapher-nsplugin-example.html#x2752">grapher/grapher.cpp</a>.
<h3 class=fn>int <a name="writeReady"></a>TQNPInstance::writeReady ( <a href="tqnpstream.html">TQNPStream</a>&nbsp;* )<tt> [virtual]</tt>
</h3>
Returns the minimum amount of data the instance is willing to
receive from the given stream.
<p> The default returns a very large value.
<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">TQt toolkit</a>.
Copyright &copy; 1995-2007
<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,58 +0,0 @@
<!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/include/tqnp.h:157 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPlugin Member List</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>Complete Member List for TQNPlugin</h1>
<p>This is the complete list of member functions for
<a href="tqnplugin.html">TQNPlugin</a>, including inherited members.
<ul>
<li><a href="tqnplugin.html#TQNPlugin">TQNPlugin</a>()
<li><a href="tqnplugin.html#~TQNPlugin">~TQNPlugin</a>()
<li><a href="tqnplugin.html#actual">actual</a>()
<li><a href="tqnplugin.html#create">create</a>()
<li><a href="tqnplugin.html#getJavaClass">getJavaClass</a>()
<li><a href="tqnplugin.html#getJavaEnv">getJavaEnv</a>()
<li><a href="tqnplugin.html#getMIMEDescription">getMIMEDescription</a>()
<li><a href="tqnplugin.html#getPluginDescriptionString">getPluginDescriptionString</a>()
<li><a href="tqnplugin.html#getPluginNameString">getPluginNameString</a>()
<li><a href="tqnplugin.html#getVersionInfo">getVersionInfo</a>()
<li><a href="tqnplugin.html#newInstance">newInstance</a>()
<li><a href="tqnplugin.html#unuseJavaClass">unuseJavaClass</a>()
</ul>
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,180 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPlugin Class</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>TQNPlugin Class Reference</h1>
<p>The TQNPlugin class provides the main factory for plugin objects.
<a href="#details">More...</a>
<p>This class is part of the <b>TQt Netscape Extension</b>.
<p><tt>#include &lt;<a href="tqnp-h.html">tqnp.h</a>&gt;</tt>
<p><a href="tqnplugin-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
<li class=fn>virtual <a href="#~TQNPlugin"><b>~TQNPlugin</b></a> ()</li>
<li class=fn>void <a href="#getVersionInfo"><b>getVersionInfo</b></a> ( int&nbsp;&amp;&nbsp;plugin_major, int&nbsp;&amp;&nbsp;plugin_minor, int&nbsp;&amp;&nbsp;browser_major, int&nbsp;&amp;&nbsp;browser_minor )</li>
<li class=fn>virtual TQNPInstance * <a href="#newInstance"><b>newInstance</b></a> () = 0</li>
<li class=fn>virtual const char * <a href="#getMIMEDescription"><b>getMIMEDescription</b></a> () const = 0</li>
<li class=fn>virtual const char * <a href="#getPluginNameString"><b>getPluginNameString</b></a> () const = 0</li>
<li class=fn>virtual const char * <a href="#getPluginDescriptionString"><b>getPluginDescriptionString</b></a> () const = 0</li>
<li class=fn>virtual void * <a href="#getJavaClass"><b>getJavaClass</b></a> ()</li>
<li class=fn>virtual void <a href="#unuseJavaClass"><b>unuseJavaClass</b></a> ()</li>
<li class=fn>void * <a href="#getJavaEnv"><b>getJavaEnv</b></a> () const</li>
</ul>
<h2>Static Public Members</h2>
<ul>
<li class=fn>TQNPlugin * <a href="#create"><b>create</b></a> ()</li>
<li class=fn>TQNPlugin * <a href="#actual"><b>actual</b></a> ()</li>
</ul>
<h2>Protected Members</h2>
<ul>
<li class=fn><a href="#TQNPlugin"><b>TQNPlugin</b></a> ()</li>
</ul>
<hr><a name="details"></a><h2>Detailed Description</h2>
<p> This class is defined in the <b>TQt <a href="netscape-plugin.html#Netscape">Netscape</a> Extension</b>, which can be found in the <tt>qt/extensions</tt> directory. It is not included in the main TQt API.
<p>
The TQNPlugin class provides the main factory for plugin objects.
<p>
<p> This class is the heart of the plugin. One instance of this object
is created when the plugin is <em>first</em> needed, by calling
<a href="#create">TQNPlugin::create</a>(), which must be implemented in your plugin code
to return some derived class of TQNPlugin. The one TQNPlugin object
creates all <a href="tqnpinstance.html">TQNPInstance</a> instances for a web browser running in a
single process.
<p> Additionally, if TQt is linked to the plugin as a dynamic library,
only one instance of <a href="ntqapplication.html">TQApplication</a> will exist <em>across all plugins that have been made with TQt</em>. So, your plugin should tread lightly
on global settings. Do not, for example, use
<a href="ntqapplication.html#setFont">TQApplication::setFont</a>() - that will change the font in every
widget of every TQt-based plugin currently loaded!
<hr><h2>Member Function Documentation</h2>
<h3 class=fn><a name="TQNPlugin"></a>TQNPlugin::TQNPlugin ()<tt> [protected]</tt>
</h3>
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 <a href="#create">TQNPlugin::create</a>() function.
<h3 class=fn><a name="~TQNPlugin"></a>TQNPlugin::~TQNPlugin ()<tt> [virtual]</tt>
</h3>
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 <a href="ntqapplication.html">TQApplication</a> will still exist at
this time, but will be deleted shortly after, just before the plugin
is deleted.
<h3 class=fn><a href="tqnplugin.html">TQNPlugin</a>&nbsp;* <a name="actual"></a>TQNPlugin::actual ()<tt> [static]</tt>
</h3>
Returns the plugin most recently returned by <a href="#create">TQNPlugin::create</a>().
<h3 class=fn><a href="tqnplugin.html">TQNPlugin</a>&nbsp;* <a name="create"></a>TQNPlugin::create ()<tt> [static]</tt>
</h3>
<p> This function must be implemented by your plugin code. It should return a
derived class of TQNPlugin.
<h3 class=fn>void * <a name="getJavaClass"></a>TQNPlugin::getJavaClass ()<tt> [virtual]</tt>
</h3>
Override this function to return a reference to the Java class that represents
the plugin. The default returns 0, indicating no class.
<p> If you override this class, you must also override
<a href="#unuseJavaClass">TQNPlugin::unuseJavaClass</a>().
<p> The return value is actually a <tt>jref</tt>; we use <tt>void*</tt> so as to
avoid burdening plugins which do not require Java.
<p> <p>See also <a href="#getJavaEnv">getJavaEnv</a>() and <a href="tqnpinstance.html#getJavaPeer">TQNPInstance::getJavaPeer</a>().
<h3 class=fn>void * <a name="getJavaEnv"></a>TQNPlugin::getJavaEnv () const
</h3>
Returns a pointer to the Java execution environment, or 0 if
either Java is disabled or an error occurred.
<p> The return value is actually a <tt>JRIEnv*</tt>; we use <tt>void*</tt> so as
to avoid burdening plugins which do not require Java.
<p> <p>See also <a href="#getJavaClass">getJavaClass</a>() and <a href="tqnpinstance.html#getJavaPeer">TQNPInstance::getJavaPeer</a>().
<h3 class=fn>const char * <a name="getMIMEDescription"></a>TQNPlugin::getMIMEDescription () const<tt> [pure virtual]</tt>
</h3>
<p> 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:
<p> <pre>
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";
}
</pre>
<h3 class=fn>const char * <a name="getPluginDescriptionString"></a>TQNPlugin::getPluginDescriptionString () const<tt> [pure virtual]</tt>
</h3>
<p> Returns a pointer to the plain-text description of the plugin.
<h3 class=fn>const char * <a name="getPluginNameString"></a>TQNPlugin::getPluginNameString () const<tt> [pure virtual]</tt>
</h3>
<p> Returns a pointer to the plain-text name of the plugin.
<h3 class=fn>void <a name="getVersionInfo"></a>TQNPlugin::getVersionInfo ( int&nbsp;&amp;&nbsp;plugin_major, int&nbsp;&amp;&nbsp;plugin_minor, int&nbsp;&amp;&nbsp;browser_major, int&nbsp;&amp;&nbsp;browser_minor )
</h3>
Populates <em>*</em><em>plugin_major</em> and <em>*</em><em>plugin_minor</em> with the
version of the plugin API and populates <em>*</em><em>browser_major</em> and
<em>*</em><em>browser_minor</em> with the version of the web browser.
<h3 class=fn><a href="tqnpinstance.html">TQNPInstance</a>&nbsp;* <a name="newInstance"></a>TQNPlugin::newInstance ()<tt> [pure virtual]</tt>
</h3>
<p> Override this function to return an appropriate derived class of
<a href="tqnpinstance.html">TQNPInstance</a>.
<h3 class=fn>void <a name="unuseJavaClass"></a>TQNPlugin::unuseJavaClass ()<tt> [virtual]</tt>
</h3>
This function is called when the plugin is shutting down. The
function should <em>unuse</em> the Java class returned earlier by
<a href="#getJavaClass">getJavaClass</a>().
<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">TQt toolkit</a>.
Copyright &copy; 1995-2007
<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,58 +0,0 @@
<!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/include/tqnp.h:50 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPStream Member List</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>Complete Member List for TQNPStream</h1>
<p>This is the complete list of member functions for
<a href="tqnpstream.html">TQNPStream</a>, including inherited members.
<ul>
<li><a href="tqnpstream.html#TQNPStream">TQNPStream</a>()
<li><a href="tqnpstream.html#~TQNPStream">~TQNPStream</a>()
<li><a href="tqnpstream.html#complete">complete</a>()
<li><a href="tqnpstream.html#end">end</a>()
<li><a href="tqnpstream.html#instance">instance</a>()
<li><a href="tqnpstream.html#lastModified">lastModified</a>()
<li><a href="tqnpstream.html#okay">okay</a>()
<li><a href="tqnpstream.html#requestRead">requestRead</a>()
<li><a href="tqnpstream.html#seekable">seekable</a>()
<li><a href="tqnpstream.html#type">type</a>()
<li><a href="tqnpstream.html#url">url</a>()
<li><a href="tqnpstream.html#write">write</a>()
</ul>
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,129 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPStream Class</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>TQNPStream Class Reference</h1>
<p>The TQNPStream class provides a stream of data provided to a TQNPInstance by the browser.
<a href="#details">More...</a>
<p>This class is part of the <b>TQt Netscape Extension</b>.
<p><tt>#include &lt;<a href="tqnp-h.html">tqnp.h</a>&gt;</tt>
<p><a href="tqnpstream-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
<li class=fn><a href="#~TQNPStream"><b>~TQNPStream</b></a> ()</li>
<li class=fn>const char * <a href="#url"><b>url</b></a> () const</li>
<li class=fn>uint <a href="#end"><b>end</b></a> () const</li>
<li class=fn>uint <a href="#lastModified"><b>lastModified</b></a> () const</li>
<li class=fn>const char * <a href="#type"><b>type</b></a> () const</li>
<li class=fn>bool <a href="#seekable"><b>seekable</b></a> () const</li>
<li class=fn>bool <a href="#okay"><b>okay</b></a> () const</li>
<li class=fn>bool <a href="#complete"><b>complete</b></a> () const</li>
<li class=fn>void <a href="#requestRead"><b>requestRead</b></a> ( int&nbsp;offset, uint&nbsp;length )</li>
<li class=fn>int <a href="#write"><b>write</b></a> ( int&nbsp;len, void&nbsp;*&nbsp;buffer )</li>
<li class=fn>TQNPInstance * <a href="#instance"><b>instance</b></a> ()</li>
<li class=fn><a href="#TQNPStream"><b>TQNPStream</b></a> ( TQNPInstance&nbsp;*&nbsp;in, const&nbsp;char&nbsp;*&nbsp;mt, _NPStream&nbsp;*&nbsp;st, bool&nbsp;se )</li>
</ul>
<hr><a name="details"></a><h2>Detailed Description</h2>
<p> This class is defined in the <b>TQt <a href="netscape-plugin.html#Netscape">Netscape</a> Extension</b>, which can be found in the <tt>qt/extensions</tt> directory. It is not included in the main TQt API.
<p>
The TQNPStream class provides a stream of data provided to a <a href="tqnpinstance.html">TQNPInstance</a> by the browser.
<p>
<p> Note that this is neither a <a href="tqtextstream.html">TQTextStream</a> nor a <a href="tqdatastream.html">TQDataStream</a>.
<p> <p>See also <a href="tqnpinstance.html#write">TQNPInstance::write</a>() and <a href="tqnpinstance.html#newStreamCreated">TQNPInstance::newStreamCreated</a>().
<hr><h2>Member Function Documentation</h2>
<h3 class=fn><a name="TQNPStream"></a>TQNPStream::TQNPStream ( <a href="tqnpinstance.html">TQNPInstance</a>&nbsp;*&nbsp;in, const&nbsp;char&nbsp;*&nbsp;mt, _NPStream&nbsp;*&nbsp;st, bool&nbsp;se )
</h3>
Creates a stream. Plugins should not call this; they should call
<a href="tqnpinstance.html#newStream">TQNPInstance::newStream</a>() if they need a stream.
<p> Takes a <a href="tqnpinstance.html">TQNPInstance</a> <em>in</em>, MIME type <em>mt</em>, a pointer to an
_NPStream <em>st</em> and a seekable flag <em>se</em>.
<h3 class=fn><a name="~TQNPStream"></a>TQNPStream::~TQNPStream ()
</h3>
Destroys the stream.
<h3 class=fn>bool <a name="complete"></a>TQNPStream::complete () const
</h3>
Returns TRUE if the stream has received all the data from the
source; otherwise returns FALSE.
<h3 class=fn>uint <a name="end"></a>TQNPStream::end () const
</h3>
Returns the length of the stream in bytes. The function might
return 0 for streams of unknown length.
<h3 class=fn><a href="tqnpinstance.html">TQNPInstance</a>&nbsp;* <a name="instance"></a>TQNPStream::instance ()
</h3>
<p> Returns the <a href="tqnpinstance.html">TQNPInstance</a> for which this stream was created.
<h3 class=fn>uint <a name="lastModified"></a>TQNPStream::lastModified () const
</h3>
Returns the time when the source of the stream was last modified.
<h3 class=fn>bool <a name="okay"></a>TQNPStream::okay () const
</h3>
Returns TRUE if no errors have occurred on the stream; otherwise
returns FALSE.
<h3 class=fn>void <a name="requestRead"></a>TQNPStream::requestRead ( int&nbsp;offset, uint&nbsp;length )
</h3>
Requests the section of the stream, of <em>length</em> bytes from <em>offset</em>, be sent to the <a href="tqnpinstance.html#write">TQNPInstance::write</a>() function of the
<a href="#instance">instance</a>() of this stream.
<h3 class=fn>bool <a name="seekable"></a>TQNPStream::seekable () const
</h3>
Returns TRUE if the stream is seekable; otherwise returns FALSE.
<h3 class=fn>const char * <a name="type"></a>TQNPStream::type () const
</h3>
Returns the MIME type of the stream.
<h3 class=fn>const char * <a name="url"></a>TQNPStream::url () const
</h3>
Returns the URL from which the stream was created.
<h3 class=fn>int <a name="write"></a>TQNPStream::write ( int&nbsp;len, void&nbsp;*&nbsp;buffer )
</h3>
Writes <em>len</em> bytes from <em>buffer</em> <em>to</em> the stream.
<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">TQt toolkit</a>.
Copyright &copy; 1995-2007
<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,340 +0,0 @@
<!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/include/tqnp.h:80 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPWidget Member List</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>Complete Member List for TQNPWidget</h1>
<p>This is the complete list of member functions for
<a href="tqnpwidget.html">TQNPWidget</a>, including inherited members.
<ul>
<li><a href="tqnpwidget.html#TQNPWidget">TQNPWidget</a>()
<li><a href="tqnpwidget.html#~TQNPWidget">~TQNPWidget</a>()
<li><a href="tqwidget.html#acceptDrops">acceptDrops</a>()
<li><a href="tqwidget.html#adjustSize">adjustSize</a>()
<li><a href="tqwidget.html#autoMask">autoMask</a>()
<li><a href="tqwidget.html#backgroundBrush">backgroundBrush</a>()
<li><a href="tqwidget.html#backgroundColor">backgroundColor</a>()
<li><a href="tqwidget.html#backgroundMode">backgroundMode</a>()
<li><a href="tqwidget.html#backgroundOrigin">backgroundOrigin</a>()
<li><a href="tqwidget.html#backgroundPixmap">backgroundPixmap</a>()
<li><a href="tqwidget.html#baseSize">baseSize</a>()
<li><a href="tqobject.html#blockSignals">blockSignals</a>()
<li><a href="tqwidget.html#caption">caption</a>()
<li><a href="tqobject.html#checkConnectArgs">checkConnectArgs</a>()
<li><a href="tqobject.html#child">child</a>()
<li><a href="tqwidget.html#childAt">childAt</a>()
<li><a href="tqobject.html#childEvent">childEvent</a>()
<li><a href="tqobject.html#children">children</a>()
<li><a href="tqwidget.html#childrenRect">childrenRect</a>()
<li><a href="tqwidget.html#childrenRegion">childrenRegion</a>()
<li><a href="tqobject.html#className">className</a>()
<li><a href="tqwidget.html#clearFocus">clearFocus</a>()
<li><a href="tqwidget.html#clearMask">clearMask</a>()
<li><a href="tqwidget.html#clearWFlags">clearWFlags</a>()
<li><a href="tqwidget.html#clipRegion">clipRegion</a>()
<li><a href="tqwidget.html#close">close</a>()
<li><a href="tqwidget.html#closeEvent">closeEvent</a>()
<li><a href="tqpaintdevice.html#cmd">cmd</a>()
<li><a href="tqwidget.html#colorGroup">colorGroup</a>()
<li><a href="tqobject.html#connect">connect</a>()
<li><a href="tqobject.html#connectNotify">connectNotify</a>()
<li><a href="tqwidget.html#constPolish">constPolish</a>()
<li><a href="tqwidget.html#contextMenuEvent">contextMenuEvent</a>()
<li><a href="tqwidget.html#create">create</a>()
<li><a href="tqwidget.html#cursor">cursor</a>()
<li><a href="tqobject.html#customEvent">customEvent</a>()
<li><a href="tqwidget.html#customWhatsThis">customWhatsThis</a>()
<li><a href="tqobject.html#deleteLater">deleteLater</a>()
<li><a href="tqwidget.html#destroy">destroy</a>()
<li><a href="tqobject.html#destroyed">destroyed</a>()
<li><a href="tqobject.html#disconnect">disconnect</a>()
<li><a href="tqobject.html#disconnectNotify">disconnectNotify</a>()
<li><a href="tqwidget.html#dragEnterEvent">dragEnterEvent</a>()
<li><a href="tqwidget.html#dragLeaveEvent">dragLeaveEvent</a>()
<li><a href="tqwidget.html#dragMoveEvent">dragMoveEvent</a>()
<li><a href="tqwidget.html#drawText">drawText</a>()
<li><a href="tqwidget.html#dropEvent">dropEvent</a>()
<li><a href="tqobject.html#dumpObjectInfo">dumpObjectInfo</a>()
<li><a href="tqobject.html#dumpObjectTree">dumpObjectTree</a>()
<li><a href="tqwidget.html#enabledChange">enabledChange</a>()
<li><a href="tqwidget.html#enterEvent">enterEvent</a>()
<li><a href="tqnpwidget.html#enterInstance">enterInstance</a>()
<li><a href="tqwidget.html#erase">erase</a>()
<li><a href="tqwidget.html#eraseColor">eraseColor</a>()
<li><a href="tqwidget.html#erasePixmap">erasePixmap</a>()
<li><a href="tqwidget.html#event">event</a>()
<li><a href="tqobject.html#eventFilter">eventFilter</a>()
<li><a href="tqwidget.html#find">find</a>()
<li><a href="tqwidget.html#focusData">focusData</a>()
<li><a href="tqwidget.html#focusInEvent">focusInEvent</a>()
<li><a href="tqwidget.html#focusNextPrevChild">focusNextPrevChild</a>()
<li><a href="tqwidget.html#focusOutEvent">focusOutEvent</a>()
<li><a href="tqwidget.html#focusPolicy">focusPolicy</a>()
<li><a href="tqwidget.html#focusProxy">focusProxy</a>()
<li><a href="tqwidget.html#focusWidget">focusWidget</a>()
<li><a href="tqwidget.html#font">font</a>()
<li><a href="tqwidget.html#fontChange">fontChange</a>()
<li><a href="tqwidget.html#fontInfo">fontInfo</a>()
<li><a href="tqwidget.html#fontMetrics">fontMetrics</a>()
<li><a href="tqwidget.html#foregroundColor">foregroundColor</a>()
<li><a href="tqwidget.html#frameGeometry">frameGeometry</a>()
<li><a href="tqwidget.html#frameSize">frameSize</a>()
<li><a href="tqwidget.html#geometry">geometry</a>()
<li><a href="tqwidget.html#getWFlags">getWFlags</a>()
<li><a href="tqwidget.html#grabKeyboard">grabKeyboard</a>()
<li><a href="tqwidget.html#grabMouse">grabMouse</a>()
<li><a href="tqpaintdevice.html#handle">handle</a>()
<li><a href="tqwidget.html#hasFocus">hasFocus</a>()
<li><a href="tqwidget.html#hasMouse">hasMouse</a>()
<li><a href="tqwidget.html#hasMouseTracking">hasMouseTracking</a>()
<li><a href="tqwidget.html#height">height</a>()
<li><a href="tqwidget.html#heightForWidth">heightForWidth</a>()
<li><a href="tqwidget.html#hide">hide</a>()
<li><a href="tqwidget.html#hideEvent">hideEvent</a>()
<li><a href="tqobject.html#highPriority">highPriority</a>()
<li><a href="tqwidget.html#icon">icon</a>()
<li><a href="tqwidget.html#iconText">iconText</a>()
<li><a href="tqwidget.html#iconify">iconify</a>()
<li><a href="tqwidget.html#imComposeEvent">imComposeEvent</a>()
<li><a href="tqwidget.html#imEndEvent">imEndEvent</a>()
<li><a href="tqwidget.html#imStartEvent">imStartEvent</a>()
<li><a href="tqobject.html#inherits">inherits</a>()
<li><a href="tqobject.html#insertChild">insertChild</a>()
<li><a href="tqobject.html#installEventFilter">installEventFilter</a>()
<li><a href="tqnpwidget.html#instance">instance</a>()
<li><a href="tqobject.html#isA">isA</a>()
<li><a href="tqwidget.html#isActiveWindow">isActiveWindow</a>()
<li><a href="tqwidget.html#isDesktop">isDesktop</a>()
<li><a href="tqwidget.html#isDialog">isDialog</a>()
<li><a href="tqwidget.html#isEnabled">isEnabled</a>()
<li><a href="tqwidget.html#isEnabledTo">isEnabledTo</a>()
<li><a href="tqwidget.html#isEnabledToTLW">isEnabledToTLW</a>()
<li><a href="tqpaintdevice.html#isExtDev">isExtDev</a>()
<li><a href="tqwidget.html#isFocusEnabled">isFocusEnabled</a>()
<li><a href="tqwidget.html#isFullScreen">isFullScreen</a>()
<li><a href="tqwidget.html#isHidden">isHidden</a>()
<li><a href="tqwidget.html#isInputMethodEnabled">isInputMethodEnabled</a>()
<li><a href="tqwidget.html#isMaximized">isMaximized</a>()
<li><a href="tqwidget.html#isMinimized">isMinimized</a>()
<li><a href="tqwidget.html#isModal">isModal</a>()
<li><a href="tqwidget.html#isPopup">isPopup</a>()
<li><a href="tqwidget.html#isShown">isShown</a>()
<li><a href="tqwidget.html#isTopLevel">isTopLevel</a>()
<li><a href="tqwidget.html#isUpdatesEnabled">isUpdatesEnabled</a>()
<li><a href="tqwidget.html#isVisible">isVisible</a>()
<li><a href="tqwidget.html#isVisibleTo">isVisibleTo</a>()
<li><a href="tqwidget.html#isVisibleToTLW">isVisibleToTLW</a>()
<li><a href="tqobject.html#isWidgetType">isWidgetType</a>()
<li><a href="tqwidget.html#keyPressEvent">keyPressEvent</a>()
<li><a href="tqwidget.html#keyReleaseEvent">keyReleaseEvent</a>()
<li><a href="tqwidget.html#keyboardGrabber">keyboardGrabber</a>()
<li><a href="tqobject.html#killTimer">killTimer</a>()
<li><a href="tqobject.html#killTimers">killTimers</a>()
<li><a href="tqwidget.html#layout">layout</a>()
<li><a href="tqwidget.html#leaveEvent">leaveEvent</a>()
<li><a href="tqnpwidget.html#leaveInstance">leaveInstance</a>()
<li><a href="tqwidget.html#lower">lower</a>()
<li><a href="tqwidget.html#macEvent">macEvent</a>()
<li><a href="tqwidget.html#mapFrom">mapFrom</a>()
<li><a href="tqwidget.html#mapFromGlobal">mapFromGlobal</a>()
<li><a href="tqwidget.html#mapFromParent">mapFromParent</a>()
<li><a href="tqwidget.html#mapTo">mapTo</a>()
<li><a href="tqwidget.html#mapToGlobal">mapToGlobal</a>()
<li><a href="tqwidget.html#mapToParent">mapToParent</a>()
<li><a href="tqwidget.html#maximumHeight">maximumHeight</a>()
<li><a href="tqwidget.html#maximumSize">maximumSize</a>()
<li><a href="tqwidget.html#maximumWidth">maximumWidth</a>()
<li><a href="tqobject.html#metaObject">metaObject</a>()
<li><a href="tqwidget.html#metric">metric</a>()
<li><a href="tqwidget.html#microFocusHint">microFocusHint</a>()
<li><a href="tqwidget.html#minimumHeight">minimumHeight</a>()
<li><a href="tqwidget.html#minimumSize">minimumSize</a>()
<li><a href="tqwidget.html#minimumSizeHint">minimumSizeHint</a>()
<li><a href="tqwidget.html#minimumWidth">minimumWidth</a>()
<li><a href="tqwidget.html#mouseDoubleClickEvent">mouseDoubleClickEvent</a>()
<li><a href="tqwidget.html#mouseGrabber">mouseGrabber</a>()
<li><a href="tqwidget.html#mouseMoveEvent">mouseMoveEvent</a>()
<li><a href="tqwidget.html#mousePressEvent">mousePressEvent</a>()
<li><a href="tqwidget.html#mouseReleaseEvent">mouseReleaseEvent</a>()
<li><a href="tqwidget.html#move">move</a>()
<li><a href="tqwidget.html#moveEvent">moveEvent</a>()
<li><a href="tqobject.html#name">name</a>()
<li><a href="tqobject.html#normalizeSignalSlot">normalizeSignalSlot</a>()
<li><a href="tqobject.html#objectTrees">objectTrees</a>()
<li><a href="tqwidget.html#ownCursor">ownCursor</a>()
<li><a href="tqwidget.html#ownFont">ownFont</a>()
<li><a href="tqwidget.html#ownPalette">ownPalette</a>()
<li><a href="tqwidget.html#paintEvent">paintEvent</a>()
<li><a href="tqpaintdevice.html#paintingActive">paintingActive</a>()
<li><a href="tqwidget.html#palette">palette</a>()
<li><a href="tqwidget.html#paletteBackgroundColor">paletteBackgroundColor</a>()
<li><a href="tqwidget.html#paletteBackgroundPixmap">paletteBackgroundPixmap</a>()
<li><a href="tqwidget.html#paletteChange">paletteChange</a>()
<li><a href="tqwidget.html#paletteForegroundColor">paletteForegroundColor</a>()
<li><a href="tqobject.html#parent">parent</a>()
<li><a href="tqwidget.html#parentWidget">parentWidget</a>()
<li><a href="tqwidget.html#polish">polish</a>()
<li><a href="tqwidget.html#pos">pos</a>()
<li><a href="tqobject.html#property">property</a>()
<li><a href="tqobject.html#queryList">queryList</a>()
<li><a href="tqwidget.html#raise">raise</a>()
<li><a href="tqwidget.html#recreate">recreate</a>()
<li><a href="tqwidget.html#rect">rect</a>()
<li><a href="tqwidget.html#releaseKeyboard">releaseKeyboard</a>()
<li><a href="tqwidget.html#releaseMouse">releaseMouse</a>()
<li><a href="tqobject.html#removeChild">removeChild</a>()
<li><a href="tqobject.html#removeEventFilter">removeEventFilter</a>()
<li><a href="tqwidget.html#repaint">repaint</a>()
<li><a href="tqwidget.html#reparent">reparent</a>()
<li><a href="tqwidget.html#resetInputContext">resetInputContext</a>()
<li><a href="tqwidget.html#resize">resize</a>()
<li><a href="tqwidget.html#resizeEvent">resizeEvent</a>()
<li><a href="tqwidget.html#scroll">scroll</a>()
<li><a href="tqobject.html#sender">sender</a>()
<li><a href="tqwidget.html#setAcceptDrops">setAcceptDrops</a>()
<li><a href="tqwidget.html#setActiveWindow">setActiveWindow</a>()
<li><a href="tqwidget.html#setAutoMask">setAutoMask</a>()
<li><a href="tqwidget.html#setBackgroundColor">setBackgroundColor</a>()
<li><a href="tqwidget.html#setBackgroundMode">setBackgroundMode</a>()
<li><a href="tqwidget.html#setBackgroundOrigin">setBackgroundOrigin</a>()
<li><a href="tqwidget.html#setBackgroundPixmap">setBackgroundPixmap</a>()
<li><a href="tqwidget.html#setBaseSize">setBaseSize</a>()
<li><a href="tqwidget.html#setCaption">setCaption</a>()
<li><a href="tqwidget.html#setCursor">setCursor</a>()
<li><a href="tqwidget.html#setDisabled">setDisabled</a>()
<li><a href="tqwidget.html#setEnabled">setEnabled</a>()
<li><a href="tqwidget.html#setEraseColor">setEraseColor</a>()
<li><a href="tqwidget.html#setErasePixmap">setErasePixmap</a>()
<li><a href="tqwidget.html#setFixedHeight">setFixedHeight</a>()
<li><a href="tqwidget.html#setFixedSize">setFixedSize</a>()
<li><a href="tqwidget.html#setFixedWidth">setFixedWidth</a>()
<li><a href="tqwidget.html#setFocus">setFocus</a>()
<li><a href="tqwidget.html#setFocusPolicy">setFocusPolicy</a>()
<li><a href="tqwidget.html#setFocusProxy">setFocusProxy</a>()
<li><a href="tqwidget.html#setFont">setFont</a>()
<li><a href="tqwidget.html#setGeometry">setGeometry</a>()
<li><a href="tqwidget.html#setHidden">setHidden</a>()
<li><a href="tqwidget.html#setIcon">setIcon</a>()
<li><a href="tqwidget.html#setIconText">setIconText</a>()
<li><a href="tqwidget.html#setInputMethodEnabled">setInputMethodEnabled</a>()
<li><a href="tqwidget.html#setKeyCompression">setKeyCompression</a>()
<li><a href="tqwidget.html#setMask">setMask</a>()
<li><a href="tqwidget.html#setMaximumHeight">setMaximumHeight</a>()
<li><a href="tqwidget.html#setMaximumSize">setMaximumSize</a>()
<li><a href="tqwidget.html#setMaximumWidth">setMaximumWidth</a>()
<li><a href="tqwidget.html#setMicroFocusHint">setMicroFocusHint</a>()
<li><a href="tqwidget.html#setMinimumHeight">setMinimumHeight</a>()
<li><a href="tqwidget.html#setMinimumSize">setMinimumSize</a>()
<li><a href="tqwidget.html#setMinimumWidth">setMinimumWidth</a>()
<li><a href="tqwidget.html#setMouseTracking">setMouseTracking</a>()
<li><a href="tqobject.html#setName">setName</a>()
<li><a href="tqwidget.html#setPalette">setPalette</a>()
<li><a href="tqwidget.html#setPaletteBackgroundColor">setPaletteBackgroundColor</a>()
<li><a href="tqwidget.html#setPaletteBackgroundPixmap">setPaletteBackgroundPixmap</a>()
<li><a href="tqwidget.html#setPaletteForegroundColor">setPaletteForegroundColor</a>()
<li><a href="tqobject.html#setProperty">setProperty</a>()
<li><a href="tqwidget.html#setShown">setShown</a>()
<li><a href="tqwidget.html#setSizeIncrement">setSizeIncrement</a>()
<li><a href="tqwidget.html#setSizePolicy">setSizePolicy</a>()
<li><a href="tqwidget.html#setStyle">setStyle</a>()
<li><a href="tqwidget.html#setTabOrder">setTabOrder</a>()
<li><a href="tqwidget.html#setUpdatesEnabled">setUpdatesEnabled</a>()
<li><a href="tqwidget.html#setWFlags">setWFlags</a>()
<li><a href="tqwidget.html#setWindowOpacity">setWindowOpacity</a>()
<li><a href="tqwidget.html#setWindowState">setWindowState</a>()
<li><a href="tqwidget.html#show">show</a>()
<li><a href="tqwidget.html#showEvent">showEvent</a>()
<li><a href="tqwidget.html#showFullScreen">showFullScreen</a>()
<li><a href="tqwidget.html#showMaximized">showMaximized</a>()
<li><a href="tqwidget.html#showMinimized">showMinimized</a>()
<li><a href="tqwidget.html#showNormal">showNormal</a>()
<li><a href="tqobject.html#signalsBlocked">signalsBlocked</a>()
<li><a href="tqwidget.html#size">size</a>()
<li><a href="tqwidget.html#sizeHint">sizeHint</a>()
<li><a href="tqwidget.html#sizeIncrement">sizeIncrement</a>()
<li><a href="tqwidget.html#sizePolicy">sizePolicy</a>()
<li><a href="tqwidget.html#stackUnder">stackUnder</a>()
<li><a href="tqobject.html#startTimer">startTimer</a>()
<li><a href="tqwidget.html#style">style</a>()
<li><a href="tqwidget.html#styleChange">styleChange</a>()
<li><a href="tqwidget.html#tabletEvent">tabletEvent</a>()
<li><a href="tqwidget.html#testWFlags">testWFlags</a>()
<li><a href="tqobject.html#timerEvent">timerEvent</a>()
<li><a href="tqwidget.html#topLevelWidget">topLevelWidget</a>()
<li><a href="tqobject.html#tr">tr</a>()
<li><a href="tqobject.html#trUtf8">trUtf8</a>()
<li><a href="tqwidget.html#unsetCursor">unsetCursor</a>()
<li><a href="tqwidget.html#unsetFont">unsetFont</a>()
<li><a href="tqwidget.html#unsetPalette">unsetPalette</a>()
<li><a href="tqwidget.html#update">update</a>()
<li><a href="tqwidget.html#updateGeometry">updateGeometry</a>()
<li><a href="tqwidget.html#updateMask">updateMask</a>()
<li><a href="tqwidget.html#visibleRect">visibleRect</a>()
<li><a href="tqwidget.html#wheelEvent">wheelEvent</a>()
<li><a href="tqwidget.html#width">width</a>()
<li><a href="tqwidget.html#winEvent">winEvent</a>()
<li><a href="tqwidget.html#winId">winId</a>()
<li><a href="tqwidget.html#windowActivationChange">windowActivationChange</a>()
<li><a href="tqwidget.html#windowOpacity">windowOpacity</a>()
<li><a href="tqwidget.html#windowState">windowState</a>()
<li><a href="tqwidget.html#x">x</a>()
<li><a href="tqpaintdevice.html#x11AppCells">x11AppCells</a>()
<li><a href="tqpaintdevice.html#x11AppColormap">x11AppColormap</a>()
<li><a href="tqpaintdevice.html#x11AppDefaultColormap">x11AppDefaultColormap</a>()
<li><a href="tqpaintdevice.html#x11AppDefaultVisual">x11AppDefaultVisual</a>()
<li><a href="tqpaintdevice.html#x11AppDepth">x11AppDepth</a>()
<li><a href="tqpaintdevice.html#x11AppDisplay">x11AppDisplay</a>()
<li><a href="tqpaintdevice.html#x11AppDpiX">x11AppDpiX</a>()
<li><a href="tqpaintdevice.html#x11AppDpiY">x11AppDpiY</a>()
<li><a href="tqpaintdevice.html#x11AppRootWindow">x11AppRootWindow</a>()
<li><a href="tqpaintdevice.html#x11AppScreen">x11AppScreen</a>()
<li><a href="tqpaintdevice.html#x11AppVisual">x11AppVisual</a>()
<li><a href="tqpaintdevice.html#x11Cells">x11Cells</a>()
<li><a href="tqpaintdevice.html#x11Colormap">x11Colormap</a>()
<li><a href="tqpaintdevice.html#x11DefaultColormap">x11DefaultColormap</a>()
<li><a href="tqpaintdevice.html#x11DefaultVisual">x11DefaultVisual</a>()
<li><a href="tqpaintdevice.html#x11Depth">x11Depth</a>()
<li><a href="tqpaintdevice.html#x11Display">x11Display</a>()
<li><a href="tqwidget.html#x11Event">x11Event</a>()
<li><a href="tqpaintdevice.html#x11Screen">x11Screen</a>()
<li><a href="tqpaintdevice.html#x11SetAppDpiX">x11SetAppDpiX</a>()
<li><a href="tqpaintdevice.html#x11SetAppDpiY">x11SetAppDpiY</a>()
<li><a href="tqpaintdevice.html#x11Visual">x11Visual</a>()
<li><a href="tqwidget.html#y">y</a>()
</ul>
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -1,126 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TQNPWidget Class</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>TQNPWidget Class Reference</h1>
<p>The TQNPWidget class provides a TQWidget that is a web browser plugin window.
<a href="#details">More...</a>
<p>This class is part of the <b>TQt Netscape Extension</b>.
<p><tt>#include &lt;<a href="tqnp-h.html">tqnp.h</a>&gt;</tt>
<p>Inherits <a href="tqwidget.html">TQWidget</a>.
<p><a href="tqnpwidget-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
<li class=fn><a href="#TQNPWidget"><b>TQNPWidget</b></a> ()</li>
<li class=fn><a href="#~TQNPWidget"><b>~TQNPWidget</b></a> ()</li>
<li class=fn>virtual void <a href="#enterInstance"><b>enterInstance</b></a> ()</li>
<li class=fn>virtual void <a href="#leaveInstance"><b>leaveInstance</b></a> ()</li>
<li class=fn>TQNPInstance * <a href="#instance"><b>instance</b></a> ()</li>
</ul>
<hr><a name="details"></a><h2>Detailed Description</h2>
<p> This class is defined in the <b>TQt <a href="netscape-plugin.html#Netscape">Netscape</a> Extension</b>, which can be found in the <tt>qt/extensions</tt> directory. It is not included in the main TQt API.
<p>
The TQNPWidget class provides a <a href="tqwidget.html">TQWidget</a> that is a web browser plugin window.
<p>
<p> 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
<a href="tqnpinstance.html#newWindow">TQNPInstance::newWindow</a>() is called by the browser.
<p> A common way to develop a plugin widget is to develop it as a
stand-alone application window, then make it a <em>child</em> of a
plugin widget to use it as a browser plugin. The technique is:
<p> <pre>
class MyPluginWindow : public TQNPWidget
{
<a href="tqwidget.html">TQWidget</a>* 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-&gt;<a href="tqwidget.html#setBackgroundColor">setBackgroundColor</a>( <a href="tqwidget.html#backgroundColor">backgroundColor</a>() );
// Fill the plugin widget
child-&gt;<a href="tqwidget.html#setGeometry">setGeometry</a>( 0, 0, width(), height() );
}
void resizeEvent(TQResizeEvent*)
{
// Fill the plugin widget
child-&gt;<a href="tqwidget.html#resize">resize</a>(<a href="tqwidget.html#size">size</a>());
}
};
</pre>
<p> The default implementation is an empty window.
<hr><h2>Member Function Documentation</h2>
<h3 class=fn><a name="TQNPWidget"></a>TQNPWidget::TQNPWidget ()
</h3>
Creates a TQNPWidget.
<h3 class=fn><a name="~TQNPWidget"></a>TQNPWidget::~TQNPWidget ()
</h3>
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 <a href="tqwidget.html#winId">TQWidget::winId</a>() of the window when the window is resized, but
this should not affect normal widget behavior.
<h3 class=fn>void <a name="enterInstance"></a>TQNPWidget::enterInstance ()<tt> [virtual]</tt>
</h3>
Called when the mouse enters the plugin window. Does nothing by
default.
<p>Example: <a href="grapher-nsplugin-example.html#x2753">grapher/grapher.cpp</a>.
<h3 class=fn><a href="tqnpinstance.html">TQNPInstance</a>&nbsp;* <a name="instance"></a>TQNPWidget::instance ()
</h3>
Returns the instance for which this widget is the plugin window.
<h3 class=fn>void <a name="leaveInstance"></a>TQNPWidget::leaveInstance ()<tt> [virtual]</tt>
</h3>
Called when the mouse leaves the plugin window. Does nothing by
default.
<p>Example: <a href="grapher-nsplugin-example.html#x2754">grapher/grapher.cpp</a>.
<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">TQt toolkit</a>.
Copyright &copy; 1995-2007
<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -36,7 +36,7 @@ body { background: #ffffff; color: black; }
<p>All the functions in this class are <a href="threads.html#reentrant">reentrant</a> when TQt is built with thread support.</p>
<p><tt>#include &lt;<a href="tqobject-h.html">tqobject.h</a>&gt;</tt>
<p>Inherits <a href="tqt.html">TQt</a>.
-<p>Inherited by <a href="tqaccel.html">TQAccel</a>, <a href="tqaccessibleobject.html">TQAccessibleObject</a>, <a href="tqaction.html">TQAction</a>, <a href="ntqapplication.html">TQApplication</a>, <a href="tqassistantclient.html">TQAssistantClient</a>, <a href="tqdatapump.html">TQDataPump</a>, <a href="tqwidget.html">TQWidget</a>, <a href="tqcanvas.html">TQCanvas</a>, <a href="tqstyle.html">TQStyle</a>, <a href="tqclipboard.html">TQClipboard</a>, <a href="tqdns.html">TQDns</a>, <a href="tqlayout.html">TQLayout</a>, <a href="tqdragobject.html">TQDragObject</a>, <a href="tqeditorfactory.html">TQEditorFactory</a>, <a href="tqeventloop.html">TQEventLoop</a>, <a href="tqfileiconprovider.html">TQFileIconProvider</a>, <a href="tqnetworkprotocol.html">TQNetworkProtocol</a>, <a href="tqnetworkoperation.html">TQNetworkOperation</a>, <a href="tqnpinstance.html">TQNPInstance</a>, <a href="tqobjectcleanuphandler.html">TQObjectCleanupHandler</a>, <a href="tqprocess.html">TQProcess</a>, <a href="tqserversocket.html">TQServerSocket</a>, <a href="tqsessionmanager.html">TQSessionManager</a>, <a href="tqsignal.html">TQSignal</a>, <a href="tqsignalmapper.html">TQSignalMapper</a>, <a href="tqsocket.html">TQSocket</a>, <a href="tqsocketnotifier.html">TQSocketNotifier</a>, <a href="tqsound.html">TQSound</a>, <a href="tqsqldatabase.html">TQSqlDatabase</a>, <a href="tqsqldriver.html">TQSqlDriver</a>, <a href="tqsqlform.html">TQSqlForm</a>, <a href="tqstylesheet.html">TQStyleSheet</a>, <a href="tqtimer.html">TQTimer</a>, <a href="tqtooltipgroup.html">TQToolTipGroup</a>, <a href="tqtranslator.html">TQTranslator</a>, <a href="tqurloperator.html">TQUrlOperator</a>, and <a href="tqvalidator.html">TQValidator</a>.
-<p>Inherited by <a href="tqaccel.html">TQAccel</a>, <a href="tqaccessibleobject.html">TQAccessibleObject</a>, <a href="tqaction.html">TQAction</a>, <a href="ntqapplication.html">TQApplication</a>, <a href="tqassistantclient.html">TQAssistantClient</a>, <a href="tqdatapump.html">TQDataPump</a>, <a href="tqwidget.html">TQWidget</a>, <a href="tqcanvas.html">TQCanvas</a>, <a href="tqstyle.html">TQStyle</a>, <a href="tqclipboard.html">TQClipboard</a>, <a href="tqdns.html">TQDns</a>, <a href="tqlayout.html">TQLayout</a>, <a href="tqdragobject.html">TQDragObject</a>, <a href="tqeditorfactory.html">TQEditorFactory</a>, <a href="tqeventloop.html">TQEventLoop</a>, <a href="tqfileiconprovider.html">TQFileIconProvider</a>, <a href="tqnetworkprotocol.html">TQNetworkProtocol</a>, <a href="tqnetworkoperation.html">TQNetworkOperation</a>, <a href="tqobjectcleanuphandler.html">TQObjectCleanupHandler</a>, <a href="tqprocess.html">TQProcess</a>, <a href="tqserversocket.html">TQServerSocket</a>, <a href="tqsessionmanager.html">TQSessionManager</a>, <a href="tqsignal.html">TQSignal</a>, <a href="tqsignalmapper.html">TQSignalMapper</a>, <a href="tqsocket.html">TQSocket</a>, <a href="tqsocketnotifier.html">TQSocketNotifier</a>, <a href="tqsound.html">TQSound</a>, <a href="tqsqldatabase.html">TQSqlDatabase</a>, <a href="tqsqldriver.html">TQSqlDriver</a>, <a href="tqsqlform.html">TQSqlForm</a>, <a href="tqstylesheet.html">TQStyleSheet</a>, <a href="tqtimer.html">TQTimer</a>, <a href="tqtooltipgroup.html">TQToolTipGroup</a>, <a href="tqtranslator.html">TQTranslator</a>, <a href="tqurloperator.html">TQUrlOperator</a>, and <a href="tqvalidator.html">TQValidator</a>.
<p><a href="tqobject-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
@ -877,7 +877,7 @@ timer events for the object.
functionality, and also more general information about timers.
<p> <p>See also <a href="#startTimer">startTimer</a>(), <a href="#killTimer">killTimer</a>(), <a href="#killTimers">killTimers</a>(), and <a href="#event">event</a>().
<p>Examples: <a href="biff-example.html#x1959">biff/biff.cpp</a>, <a href="dclock-example.html#x1102">dclock/dclock.cpp</a>, <a href="forever-example.html#x1048">forever/forever.cpp</a>, <a href="grapher-nsplugin-example.html#x2755">grapher/grapher.cpp</a>, <a href="qmag-example.html#x1781">qmag/qmag.cpp</a>, and <a href="xform-example.html#x1232">xform/xform.cpp</a>.
<p>Examples: <a href="biff-example.html#x1959">biff/biff.cpp</a>, <a href="dclock-example.html#x1102">dclock/dclock.cpp</a>, <a href="forever-example.html#x1048">forever/forever.cpp</a>, <a href="qmag-example.html#x1781">qmag/qmag.cpp</a>, and <a href="xform-example.html#x1232">xform/xform.cpp</a>.
<h3 class=fn><a href="tqstring.html">TQString</a> <a name="tr"></a>TQObject::tr ( const&nbsp;char&nbsp;*&nbsp;sourceText, const&nbsp;char&nbsp;*&nbsp;comment )<tt> [static]</tt>
</h3>

@ -691,7 +691,7 @@ mean counter-clockwise while negative values mean the clockwise
direction. Zero degrees is at the 3 o'clock position.
<p> <p>See also <a href="#drawArc">drawArc</a>() and <a href="#drawChord">drawChord</a>().
<p>Examples: <a href="drawdemo-example.html#x1069">drawdemo/drawdemo.cpp</a>, <a href="grapher-nsplugin-example.html#x2757">grapher/grapher.cpp</a>, <a href="tutorial1-10.html#x2349">t10/cannon.cpp</a>, and <a href="tutorial1-09.html#x2340">t9/cannon.cpp</a>.
<p>Examples: <a href="drawdemo-example.html#x1069">drawdemo/drawdemo.cpp</a>, <a href="tutorial1-10.html#x2349">t10/cannon.cpp</a>, and <a href="tutorial1-09.html#x2340">t9/cannon.cpp</a>.
<h3 class=fn>void <a name="drawPie-2"></a>TQPainter::drawPie ( const&nbsp;<a href="tqrect.html">TQRect</a>&nbsp;&amp;&nbsp;r, int&nbsp;a, int&nbsp;alen )
</h3>
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
@ -711,7 +711,7 @@ the pixmap.
when painting on a <a href="tqprinter.html">TQPrinter</a>.
<p> <p>See also <a href="tqimage.html#bitBlt">bitBlt</a>() and <a href="tqpixmap.html#setMask">TQPixmap::setMask</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2758">grapher/grapher.cpp</a>, <a href="picture-example.html#x114">picture/picture.cpp</a>, <a href="tqdir-example.html#x1832">tqdir/tqdir.cpp</a>, <a href="qmag-example.html#x1782">qmag/qmag.cpp</a>, <a href="showimg-example.html#x1337">showimg/showimg.cpp</a>, <a href="tutorial1-10.html#x2350">t10/cannon.cpp</a>, and <a href="xform-example.html#x1235">xform/xform.cpp</a>.
<p>Examples: <a href="picture-example.html#x114">picture/picture.cpp</a>, <a href="tqdir-example.html#x1832">tqdir/tqdir.cpp</a>, <a href="qmag-example.html#x1782">qmag/qmag.cpp</a>, <a href="showimg-example.html#x1337">showimg/showimg.cpp</a>, <a href="tutorial1-10.html#x2350">t10/cannon.cpp</a>, and <a href="xform-example.html#x1235">xform/xform.cpp</a>.
<h3 class=fn>void <a name="drawPixmap-2"></a>TQPainter::drawPixmap ( const&nbsp;<a href="tqpoint.html">TQPoint</a>&nbsp;&amp;&nbsp;p, const&nbsp;<a href="tqpixmap.html">TQPixmap</a>&nbsp;&amp;&nbsp;pm, const&nbsp;<a href="tqrect.html">TQRect</a>&nbsp;&amp;&nbsp;sr )
</h3>
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
@ -786,7 +786,7 @@ Draws a rectangle with upper left corner at <em>(x, y)</em> and with
width <em>w</em> and height <em>h</em>.
<p> <p>See also <a href="tqpen.html">TQPen</a> and <a href="#drawRoundRect">drawRoundRect</a>().
<p>Examples: <a href="drawdemo-example.html#x1070">drawdemo/drawdemo.cpp</a>, <a href="picture-example.html#x116">picture/picture.cpp</a>, <a href="tutorial1-10.html#x2351">t10/cannon.cpp</a>, <a href="tutorial1-11.html#x2366">t11/cannon.cpp</a>, <a href="tutorial1-09.html#x2341">t9/cannon.cpp</a>, <a href="tooltip-example.html#x444">tooltip/tooltip.cpp</a>, and <a href="trivial-nsplugin-example.html#x2737">trivial/trivial.cpp</a>.
<p>Examples: <a href="drawdemo-example.html#x1070">drawdemo/drawdemo.cpp</a>, <a href="picture-example.html#x116">picture/picture.cpp</a>, <a href="tutorial1-10.html#x2351">t10/cannon.cpp</a>, <a href="tutorial1-11.html#x2366">t11/cannon.cpp</a>, <a href="tutorial1-09.html#x2341">t9/cannon.cpp</a> and <a href="tooltip-example.html#x444">tooltip/tooltip.cpp</a>.
<h3 class=fn>void <a name="drawRect-2"></a>TQPainter::drawRect ( const&nbsp;<a href="tqrect.html">TQRect</a>&nbsp;&amp;&nbsp;r )
</h3>
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
@ -821,7 +821,7 @@ rectangle and the text is aligned within that rectangle in
accordance with the alignment flags.
<p> <p>See also <a href="#TextDirection-enum">TQPainter::TextDirection</a>.
<p>Examples: <a href="desktop-example.html#x1736">desktop/desktop.cpp</a>, <a href="drawdemo-example.html#x1072">drawdemo/drawdemo.cpp</a>, <a href="grapher-nsplugin-example.html#x2760">grapher/grapher.cpp</a>, <a href="picture-example.html#x117">picture/picture.cpp</a>, <a href="progress-example.html#x74">progress/progress.cpp</a>, <a href="tutorial1-08.html#x2335">t8/cannon.cpp</a>, and <a href="trivial-nsplugin-example.html#x2738">trivial/trivial.cpp</a>.
<p>Examples: <a href="desktop-example.html#x1736">desktop/desktop.cpp</a>, <a href="drawdemo-example.html#x1072">drawdemo/drawdemo.cpp</a>, <a href="picture-example.html#x117">picture/picture.cpp</a>, <a href="progress-example.html#x74">progress/progress.cpp</a> and <a href="tutorial1-08.html#x2335">t8/cannon.cpp</a>.
<h3 class=fn>void <a name="drawText-2"></a>TQPainter::drawText ( int&nbsp;x, int&nbsp;y, const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;, int&nbsp;len = -1, <a href="tqpainter.html#TextDirection-enum">TextDirection</a>&nbsp;dir = Auto )
</h3>
@ -1203,7 +1203,7 @@ coordinates given for the clip region are taken to be model
coordinates.
<p> <p>See also <a href="#setClipRegion">setClipRegion</a>(), <a href="#clipRegion">clipRegion</a>(), <a href="#setClipping">setClipping</a>(), and <a href="#CoordinateMode-enum">TQPainter::CoordinateMode</a>.
<p>Examples: <a href="grapher-nsplugin-example.html#x2762">grapher/grapher.cpp</a>, <a href="progress-example.html#x77">progress/progress.cpp</a>, <a href="showimg-example.html#x1339">showimg/showimg.cpp</a>, <a href="splitter-example.html#x1298">splitter/splitter.cpp</a>, and <a href="trivial-nsplugin-example.html#x2739">trivial/trivial.cpp</a>.
<p>Examples: <a href="progress-example.html#x77">progress/progress.cpp</a>, <a href="showimg-example.html#x1339">showimg/showimg.cpp</a> and <a href="splitter-example.html#x1298">splitter/splitter.cpp</a>.
<h3 class=fn>void <a name="setClipRect-2"></a>TQPainter::setClipRect ( const&nbsp;<a href="tqrect.html">TQRect</a>&nbsp;&amp;&nbsp;r, <a href="tqpainter.html#CoordinateMode-enum">CoordinateMode</a>&nbsp;m = CoordDevice )
</h3>
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
@ -1234,7 +1234,7 @@ Sets the painter's font to <em>font</em>.
color is the same as the pen color.
<p> <p>See also <a href="#font">font</a>() and <a href="#drawText">drawText</a>().
<p>Examples: <a href="drawdemo-example.html#x1075">drawdemo/drawdemo.cpp</a>, <a href="grapher-nsplugin-example.html#x2763">grapher/grapher.cpp</a>, <a href="hello-example.html#x1636">hello/hello.cpp</a>, <a href="picture-example.html#x121">picture/picture.cpp</a>, <a href="qwerty-example.html#x385">qwerty/qwerty.cpp</a>, <a href="tutorial1-13.html#x2403">t13/cannon.cpp</a>, and <a href="xform-example.html#x1240">xform/xform.cpp</a>.
<p>Examples: <a href="drawdemo-example.html#x1075">drawdemo/drawdemo.cpp</a>, <a href="hello-example.html#x1636">hello/hello.cpp</a>, <a href="picture-example.html#x121">picture/picture.cpp</a>, <a href="qwerty-example.html#x385">qwerty/qwerty.cpp</a>, <a href="tutorial1-13.html#x2403">t13/cannon.cpp</a>, and <a href="xform-example.html#x1240">xform/xform.cpp</a>.
<h3 class=fn>void <a name="setPen"></a>TQPainter::setPen ( const&nbsp;<a href="tqpen.html">TQPen</a>&nbsp;&amp;&nbsp;pen )
</h3>
Sets a new painter pen.

@ -401,7 +401,7 @@ or if the pixmap has not been initialized yet.
</h3>
Fills the pixmap with the color <em>fillColor</em>.
<p>Examples: <a href="tutorial2-08.html#x2606">chart/setdataform.cpp</a>, <a href="desktop-example.html#x1742">desktop/desktop.cpp</a>, <a href="grapher-nsplugin-example.html#x2765">grapher/grapher.cpp</a>, <a href="hello-example.html#x1638">hello/hello.cpp</a>, <a href="tutorial1-10.html#x2358">t10/cannon.cpp</a>, <a href="themes-example.html#x292">themes/metal.cpp</a>, and <a href="xform-example.html#x1245">xform/xform.cpp</a>.
<p>Examples: <a href="tutorial2-08.html#x2606">chart/setdataform.cpp</a>, <a href="desktop-example.html#x1742">desktop/desktop.cpp</a>, <a href="hello-example.html#x1638">hello/hello.cpp</a>, <a href="tutorial1-10.html#x2358">t10/cannon.cpp</a>, <a href="themes-example.html#x292">themes/metal.cpp</a>, and <a href="xform-example.html#x1245">xform/xform.cpp</a>.
<h3 class=fn>void <a name="fill-2"></a>TQPixmap::fill ( const&nbsp;<a href="tqwidget.html">TQWidget</a>&nbsp;*&nbsp;widget, int&nbsp;xofs, int&nbsp;yofs )
</h3>
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
@ -652,7 +652,7 @@ or <em>h</em> is 0, the pixmap becomes a null pixmap.
created. New pixels will be uninitialized (random) if the pixmap
is expanded.
<p>Examples: <a href="desktop-example.html#x1744">desktop/desktop.cpp</a> and <a href="grapher-nsplugin-example.html#x2766">grapher/grapher.cpp</a>.
<p>Examples: <a href="desktop-example.html#x1744">desktop/desktop.cpp</a>.
<h3 class=fn>void <a name="resize-2"></a>TQPixmap::resize ( const&nbsp;<a href="tqsize.html">TQSize</a>&nbsp;&amp;&nbsp;size )
</h3>
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

@ -226,7 +226,7 @@ several items to a single slot (most often if the user selects
from an array). This signal is useful in such cases.
<p> <p>See also <a href="#highlighted">highlighted</a>() and <a href="tqmenudata.html#insertItem">TQMenuData::insertItem</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2767">grapher/grapher.cpp</a>, <a href="helpviewer-example.html#x1004">helpviewer/helpwindow.cpp</a>, <a href="tqdir-example.html#x1835">tqdir/tqdir.cpp</a>, <a href="qwerty-example.html#x386">qwerty/qwerty.cpp</a>, <a href="scrollview-example.html#x642">scrollview/scrollview.cpp</a>, and <a href="showimg-example.html#x1341">showimg/showimg.cpp</a>.
<p>Examples: <a href="helpviewer-example.html#x1004">helpviewer/helpwindow.cpp</a>, <a href="tqdir-example.html#x1835">tqdir/tqdir.cpp</a>, <a href="qwerty-example.html#x386">qwerty/qwerty.cpp</a>, <a href="scrollview-example.html#x642">scrollview/scrollview.cpp</a>, and <a href="showimg-example.html#x1341">showimg/showimg.cpp</a>.
<h3 class=fn>void <a name="changeItem"></a>TQMenuData::changeItem ( int&nbsp;id, const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;text )
</h3>
Changes the text of the menu item <em>id</em> to <em>text</em>. If the item
@ -764,7 +764,7 @@ unchecks the menu item with id <em>id</em>. Calls
<a href="#setCheckable">TQPopupMenu::setCheckable</a>( TRUE ) if necessary.
<p> <p>See also <a href="tqmenudata.html#isItemChecked">isItemChecked</a>().
<p>Examples: <a href="canvas-example.html#x2939">canvas/canvas.cpp</a>, <a href="grapher-nsplugin-example.html#x2749">grapher/grapher.cpp</a>, <a href="mdi-example.html#x2032">mdi/application.cpp</a>, <a href="menu-example.html#x1872">menu/menu.cpp</a>, <a href="progress-example.html#x71">progress/progress.cpp</a>, <a href="scrollview-example.html#x636">scrollview/scrollview.cpp</a>, and <a href="showimg-example.html#x1330">showimg/showimg.cpp</a>.
<p>Examples: <a href="canvas-example.html#x2939">canvas/canvas.cpp</a>, <a href="mdi-example.html#x2032">mdi/application.cpp</a>, <a href="menu-example.html#x1872">menu/menu.cpp</a>, <a href="progress-example.html#x71">progress/progress.cpp</a>, <a href="scrollview-example.html#x636">scrollview/scrollview.cpp</a>, and <a href="showimg-example.html#x1330">showimg/showimg.cpp</a>.
<h3 class=fn>void <a name="setItemEnabled"></a>TQMenuData::setItemEnabled ( int&nbsp;id, bool&nbsp;enable )
</h3>
If <em>enable</em> is TRUE, enables the menu item with identifier <em>id</em>;

@ -163,7 +163,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">TQt toolkit</a>.

@ -269,7 +269,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="tqptrcollection.html#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<h3 class=fn>uint <a name="size"></a>TQPtrDict::size () const
</h3>

@ -236,7 +236,7 @@ equivalent to <tt>insert( count(), item )</tt>.
<p> <em>item</em> must not be 0.
<p> <p>See also <a href="#insert">insert</a>(), <a href="#current">current</a>(), and <a href="#prepend">prepend</a>().
<p>Examples: <a href="customlayout-example.html#x1500">customlayout/border.cpp</a>, <a href="customlayout-example.html#x1518">customlayout/card.cpp</a>, <a href="customlayout-example.html#x1477">customlayout/flow.cpp</a>, <a href="grapher-nsplugin-example.html#x2770">grapher/grapher.cpp</a>, <a href="listviews-example.html#x160">listviews/listviews.cpp</a>, <a href="listviews-example.html#x131">listviews/listviews.h</a>, and <a href="qwerty-example.html#x387">qwerty/qwerty.cpp</a>.
<p>Examples: <a href="customlayout-example.html#x1500">customlayout/border.cpp</a>, <a href="customlayout-example.html#x1518">customlayout/card.cpp</a>, <a href="customlayout-example.html#x1477">customlayout/flow.cpp</a>, <a href="listviews-example.html#x160">listviews/listviews.cpp</a>, <a href="listviews-example.html#x131">listviews/listviews.h</a>, and <a href="qwerty-example.html#x387">qwerty/qwerty.cpp</a>.
<h3 class=fn>type * <a name="at"></a>TQPtrList::at ( uint&nbsp;index )
</h3>
@ -320,7 +320,7 @@ contains() compares <em>item</em> with each list item using
<p> Returns the number of items in the list.
<p> <p>See also <a href="#isEmpty">isEmpty</a>().
<p>Examples: <a href="customlayout-example.html#x1502">customlayout/border.cpp</a>, <a href="customlayout-example.html#x1520">customlayout/card.cpp</a>, <a href="customlayout-example.html#x1479">customlayout/flow.cpp</a>, <a href="dirview-example.html#x1699">dirview/dirview.cpp</a>, <a href="grapher-nsplugin-example.html#x2771">grapher/grapher.cpp</a>, <a href="mdi-example.html#x2054">mdi/application.cpp</a>, and <a href="qwerty-example.html#x389">qwerty/qwerty.cpp</a>.
<p>Examples: <a href="customlayout-example.html#x1502">customlayout/border.cpp</a>, <a href="customlayout-example.html#x1520">customlayout/card.cpp</a>, <a href="customlayout-example.html#x1479">customlayout/flow.cpp</a>, <a href="dirview-example.html#x1699">dirview/dirview.cpp</a>, <a href="mdi-example.html#x2054">mdi/application.cpp</a> and <a href="qwerty-example.html#x389">qwerty/qwerty.cpp</a>.
<p>Reimplemented from <a href="tqptrcollection.html#count">TQPtrCollection</a>.
<h3 class=fn>type * <a name="current"></a>TQPtrList::current () const
</h3>
@ -400,7 +400,7 @@ this function only compares the pointers.
current list item; returns 0 if the list is empty.
<p> <p>See also <a href="#getFirst">getFirst</a>(), <a href="#last">last</a>(), <a href="#next">next</a>(), <a href="#prev">prev</a>(), and <a href="#current">current</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2772">grapher/grapher.cpp</a>, <a href="listviews-example.html#x132">listviews/listviews.h</a>, and <a href="showimg-example.html#x1343">showimg/showimg.cpp</a>.
<p>Examples: <a href="listviews-example.html#x132">listviews/listviews.h</a> and <a href="showimg-example.html#x1343">showimg/showimg.cpp</a>.
<h3 class=fn>type * <a name="getFirst"></a>TQPtrList::getFirst () const
</h3>
@ -469,7 +469,7 @@ function call was the last item, the current item will be set to
0. If the current item was 0, this function does nothing.
<p> <p>See also <a href="#first">first</a>(), <a href="#last">last</a>(), <a href="#prev">prev</a>(), and <a href="#current">current</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2773">grapher/grapher.cpp</a>, <a href="listviews-example.html#x133">listviews/listviews.h</a>, and <a href="showimg-example.html#x1344">showimg/showimg.cpp</a>.
<p>Examples: <a href="listviews-example.html#x133">listviews/listviews.h</a> and <a href="showimg-example.html#x1344">showimg/showimg.cpp</a>.
<h3 class=fn>bool <a name="operator!-eq"></a>TQPtrList::operator!= ( const&nbsp;<a href="tqptrlist.html">TQPtrList</a>&lt;type&gt;&nbsp;&amp;&nbsp;list ) const
</h3>
@ -651,7 +651,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="tqptrcollection.html#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<h3 class=fn>void <a name="sort"></a>TQPtrList::sort ()
</h3>

@ -344,7 +344,7 @@ function will remove the item from its data structure, and if
auto-delete is enabled, will also delete the item.
<p> <p>See also <a href="tqptrcollection.html#autoDelete">autoDelete</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2769">grapher/grapher.cpp</a>, <a href="scribble-example.html#x924">scribble/scribble.cpp</a>, and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<p>Examples: <a href="scribble-example.html#x924">scribble/scribble.cpp</a> and <a href="bigtable-example.html#x1291">table/bigtable/main.cpp</a>.
<h3 class=fn>uint <a name="size"></a>TQPtrVector::size () const
</h3>

@ -252,7 +252,7 @@ the stream or file) or if there is no IO device set; otherwise
returns FALSE.
<p> <p>See also <a href="tqiodevice.html#atEnd">TQIODevice::atEnd</a>().
<p>Examples: <a href="addressbook-example.html#x601">addressbook/centralwidget.cpp</a> and <a href="grapher-nsplugin-example.html#x2774">grapher/grapher.cpp</a>.
<p>Examples: <a href="addressbook-example.html#x601">addressbook/centralwidget.cpp</a>.
<h3 class=fn><a href="tqtextcodec.html">TQTextCodec</a>&nbsp;* <a name="codec"></a>TQTextStream::codec ()
</h3>
Returns the codec actually used for this stream.

@ -35,7 +35,7 @@ body { background: #ffffff; color: black; }
<a href="#details">More...</a>
<p><tt>#include &lt;<a href="tqwidget-h.html">tqwidget.h</a>&gt;</tt>
<p>Inherits <a href="tqobject.html">TQObject</a> and <a href="tqpaintdevice.html">TQPaintDevice</a>.
-<p>Inherited by <a href="tqbutton.html">TQButton</a>, <a href="tqframe.html">TQFrame</a>, <a href="tqdialog.html">TQDialog</a>, <a href="tqcombobox.html">TQComboBox</a>, <a href="tqdatabrowser.html">TQDataBrowser</a>, <a href="tqdataview.html">TQDataView</a>, <a href="tqdatetimeeditbase.html">TQDateTimeEditBase</a>, <a href="tqdatetimeedit.html">TQDateTimeEdit</a>, <a href="tqdesktopwidget.html">TQDesktopWidget</a>, <a href="tqdial.html">TQDial</a>, <a href="tqdockarea.html">TQDockArea</a>, <a href="tqglwidget.html">TQGLWidget</a>, <a href="tqheader.html">TQHeader</a>, <a href="tqmainwindow.html">TQMainWindow</a>, <a href="tqmotifwidget.html">TQMotifWidget</a>, <a href="tqnpwidget.html">TQNPWidget</a>, <a href="tqscrollbar.html">TQScrollBar</a>, <a href="tqsizegrip.html">TQSizeGrip</a>, <a href="tqslider.html">TQSlider</a>, <a href="tqspinbox.html">TQSpinBox</a>, <a href="tqsplashscreen.html">TQSplashScreen</a>, <a href="tqstatusbar.html">TQStatusBar</a>, <a href="tqtabbar.html">TQTabBar</a>, <a href="tqtabwidget.html">TQTabWidget</a>, <a href="tqworkspace.html">TQWorkspace</a>, and <a href="qxtwidget.html">TQXtWidget</a>.
-<p>Inherited by <a href="tqbutton.html">TQButton</a>, <a href="tqframe.html">TQFrame</a>, <a href="tqdialog.html">TQDialog</a>, <a href="tqcombobox.html">TQComboBox</a>, <a href="tqdatabrowser.html">TQDataBrowser</a>, <a href="tqdataview.html">TQDataView</a>, <a href="tqdatetimeeditbase.html">TQDateTimeEditBase</a>, <a href="tqdatetimeedit.html">TQDateTimeEdit</a>, <a href="tqdesktopwidget.html">TQDesktopWidget</a>, <a href="tqdial.html">TQDial</a>, <a href="tqdockarea.html">TQDockArea</a>, <a href="tqglwidget.html">TQGLWidget</a>, <a href="tqheader.html">TQHeader</a>, <a href="tqmainwindow.html">TQMainWindow</a>, <a href="tqmotifwidget.html">TQMotifWidget</a>, <a href="tqscrollbar.html">TQScrollBar</a>, <a href="tqsizegrip.html">TQSizeGrip</a>, <a href="tqslider.html">TQSlider</a>, <a href="tqspinbox.html">TQSpinBox</a>, <a href="tqsplashscreen.html">TQSplashScreen</a>, <a href="tqstatusbar.html">TQStatusBar</a>, <a href="tqtabbar.html">TQTabBar</a>, <a href="tqtabwidget.html">TQTabWidget</a>, <a href="tqworkspace.html">TQWorkspace</a>, and <a href="qxtwidget.html">TQXtWidget</a>.
<p><a href="tqwidget-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
@ -2183,7 +2183,7 @@ applications should avoid it and use one consistent GUI style
instead.
<p> <p>See also <a href="#style">style</a>(), <a href="tqstyle.html">TQStyle</a>, <a href="ntqapplication.html#style">TQApplication::style</a>(), and <a href="ntqapplication.html#setStyle">TQApplication::setStyle</a>().
<p>Examples: <a href="grapher-nsplugin-example.html#x2778">grapher/grapher.cpp</a> and <a href="progressbar-example.html#x975">progressbar/progressbar.cpp</a>.
<p>Examples: <a href="progressbar-example.html#x975">progressbar/progressbar.cpp</a>.
<h3 class=fn><a href="tqstyle.html">TQStyle</a>&nbsp;* <a name="setStyle-2"></a>TQWidget::setStyle ( const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;style )
</h3>
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

@ -1,125 +0,0 @@
<!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/examples/trivial/trivial.doc:1 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Trivial Example</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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>Trivial Example</h1>
<p> This example is trivial, and thus useful for
investigating problems you might have installing the
extension.
<p> To build the example, you must first build the
<a href="netscape-plugin.html">TQt Netscape Plugin Extension</a> library.
Then type <tt>make</tt> in <tt>extensions/nsplugin/examples/trivial/</tt>
and copy the resulting <tt>trivial.so</tt> or <tt>nptrivial.dll</tt>
to the Plugins directory of your WWW browser.
<p> <EMBED TYPE=trivial/very WIDTH=100 HEIGHT=100>
<p> <hr>
Implementation:
<p> <pre>// TQt stuff
#include "tqnp.h"
#include &lt;<a href="tqpainter-h.html">tqpainter.h</a>&gt;
#include &lt;<a href="tqmessagebox-h.html">tqmessagebox.h</a>&gt;
class Trivial : public <a href="tqnpwidget.html">TQNPWidget</a> {
<a href="metaobjects.html#TQ_OBJECT">TQ_OBJECT</a>
public:
void mouseReleaseEvent(TQMouseEvent* event)
{
<a name="x2736"></a> TQMessageBox::<a href="tqmessagebox.html#aboutTQt">aboutTQt</a>(this);
}
void paintEvent(TQPaintEvent* event)
{
<a href="tqpainter.html">TQPainter</a> p(this);
<a name="x2739"></a> p.<a href="tqpainter.html#setClipRect">setClipRect</a>(event-&gt;rect());
int w = width();
<a name="x2737"></a> p.<a href="tqpainter.html#drawRect">drawRect</a>(rect());
<a name="x2738"></a> p.<a href="tqpainter.html#drawText">drawText</a>(w/8, 0, w-w/4, height(), AlignCenter|WordBreak, "Trivial!");
}
};
class TrivialInstance : public <a href="tqnpinstance.html">TQNPInstance</a> {
TQ_OBJECT
public:
<a href="tqnpwidget.html">TQNPWidget</a>* newWindow()
{
return new Trivial;
}
void print(TQPainter* p)
{
p-&gt;<a href="tqpainter.html#drawText">drawText</a>(0,0,"Hello");
}
};
class TrivialPlugin : public <a href="tqnplugin.html">TQNPlugin</a> {
public:
<a href="tqnpinstance.html">TQNPInstance</a>* 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"
</pre>
<p>See also <a href="nsplugin-examples.html">Netscape Plugin Examples</a>.
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>

@ -264,9 +264,7 @@ Polygon on a TQCanvas. | TQCanvasPolygon
Polygonal canvas item on a TQCanvas. | TQCanvasPolygonalItem
Popup menu widget. | TQPopupMenu
Powerful single-page rich text editor. | TQTextEdit
TQObject that is a web browser plugin. | TQNPInstance
TQPtrList of TQObjects. | TQObjectList
TQWidget that is a web browser plugin window. | TQNPWidget
Quick-access button to commands or options, usually used inside a TQToolBar. | TQToolButton
Radio button with a text or pixmap label. | TQRadioButton
Range checking of floating-point numbers. | TQDoubleValidator
@ -311,7 +309,6 @@ State-based encoder. | TQTextEncoder
Stores information about URLs. | TQUrlInfo
Stores meta data about a property. | TQMetaProperty
Stores meta data associated with a SQL field. | TQSqlFieldInfo
Stream of data provided to a TQNPInstance by the browser. | TQNPStream
String objects using constant Unicode data. | TQConstString
Support for custom events. | TQCustomEvent
Support for socket callbacks. | TQSocketNotifier
@ -355,7 +352,6 @@ The cell content for TQTable cells. | TQTableItem
The display format of an OpenGL rendering context. | TQGLFormat
The input data for the TQXmlReader subclasses. | TQXmlInputSource
The look and feel of a GUI. | TQStyle
The main factory for plugin objects. | TQNPlugin
The representation of the DTD in the document tree. | TQDomDocumentType
The structures in a TQTabBar. | TQTab
Time editor. | TQTimeEdit

@ -360,7 +360,6 @@ in a line-by-line coverage please refer to the tutorials
\list
\i \link motif-examples.html TQMotif support extension \endlink
\omit \i \link xt-motif-examples.html Xt/Motif support extension \endlink \endomit
\i \link nsplugin-examples.html Qt-based plugins for web browsers \endlink
\endlist
\section1 Miscellaneous Examples
@ -439,17 +438,6 @@ Qt XML classes.
*/
/*! \defgroup nsplugin-examples
\title Netscape Plugin Examples
The following example programs show how to write plugins
that can be used with web browsers supporting the LiveConnect
protocol.
For more information see the \link netscape-plugin.html Plugin Howto \endlink.
*/
/*! \defgroup motif-examples
\title TQMotif Support Extension

@ -1 +0,0 @@
.so man3/tqnpinstance.3qt

@ -1 +0,0 @@
.so man3/tqnpstream.3qt

@ -1 +0,0 @@
.so man3/tqnpwidget.3qt

@ -1 +0,0 @@
.so man3/tqnplugin.3qt

@ -269,7 +269,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp, and table/bigtable/main.cpp.
.SH "uint TQAsciiDict::size () const"
Returns the size of the internal hash array (as specified in the constructor).
.PP

@ -167,7 +167,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp, and table/bigtable/main.cpp.
.SH "void TQCache::setMaxCost ( int m )"
Sets the maximum allowed total cost of the cache to \fIm\fR. If the current total cost is greater than \fIm\fR, some items are deleted immediately.
.PP

@ -495,7 +495,7 @@ If \fIs\fR or \fIv\fR are not in the range 0-255, or \fIh\fR is < -1, the color
See also hsv() and setRgb().
.PP
Examples:
.)l drawdemo/drawdemo.cpp, grapher/grapher.cpp, and progress/progress.cpp.
.)l drawdemo/drawdemo.cpp] and progress/progress.cpp.
.SH "void TQColor::setNamedColor ( const TQString & name )"
Sets the RGB value to \fIname\fR, which may be in one of these formats:
.TP

@ -326,7 +326,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp and table/bigtable/main.cpp.
.SH "uint TQDict::size () const"
Returns the size of the internal hash array (as specified in the constructor).
.PP

@ -257,7 +257,7 @@ This is always equal to ascent()+descent()+1 (the 1 is for the base line).
See also leading() and lineSpacing().
.PP
Examples:
.)l grapher/grapher.cpp, hello/hello.cpp, and qfd/fontdisplayer.cpp.
.)l hello/hello.cpp and qfd/fontdisplayer.cpp.
.SH "bool TQFontMetrics::inFont ( TQChar ch ) const"
Returns TRUE if character \fIch\fR is a valid character in the font; otherwise returns FALSE.
.PP

@ -265,7 +265,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp and table/bigtable/main.cpp.
.SH "uint TQIntDict::size () const"
Returns the size of the internal hash array (as specified in the constructor).
.PP

@ -306,8 +306,6 @@ This virtual function must be reimplemented by all subclasses.
.PP
See also open().
.PP
Example: grapher/grapher.cpp.
.PP
Reimplemented in TQFile and TQSocket.
.SH "int TQIODevice::flags () const"
Returns the current I/O device flags setting.
@ -409,8 +407,6 @@ This virtual function must be reimplemented by all subclasses.
.PP
See also close().
.PP
Example: grapher/grapher.cpp.
.PP
Reimplemented in TQFile and TQSocket.
.SH "int TQIODevice::putch ( int ch )\fC [pure virtual]\fR"
Writes the character \fIch\fR to the I/O device.
@ -421,8 +417,6 @@ This virtual function must be reimplemented by all subclasses.
.PP
See also getch() and ungetch().
.PP
Example: grapher/grapher.cpp.
.PP
Reimplemented in TQFile and TQSocket.
.SH "TQByteArray TQIODevice::readAll ()\fC [virtual]\fR"
This convenience function returns all of the remaining data in the device.

@ -266,8 +266,6 @@ Reimplemented from TQWidget.
.SH "void TQMenuBar::hide ()\fC [virtual]\fR"
Reimplements TQWidget::hide() in order to deselect any selected item, and calls setUpLayout() for the main window.
.PP
Example: grapher/grapher.cpp.
.PP
Reimplemented from TQWidget.
.SH "void TQMenuBar::highlighted ( int id )\fC [signal]\fR"
This signal is emitted when a menu item is highlighted; \fIid\fR is the id of the highlighted item.
@ -543,8 +541,6 @@ Sets in which cases a menubar sparator is drawn to \fIwhen\fR. See the "separato
.SH "void TQMenuBar::show ()\fC [virtual]\fR"
Reimplements TQWidget::show() in order to set up the correct keyboard accelerators and to raise itself to the top of the widget stack.
.PP
Example: grapher/grapher.cpp.
.PP
Reimplemented from TQWidget.
.SS "Property Documentation"
.SH "bool defaultUp"

@ -638,7 +638,7 @@ If \fIcheck\fR is TRUE, checks the menu item with id \fIid\fR; otherwise uncheck
See also isItemChecked().
.PP
Examples:
.)l canvas/canvas.cpp, grapher/grapher.cpp, mdi/application.cpp, menu/menu.cpp, progress/progress.cpp, scrollview/scrollview.cpp, and showimg/showimg.cpp.
.)l canvas/canvas.cpp, mdi/application.cpp, menu/menu.cpp, progress/progress.cpp, scrollview/scrollview.cpp, and showimg/showimg.cpp.
.SH "void TQMenuData::setItemEnabled ( int id, bool enable )"
If \fIenable\fR is TRUE, enables the menu item with identifier \fIid\fR; otherwise disables the menu item with identifier \fIid\fR.
.PP

@ -546,7 +546,7 @@ QApplication provides this functionality as a slot.
See also QApplication::aboutTQt().
.PP
Examples:
.)l action/application.cpp, application/application.cpp, chart/chartform.cpp, helpviewer/helpwindow.cpp, menu/menu.cpp, themes/themes.cpp, and trivial/trivial.cpp.
.)l action/application.cpp, application/application.cpp, chart/chartform.cpp, helpviewer/helpwindow.cpp, menu/menu.cpp and themes/themes.cpp.
.SH "void TQMessageBox::adjustSize ()\fC [virtual]\fR"
Adjusts the size of the message box to fit the contents just before TQDialog::exec() or TQDialog::show() is called.
.PP
@ -659,8 +659,6 @@ See also question(), warning(), and critical().
Opens a modal message box directly using the specified parameters.
.PP
Please use information(), warning(), question(), or critical() instead.
.PP
Example: grapher/grapher.cpp.
.SH "bool TQMessageBox::query ( const TQString & caption, const TQString & text, const TQString & yesButtonText = TQString::null, const TQString & noButtonText = TQString::null, TQWidget * parent = 0, const char * = 0 )\fC [static]\fR"
\fBThis function is obsolete.\fR It is provided to keep old source working. We strongly advise against using it in new code.
.PP

@ -1,290 +0,0 @@
'\" t
.TH TQNPInstance 3qt "2 February 2007" "Trolltech AS" \" -*- nroff -*-
.\" Copyright 1992-2007 Trolltech ASA. All rights reserved. See the
.\" license file included in the distribution for a complete license
.\" statement.
.\"
.ad l
.nh
.SH NAME
TQNPInstance \- TQObject that is a web browser plugin
.SH SYNOPSIS
This class is part of the \fBQt Netscape Extension\fR.
.PP
\fC#include <tqnp.h>\fR
.PP
Inherits TQObject.
.PP
.SS "Public Members"
.in +1c
.ti -1c
.BI "\fB~TQNPInstance\fR ()"
.br
.ti -1c
.BI "int \fBargc\fR () const"
.br
.ti -1c
.BI "const char * \fBargn\fR ( int i ) const"
.br
.ti -1c
.BI "const char * \fBargv\fR ( int i ) const"
.br
.ti -1c
.BI "enum \fBReason\fR { ReasonDone = 0, ReasonBreak = 1, ReasonError = 2, ReasonUnknown = -1 }"
.br
.ti -1c
.BI "const char * \fBarg\fR ( const char * name ) const"
.br
.ti -1c
.BI "enum \fBInstanceMode\fR { Embed = 1, Full = 2, Background = 3 }"
.br
.ti -1c
.BI "InstanceMode \fBmode\fR () const"
.br
.ti -1c
.BI "const char * \fBuserAgent\fR () const"
.br
.ti -1c
.BI "virtual TQNPWidget * \fBnewWindow\fR ()"
.br
.ti -1c
.BI "TQNPWidget * \fBwidget\fR ()"
.br
.ti -1c
.BI "enum \fBStreamMode\fR { Normal = 1, Seek = 2, AsFile = 3, AsFileOnly = 4 }"
.br
.ti -1c
.BI "virtual bool \fBnewStreamCreated\fR ( TQNPStream *, StreamMode & smode )"
.br
.ti -1c
.BI "virtual int \fBwriteReady\fR ( TQNPStream * )"
.br
.ti -1c
.BI "virtual int \fBwrite\fR ( TQNPStream *, int offset, int len, void * buffer )"
.br
.ti -1c
.BI "virtual void \fBstreamDestroyed\fR ( TQNPStream * )"
.br
.ti -1c
.BI "void \fBstatus\fR ( const char * msg )"
.br
.ti -1c
.BI "void \fBgetURLNotify\fR ( const char * url, const char * window = 0, void * data = 0 )"
.br
.ti -1c
.BI "void \fBgetURL\fR ( const char * url, const char * window = 0 )"
.br
.ti -1c
.BI "void \fBpostURL\fR ( const char * url, const char * window, uint len, const char * buf, bool file )"
.br
.ti -1c
.BI "TQNPStream * \fBnewStream\fR ( const char * mimetype, const char * window, bool as_file = FALSE )"
.br
.ti -1c
.BI "virtual void \fBstreamAsFile\fR ( TQNPStream *, const char * fname )"
.br
.ti -1c
.BI "void * \fBgetJavaPeer\fR () const"
.br
.ti -1c
.BI "virtual void \fBnotifyURL\fR ( const char * url, Reason r, void * notifyData )"
.br
.ti -1c
.BI "virtual bool \fBprintFullPage\fR ()"
.br
.ti -1c
.BI "virtual void \fBprint\fR ( TQPainter * )"
.br
.in -1c
.SS "Protected Members"
.in +1c
.ti -1c
.BI "\fBTQNPInstance\fR ()"
.br
.in -1c
.SH DESCRIPTION
This class is defined in the \fBQt Netscape Extension\fR, which can be found in the \fCqt/extensions\fR directory. It is not included in the main TQt API.
.PP
The TQNPInstance class provides a TQObject that is a web browser plugin.
.PP
Deriving from TQNPInstance creates an object that represents a single \fC<EMBED>\fR tag in an HTML document.
.PP
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.
.PP
Note that there is \fIabsolutely no guarantee\fR 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 \fC<EMBED>\fR tag has a SRC parameter).
.PP
\fINone of Qt's GUI functionality\fR may be used until after the first call to newWindow(). This includes any use of TQPaintDevice (i.e. TQPixmap, TQWidget, and all subclasses), QApplication, anything related to TQPainter (TQBrush, etc.), fonts, TQMovie, TQToolTip, etc. Useful classes which specifically \fIcan\fR be used are TQImage, TQFile, and TQBuffer.
.PP
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.
.SS "Member Type Documentation"
.SH "TQNPInstance::InstanceMode"
This enum type provides Qt-style names for three #defines in \fCnpapi.h\fR:
.TP
\fCTQNPInstance::Embed\fR - corresponds to NP_EMBED
.TP
\fCTQNPInstance::Full\fR - corresponds to NP_FULL
.TP
\fCTQNPInstance::Background\fR - corresponds to NP_BACKGROUND
.SH "TQNPInstance::Reason"
.TP
\fCTQNPInstance::ReasonDone\fR
.TP
\fCTQNPInstance::ReasonBreak\fR
.TP
\fCTQNPInstance::ReasonError\fR
.TP
\fCTQNPInstance::ReasonUnknown\fR
.SH "TQNPInstance::StreamMode"
.TP
\fCTQNPInstance::Normal\fR
.TP
\fCTQNPInstance::Seek\fR
.TP
\fCTQNPInstance::AsFile\fR
.TP
\fCTQNPInstance::AsFileOnly\fR
.SH MEMBER FUNCTION DOCUMENTATION
.SH "TQNPInstance::TQNPInstance ()\fC [protected]\fR"
Creates a TQNPInstance.
.PP
Can only be called from within a derived class created within TQNPlugin::newInstance().
.SH "TQNPInstance::~TQNPInstance ()"
Called when the plugin instance is about to be deleted.
.SH "const char * TQNPInstance::arg ( const char * name ) const"
Returns the value of the named arguments, or 0 if no argument called \fIname\fR appears in the \fC<EMBED>\fR tag of this instance. If the argument appears, but has no value assigned, the empty string is returned. In summary:
.PP
<center>.nf
.TS
l
-
l.
Tag Result
arg("FOO") == 0
arg("FOO") == ""
.TE
.fi
</center>
.SH "int TQNPInstance::argc () const"
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.
.PP
See also arg() and argn().
.SH "const char * TQNPInstance::argn ( int i ) const"
Returns the name of the \fIi\fR-th argument.
.PP
See also argc() and argv().
.SH "const char * TQNPInstance::argv ( int i ) const"
Returns the value of the \fIi\fR-th argument.
.PP
\\as argc(), arg()
.SH "void * TQNPInstance::getJavaPeer () const"
Returns the Java object associated with the plugin instance, an object of the plugin's Java class, or 0 if the plug-in does not have a Java class, Java is disabled, or an error occurred.
.PP
The return value is actually a \fCjref\fR we use \fCvoid*\fR so as to avoid burdening plugins which do not require Java.
.PP
See also TQNPlugin::getJavaClass() and TQNPlugin::getJavaEnv().
.SH "void TQNPInstance::getURL ( const char * url, const char * window = 0 )"
Requests that the \fIurl\fR be retrieved and sent to the named \fIwindow\fR. See Netscape's JavaScript documentation for an explanation of window names.
.SH "void TQNPInstance::getURLNotify ( const char * url, const char * window = 0, void * data = 0 )"
Requests that the given \fIurl\fR be retrieved and sent to the named \fIwindow\fR. See Netscape's JavaScript documentation for an explanation of window names. Passes the arguments including \fIdata\fR to NPN_GetURLNotify.
.PP
Netscape: NPN_GetURLNotify method
.SH "InstanceMode TQNPInstance::mode () const"
Returns the mode of the plugin.
.SH "TQNPStream * TQNPInstance::newStream ( const char * mimetype, const char * window, bool as_file = FALSE )"
\fBThis function is under development and is subject to change.\fR
.PP
This function is \fInot tested\fR.
.PP
Requests the creation of a new data stream \fIfrom\fR the plugin. The MIME type and window are passed in \fImimetype\fR and \fIwindow\fR. \fIas_file\fR holds the AsFileOnly flag. It is an interface to the NPN_NewStream function of the Netscape Plugin API.
.SH "bool TQNPInstance::newStreamCreated ( TQNPStream *, StreamMode & smode )\fC [virtual]\fR"
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 \fIsmode\fR to 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().
.PP
Note that the AsFileOnly method is not supported by Netscape 2.0 and MSIE 3.0.
.PP
The default implementation accepts any stream.
.SH "TQNPWidget * TQNPInstance::newWindow ()\fC [virtual]\fR"
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.
.PP
Example: grapher/grapher.cpp.
.SH "void TQNPInstance::notifyURL ( const char * url, Reason r, void * notifyData )\fC [virtual]\fR"
\fBThis function is under development and is subject to change.\fR
.PP
This function is \fInot tested\fR.
.PP
Called whenever a \fIurl\fR is notified after a call to NPN_GetURLNotify with \fInotifyData\fR. The reason is given in \fIr\fR.
.PP
It is an encapsulation of the NPP_URLNotify function of the Netscape Plugin API.
.PP
See also: Netscape: NPP_URLNotify method
.SH "void TQNPInstance::postURL ( const char * url, const char * window, uint len, const char * buf, bool file )"
\fBThis function is under development and is subject to change.\fR
.PP
This function is \fInot tested\fR.
.PP
It is an interface to the NPN_PostURL function of the Netscape Plugin API.
.PP
Passes \fIurl\fR, \fIwindow\fR, \fIbuf\fR, \fIlen\fR, and \fIfile\fR to NPN_PostURL.
.SH "void TQNPInstance::print ( TQPainter * )\fC [virtual]\fR"
\fBThis function is under development and is subject to change.\fR
.PP
This function is \fInot tested\fR.
.PP
Print the instance embedded in a page.
.PP
It is an encapsulation of the NPP_Print function of the Netscape Plugin API.
.SH "bool TQNPInstance::printFullPage ()\fC [virtual]\fR"
\fBThis function is under development and is subject to change.\fR
.PP
This function is \fInot tested\fR.
.PP
It is an encapsulation of the NPP_Print function of the Netscape Plugin API.
.SH "void TQNPInstance::status ( const char * msg )"
Sets the status message in the browser containing this instance to \fImsg\fR.
.SH "void TQNPInstance::streamAsFile ( TQNPStream *, const char * fname )\fC [virtual]\fR"
Called when a stream is delivered as a single file called \fIfname\fR rather than as chunks. This may be simpler for a plugin to deal with, but precludes any incremental behavior.
.PP
Note that the AsFileOnly method is not supported by Netscape 2.0 and MSIE 3.0.
.PP
See also newStreamCreated() and newStream().
.SH "void TQNPInstance::streamDestroyed ( TQNPStream * )\fC [virtual]\fR"
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.
.SH "const char * TQNPInstance::userAgent () const"
Returns the user agent (browser name) containing this instance.
.SH "TQNPWidget * TQNPInstance::widget ()"
Returns the plugin window created by newWindow(), if any.
.SH "int TQNPInstance::write ( TQNPStream *, int offset, int len, void * buffer )\fC [virtual]\fR"
Called when incoming data is available for processing by the instance. The instance \fImust\fR 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 \fIlen\fR. \fIbuffer\fR is the data available for consumption. The \fIoffset\fR argument is merely an informational value indicating the total amount of data that has been consumed in prior calls.
.PP
This function should return the amount of data actually consumed.
.PP
Example: grapher/grapher.cpp.
.SH "int TQNPInstance::writeReady ( TQNPStream * )\fC [virtual]\fR"
Returns the minimum amount of data the instance is willing to receive from the given stream.
.PP
The default returns a very large value.
.SH "SEE ALSO"
.BR http://doc.trolltech.com/tqnpinstance.html
.BR http://www.trolltech.com/faq/tech.html
.SH COPYRIGHT
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
.SH AUTHOR
Generated automatically from the source code.
.SH BUGS
If you find a bug in Qt, please report it as described in
.BR http://doc.trolltech.com/bughowto.html .
Good bug reports help us to help you. Thank you.
.P
The definitive TQt documentation is provided in HTML format; it is
located at $TQTDIR/doc/html and can be read using TQt Assistant or with
a web browser. This man page is provided as a convenience for those
users who prefer man pages, although this format is not officially
supported by Trolltech.
.P
If you find errors in this manual page, please report them to
.BR qt-bugs@trolltech.com .
Please include the name of the manual page (tqnpinstance.3qt) and the Qt
version (3.3.8).

@ -1,157 +0,0 @@
'\" t
.TH TQNPlugin 3qt "2 February 2007" "Trolltech AS" \" -*- nroff -*-
.\" Copyright 1992-2007 Trolltech ASA. All rights reserved. See the
.\" license file included in the distribution for a complete license
.\" statement.
.\"
.ad l
.nh
.SH NAME
TQNPlugin \- The main factory for plugin objects
.SH SYNOPSIS
This class is part of the \fBQt Netscape Extension\fR.
.PP
\fC#include <tqnp.h>\fR
.PP
.SS "Public Members"
.in +1c
.ti -1c
.BI "virtual \fB~TQNPlugin\fR ()"
.br
.ti -1c
.BI "void \fBgetVersionInfo\fR ( int & plugin_major, int & plugin_minor, int & browser_major, int & browser_minor )"
.br
.ti -1c
.BI "virtual TQNPInstance * \fBnewInstance\fR () = 0"
.br
.ti -1c
.BI "virtual const char * \fBgetMIMEDescription\fR () const = 0"
.br
.ti -1c
.BI "virtual const char * \fBgetPluginNameString\fR () const = 0"
.br
.ti -1c
.BI "virtual const char * \fBgetPluginDescriptionString\fR () const = 0"
.br
.ti -1c
.BI "virtual void * \fBgetJavaClass\fR ()"
.br
.ti -1c
.BI "virtual void \fBunuseJavaClass\fR ()"
.br
.ti -1c
.BI "void * \fBgetJavaEnv\fR () const"
.br
.in -1c
.SS "Static Public Members"
.in +1c
.ti -1c
.BI "TQNPlugin * \fBcreate\fR ()"
.br
.ti -1c
.BI "TQNPlugin * \fBactual\fR ()"
.br
.in -1c
.SS "Protected Members"
.in +1c
.ti -1c
.BI "\fBTQNPlugin\fR ()"
.br
.in -1c
.SH DESCRIPTION
This class is defined in the \fBQt Netscape Extension\fR, which can be found in the \fCqt/extensions\fR directory. It is not included in the main TQt API.
.PP
The TQNPlugin class provides the main factory for plugin objects.
.PP
This class is the heart of the plugin. One instance of this object is created when the plugin is \fIfirst\fR 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.
.PP
Additionally, if TQt is linked to the plugin as a dynamic library, only one instance of QApplication will exist \fIacross all plugins that have been made with Qt\fR. So, your plugin should tread lightly on global settings. Do not, for example, use QApplication::setFont() - that will change the font in every widget of every Qt-based plugin currently loaded!
.SH MEMBER FUNCTION DOCUMENTATION
.SH "TQNPlugin::TQNPlugin ()\fC [protected]\fR"
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.
.SH "TQNPlugin::~TQNPlugin ()\fC [virtual]\fR"
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 QApplication will still exist at this time, but will be deleted shortly after, just before the plugin is deleted.
.SH "TQNPlugin * TQNPlugin::actual ()\fC [static]\fR"
Returns the plugin most recently returned by TQNPlugin::create().
.SH "TQNPlugin * TQNPlugin::create ()\fC [static]\fR"
This function must be implemented by your plugin code. It should return a derived class of TQNPlugin.
.SH "void * TQNPlugin::getJavaClass ()\fC [virtual]\fR"
Override this function to return a reference to the Java class that represents the plugin. The default returns 0, indicating no class.
.PP
If you override this class, you must also override TQNPlugin::unuseJavaClass().
.PP
The return value is actually a \fCjref\fR; we use \fCvoid*\fR so as to avoid burdening plugins which do not require Java.
.PP
See also getJavaEnv() and TQNPInstance::getJavaPeer().
.SH "void * TQNPlugin::getJavaEnv () const"
Returns a pointer to the Java execution environment, or 0 if either Java is disabled or an error occurred.
.PP
The return value is actually a \fCJRIEnv*\fR; we use \fCvoid*\fR so as to avoid burdening plugins which do not require Java.
.PP
See also getJavaClass() and TQNPInstance::getJavaPeer().
.SH "const char * TQNPlugin::getMIMEDescription () const\fC [pure virtual]\fR"
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:
.PP
.nf
.br
const char* getMIMEDescription() const
.br
{
.br
return "image/x-png:png:PNG Image;"
.br
"image/png:png:PNG Image;"
.br
"image/x-portable-bitmap:pbm:PBM Image;"
.br
"image/x-portable-graymap:pgm:PGM Image;"
.br
"image/x-portable-pixmap:ppm:PPM Image;"
.br
"image/bmp:bmp:BMP Image;"
.br
"image/x-ms-bmp:bmp:BMP Image;"
.br
"image/x-xpixmap:xpm:XPM Image;"
.br
"image/xpm:xpm:XPM Image";
.br
}
.fi
.SH "const char * TQNPlugin::getPluginDescriptionString () const\fC [pure virtual]\fR"
Returns a pointer to the plain-text description of the plugin.
.SH "const char * TQNPlugin::getPluginNameString () const\fC [pure virtual]\fR"
Returns a pointer to the plain-text name of the plugin.
.SH "void TQNPlugin::getVersionInfo ( int & plugin_major, int & plugin_minor, int & browser_major, int & browser_minor )"
Populates \fI*\fR\fIplugin_major\fR and \fI*\fR\fIplugin_minor\fR with the version of the plugin API and populates \fI*\fR\fIbrowser_major\fR and \fI*\fR\fIbrowser_minor\fR with the version of the web browser.
.SH "TQNPInstance * TQNPlugin::newInstance ()\fC [pure virtual]\fR"
Override this function to return an appropriate derived class of TQNPInstance.
.SH "void TQNPlugin::unuseJavaClass ()\fC [virtual]\fR"
This function is called when the plugin is shutting down. The
function should \fIunuse\fR the Java class returned earlier by
getJavaClass().
.SH "SEE ALSO"
.BR http://doc.trolltech.com/tqnplugin.html
.BR http://www.trolltech.com/faq/tech.html
.SH COPYRIGHT
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
.SH AUTHOR
Generated automatically from the source code.
.SH BUGS
If you find a bug in Qt, please report it as described in
.BR http://doc.trolltech.com/bughowto.html .
Good bug reports help us to help you. Thank you.
.P
The definitive TQt documentation is provided in HTML format; it is
located at $TQTDIR/doc/html and can be read using TQt Assistant or with
a web browser. This man page is provided as a convenience for those
users who prefer man pages, although this format is not officially
supported by Trolltech.
.P
If you find errors in this manual page, please report them to
.BR qt-bugs@trolltech.com .
Please include the name of the manual page (tqnplugin.3qt) and the Qt
version (3.3.8).

@ -1,114 +0,0 @@
'\" t
.TH TQNPStream 3qt "2 February 2007" "Trolltech AS" \" -*- nroff -*-
.\" Copyright 1992-2007 Trolltech ASA. All rights reserved. See the
.\" license file included in the distribution for a complete license
.\" statement.
.\"
.ad l
.nh
.SH NAME
TQNPStream \- Stream of data provided to a TQNPInstance by the browser
.SH SYNOPSIS
This class is part of the \fBQt Netscape Extension\fR.
.PP
\fC#include <tqnp.h>\fR
.PP
.SS "Public Members"
.in +1c
.ti -1c
.BI "\fB~TQNPStream\fR ()"
.br
.ti -1c
.BI "const char * \fBurl\fR () const"
.br
.ti -1c
.BI "uint \fBend\fR () const"
.br
.ti -1c
.BI "uint \fBlastModified\fR () const"
.br
.ti -1c
.BI "const char * \fBtype\fR () const"
.br
.ti -1c
.BI "bool \fBseekable\fR () const"
.br
.ti -1c
.BI "bool \fBokay\fR () const"
.br
.ti -1c
.BI "bool \fBcomplete\fR () const"
.br
.ti -1c
.BI "void \fBrequestRead\fR ( int offset, uint length )"
.br
.ti -1c
.BI "int \fBwrite\fR ( int len, void * buffer )"
.br
.ti -1c
.BI "TQNPInstance * \fBinstance\fR ()"
.br
.ti -1c
.BI "\fBTQNPStream\fR ( TQNPInstance * in, const char * mt, _NPStream * st, bool se )"
.br
.in -1c
.SH DESCRIPTION
This class is defined in the \fBQt Netscape Extension\fR, which can be found in the \fCqt/extensions\fR directory. It is not included in the main TQt API.
.PP
The TQNPStream class provides a stream of data provided to a TQNPInstance by the browser.
.PP
Note that this is neither a TQTextStream nor a TQDataStream.
.PP
See also TQNPInstance::write() and TQNPInstance::newStreamCreated().
.SH MEMBER FUNCTION DOCUMENTATION
.SH "TQNPStream::TQNPStream ( TQNPInstance * in, const char * mt, _NPStream * st, bool se )"
Creates a stream. Plugins should not call this; they should call TQNPInstance::newStream() if they need a stream.
.PP
Takes a TQNPInstance \fIin\fR, MIME type \fImt\fR, a pointer to an _NPStream \fIst\fR and a seekable flag \fIse\fR.
.SH "TQNPStream::~TQNPStream ()"
Destroys the stream.
.SH "bool TQNPStream::complete () const"
Returns TRUE if the stream has received all the data from the source; otherwise returns FALSE.
.SH "uint TQNPStream::end () const"
Returns the length of the stream in bytes. The function might return 0 for streams of unknown length.
.SH "TQNPInstance * TQNPStream::instance ()"
Returns the TQNPInstance for which this stream was created.
.SH "uint TQNPStream::lastModified () const"
Returns the time when the source of the stream was last modified.
.SH "bool TQNPStream::okay () const"
Returns TRUE if no errors have occurred on the stream; otherwise returns FALSE.
.SH "void TQNPStream::requestRead ( int offset, uint length )"
Requests the section of the stream, of \fIlength\fR bytes from \fIoffset\fR, be sent to the TQNPInstance::write() function of the instance() of this stream.
.SH "bool TQNPStream::seekable () const"
Returns TRUE if the stream is seekable; otherwise returns FALSE.
.SH "const char * TQNPStream::type () const"
Returns the MIME type of the stream.
.SH "const char * TQNPStream::url () const"
Returns the URL from which the stream was created.
.SH "int TQNPStream::write ( int len, void * buffer )"
Writes \fIlen\fR bytes from \fIbuffer\fR \fIto\fR the stream.
.SH "SEE ALSO"
.BR http://doc.trolltech.com/tqnpstream.html
.BR http://www.trolltech.com/faq/tech.html
.SH COPYRIGHT
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
.SH AUTHOR
Generated automatically from the source code.
.SH BUGS
If you find a bug in Qt, please report it as described in
.BR http://doc.trolltech.com/bughowto.html .
Good bug reports help us to help you. Thank you.
.P
The definitive TQt documentation is provided in HTML format; it is
located at $TQTDIR/doc/html and can be read using TQt Assistant or with
a web browser. This man page is provided as a convenience for those
users who prefer man pages, although this format is not officially
supported by Trolltech.
.P
If you find errors in this manual page, please report them to
.BR qt-bugs@trolltech.com .
Please include the name of the manual page (tqnpstream.3qt) and the Qt
version (3.3.8).

@ -1,129 +0,0 @@
'\" t
.TH TQNPWidget 3qt "2 February 2007" "Trolltech AS" \" -*- nroff -*-
.\" Copyright 1992-2007 Trolltech ASA. All rights reserved. See the
.\" license file included in the distribution for a complete license
.\" statement.
.\"
.ad l
.nh
.SH NAME
TQNPWidget \- TQWidget that is a web browser plugin window
.SH SYNOPSIS
This class is part of the \fBQt Netscape Extension\fR.
.PP
\fC#include <tqnp.h>\fR
.PP
Inherits TQWidget.
.PP
.SS "Public Members"
.in +1c
.ti -1c
.BI "\fBTQNPWidget\fR ()"
.br
.ti -1c
.BI "\fB~TQNPWidget\fR ()"
.br
.ti -1c
.BI "virtual void \fBenterInstance\fR ()"
.br
.ti -1c
.BI "virtual void \fBleaveInstance\fR ()"
.br
.ti -1c
.BI "TQNPInstance * \fBinstance\fR ()"
.br
.in -1c
.SH DESCRIPTION
This class is defined in the \fBQt Netscape Extension\fR, which can be found in the \fCqt/extensions\fR directory. It is not included in the main TQt API.
.PP
The TQNPWidget class provides a TQWidget that is a web browser plugin window.
.PP
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.
.PP
A common way to develop a plugin widget is to develop it as a stand-alone application window, then make it a \fIchild\fR of a plugin widget to use it as a browser plugin. The technique is:
.PP
.nf
.br
class MyPluginWindow : public TQNPWidget
.br
{
.br
TQWidget* child;
.br
public:
.br
MyPluginWindow()
.br
{
.br
// Some widget that is normally used as a top-level widget
.br
child = new MyIndependentlyDevelopedWidget();
.br
.br
// Use the background color of the web page
.br
child->setBackgroundColor( backgroundColor() );
.br
.br
// Fill the plugin widget
.br
child->setGeometry( 0, 0, width(), height() );
.br
}
.br
.br
void resizeEvent(TQResizeEvent*)
.br
{
.br
// Fill the plugin widget
.br
child->resize(size());
.br
}
.br
};
.fi
.PP
The default implementation is an empty window.
.SH MEMBER FUNCTION DOCUMENTATION
.SH "TQNPWidget::TQNPWidget ()"
Creates a TQNPWidget.
.SH "TQNPWidget::~TQNPWidget ()"
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.
.SH "void TQNPWidget::enterInstance ()\fC [virtual]\fR"
Called when the mouse enters the plugin window. Does nothing by default.
.PP
Example: grapher/grapher.cpp.
.SH "TQNPInstance * TQNPWidget::instance ()"
Returns the instance for which this widget is the plugin window.
.SH "void TQNPWidget::leaveInstance ()\fC [virtual]\fR"
Called when the mouse leaves the plugin window. Does nothing by default.
.PP
Example: grapher/grapher.cpp.
.SH "SEE ALSO"
.BR http://doc.trolltech.com/tqnpwidget.html
.BR http://www.trolltech.com/faq/tech.html
.SH COPYRIGHT
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
.SH AUTHOR
Generated automatically from the source code.
.SH BUGS
If you find a bug in Qt, please report it as described in
.BR http://doc.trolltech.com/bughowto.html .
Good bug reports help us to help you. Thank you.
.P
The definitive TQt documentation is provided in HTML format; it is
located at $TQTDIR/doc/html and can be read using TQt Assistant or with
a web browser. This man page is provided as a convenience for those
users who prefer man pages, although this format is not officially
supported by Trolltech.
.P
If you find errors in this manual page, please report them to
.BR qt-bugs@trolltech.com .
Please include the name of the manual page (tqnpwidget.3qt) and the Qt
version (3.3.8).

@ -15,7 +15,7 @@ All the functions in this class are reentrant when TQt is built with thread supp
.PP
Inherits Qt.
.PP
-Inherited by TQAccel, TQAccessibleObject, TQAction, QApplication, TQAssistantClient, TQDataPump, TQWidget, TQCanvas, TQStyle, TQClipboard, TQDns, TQLayout, TQDragObject, TQEditorFactory, TQEventLoop, TQFileIconProvider, TQNetworkProtocol, TQNetworkOperation, TQNPInstance, TQObjectCleanupHandler, TQProcess, TQServerSocket, TQSessionManager, TQSignal, TQSignalMapper, TQSocket, TQSocketNotifier, TQSound, TQSqlDatabase, TQSqlDriver, TQSqlForm, TQStyleSheet, TQTimer, TQToolTipGroup, TQTranslator, TQUrlOperator, and TQValidator.
-Inherited by TQAccel, TQAccessibleObject, TQAction, QApplication, TQAssistantClient, TQDataPump, TQWidget, TQCanvas, TQStyle, TQClipboard, TQDns, TQLayout, TQDragObject, TQEditorFactory, TQEventLoop, TQFileIconProvider, TQNetworkProtocol, TQNetworkOperation, TQObjectCleanupHandler, TQProcess, TQServerSocket, TQSessionManager, TQSignal, TQSignalMapper, TQSocket, TQSocketNotifier, TQSound, TQSqlDatabase, TQSqlDriver, TQSqlForm, TQStyleSheet, TQTimer, TQToolTipGroup, TQTranslator, TQUrlOperator, and TQValidator.
.PP
.SS "Public Members"
.in +1c
@ -922,7 +922,7 @@ TQTimer provides a higher-level interface to the timer functionality, and also m
See also startTimer(), killTimer(), killTimers(), and event().
.PP
Examples:
.)l biff/biff.cpp, dclock/dclock.cpp, forever/forever.cpp, grapher/grapher.cpp, qmag/qmag.cpp, and xform/xform.cpp.
.)l biff/biff.cpp, dclock/dclock.cpp, forever/forever.cpp, qmag/qmag.cpp and xform/xform.cpp.
.SH "TQString TQObject::tr ( const char * sourceText, const char * comment )\fC [static]\fR"
Returns a translated version of \fIsourceText\fR, or \fIsourceText\fR itself if there is no appropriate translated version. The translation context is TQObject with \fIcomment\fR (0 by default). All TQObject subclasses using the TQ_OBJECT macro automatically have a reimplementation of this function with the subclass name as context.
.PP

@ -868,7 +868,7 @@ The angles \fIa\fR and \fIalen\fR are 1/16th of a degree, i.e. a full circle equ
See also drawArc() and drawChord().
.PP
Examples:
.)l drawdemo/drawdemo.cpp, grapher/grapher.cpp, t10/cannon.cpp, and t9/cannon.cpp.
.)l drawdemo/drawdemo.cpp, t10/cannon.cpp and t9/cannon.cpp.
.SH "void TQPainter::drawPie ( const TQRect & r, int a, int alen )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
@ -885,7 +885,7 @@ Currently the mask of the pixmap or it's alpha channel are ignored when painting
See also bitBlt() and TQPixmap::setMask().
.PP
Examples:
.)l grapher/grapher.cpp, picture/picture.cpp, tqdir/tqdir.cpp, qmag/qmag.cpp, showimg/showimg.cpp, t10/cannon.cpp, and xform/xform.cpp.
.)l picture/picture.cpp, tqdir/tqdir.cpp, qmag/qmag.cpp, showimg/showimg.cpp, t10/cannon.cpp, and xform/xform.cpp.
.SH "void TQPainter::drawPixmap ( const TQPoint & p, const TQPixmap & pm, const TQRect & sr )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
@ -947,7 +947,7 @@ Draws a rectangle with upper left corner at \fI(x, y)\fR and with width \fIw\fR
See also TQPen and drawRoundRect().
.PP
Examples:
.)l drawdemo/drawdemo.cpp, picture/picture.cpp, t10/cannon.cpp, t11/cannon.cpp, t9/cannon.cpp, tooltip/tooltip.cpp, and trivial/trivial.cpp.
.)l drawdemo/drawdemo.cpp, picture/picture.cpp, t10/cannon.cpp, t11/cannon.cpp, t9/cannon.cpp and tooltip/tooltip.cpp.
.SH "void TQPainter::drawRect ( const TQRect & r )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
@ -975,7 +975,7 @@ Note that the meaning of \fIy\fR is not the same for the two drawText() varietie
See also TQPainter::TextDirection.
.PP
Examples:
.)l desktop/desktop.cpp, drawdemo/drawdemo.cpp, grapher/grapher.cpp, picture/picture.cpp, progress/progress.cpp, t8/cannon.cpp, and trivial/trivial.cpp.
.)l desktop/desktop.cpp, drawdemo/drawdemo.cpp, picture/picture.cpp, progress/progress.cpp and t8/cannon.cpp.
.SH "void TQPainter::drawText ( int x, int y, const TQString &, int len = -1, TextDirection dir = Auto )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
@ -1284,7 +1284,7 @@ If \fIm\fR is CoordDevice (the default), the coordinates given for the clip regi
See also setClipRegion(), clipRegion(), setClipping(), and TQPainter::CoordinateMode.
.PP
Examples:
.)l grapher/grapher.cpp, progress/progress.cpp, showimg/showimg.cpp, splitter/splitter.cpp, and trivial/trivial.cpp.
.)l progress/progress.cpp, showimg/showimg.cpp and splitter/splitter.cpp.
.SH "void TQPainter::setClipRect ( const TQRect & r, CoordinateMode m = CoordDevice )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
@ -1314,7 +1314,7 @@ This font is used by subsequent drawText() functions. The text color is the same
See also font() and drawText().
.PP
Examples:
.)l drawdemo/drawdemo.cpp, grapher/grapher.cpp, hello/hello.cpp, picture/picture.cpp, qwerty/qwerty.cpp, t13/cannon.cpp, and xform/xform.cpp.
.)l drawdemo/drawdemo.cpp, hello/hello.cpp, picture/picture.cpp, qwerty/qwerty.cpp, t13/cannon.cpp, and xform/xform.cpp.
.SH "void TQPainter::setPen ( const TQPen & pen )"
Sets a new painter pen.
.PP

@ -423,7 +423,7 @@ detach() returns immediately if there is just a single reference or if the pixma
Fills the pixmap with the color \fIfillColor\fR.
.PP
Examples:
.)l chart/setdataform.cpp, desktop/desktop.cpp, grapher/grapher.cpp, hello/hello.cpp, t10/cannon.cpp, themes/metal.cpp, and xform/xform.cpp.
.)l chart/setdataform.cpp, desktop/desktop.cpp, hello/hello.cpp, t10/cannon.cpp, themes/metal.cpp, and xform/xform.cpp.
.SH "void TQPixmap::fill ( const TQWidget * widget, int xofs, int yofs )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
@ -630,7 +630,7 @@ Resizes the pixmap to \fIw\fR width and \fIh\fR height. If either \fIw\fR or \fI
If both \fIw\fR and \fIh\fR are greater than 0, a valid pixmap is created. New pixels will be uninitialized (random) if the pixmap is expanded.
.PP
Examples:
.)l desktop/desktop.cpp and grapher/grapher.cpp.
.)l desktop/desktop.cpp.
.SH "void TQPixmap::resize ( const TQSize & size )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP

@ -278,7 +278,7 @@ Normally, you connect each menu item to a single slot using TQMenuData::insertIt
See also highlighted() and TQMenuData::insertItem().
.PP
Examples:
.)l grapher/grapher.cpp, helpviewer/helpwindow.cpp, tqdir/tqdir.cpp, qwerty/qwerty.cpp, scrollview/scrollview.cpp, and showimg/showimg.cpp.
.)l helpviewer/helpwindow.cpp, tqdir/tqdir.cpp, qwerty/qwerty.cpp, scrollview/scrollview.cpp, and showimg/showimg.cpp.
.SH "void TQMenuData::changeItem ( int id, const TQString & text )"
Changes the text of the menu item \fIid\fR to \fItext\fR. If the item has an icon, the icon remains unchanged.
.PP
@ -732,7 +732,7 @@ If \fIcheck\fR is TRUE, checks the menu item with id \fIid\fR; otherwise uncheck
See also isItemChecked().
.PP
Examples:
.)l canvas/canvas.cpp, grapher/grapher.cpp, mdi/application.cpp, menu/menu.cpp, progress/progress.cpp, scrollview/scrollview.cpp, and showimg/showimg.cpp.
.)l canvas/canvas.cpp, mdi/application.cpp, menu/menu.cpp, progress/progress.cpp, scrollview/scrollview.cpp, and showimg/showimg.cpp.
.SH "void TQMenuData::setItemEnabled ( int id, bool enable )"
If \fIenable\fR is TRUE, enables the menu item with identifier \fIid\fR; otherwise disables the menu item with identifier \fIid\fR.
.PP

@ -117,7 +117,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp and table/bigtable/main.cpp.
.SH "SEE ALSO"
.BR http://doc.trolltech.com/tqptrcollection.html

@ -267,7 +267,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp and table/bigtable/main.cpp.
.SH "uint TQPtrDict::size () const"
Returns the size of the internal hash table (as specified in the constructor).
.PP

@ -308,7 +308,7 @@ The inserted item becomes the current list item. This is equivalent to \fCinsert
See also insert(), current(), and prepend().
.PP
Examples:
.)l customlayout/border.cpp, customlayout/card.cpp, customlayout/flow.cpp, grapher/grapher.cpp, listviews/listviews.cpp, listviews/listviews.h, and qwerty/qwerty.cpp.
.)l customlayout/border.cpp, customlayout/card.cpp, customlayout/flow.cpp, listviews/listviews.cpp, listviews/listviews.h, and qwerty/qwerty.cpp.
.SH "type * TQPtrList::at ( uint index )"
Returns a pointer to the item at position \fIindex\fR in the list, or 0 if the index is out of range.
.PP
@ -384,7 +384,7 @@ Returns the number of items in the list.
See also isEmpty().
.PP
Examples:
.)l customlayout/border.cpp, customlayout/card.cpp, customlayout/flow.cpp, dirview/dirview.cpp, grapher/grapher.cpp, mdi/application.cpp, and qwerty/qwerty.cpp.
.)l customlayout/border.cpp, customlayout/card.cpp, customlayout/flow.cpp, dirview/dirview.cpp, mdi/application.cpp, and qwerty/qwerty.cpp.
.PP
Reimplemented from TQPtrCollection.
.SH "type * TQPtrList::current () const"
@ -437,7 +437,7 @@ Returns a pointer to the first item in the list and makes this the current list
See also getFirst(), last(), next(), prev(), and current().
.PP
Examples:
.)l grapher/grapher.cpp, listviews/listviews.h, and showimg/showimg.cpp.
.)l listviews/listviews.h and showimg/showimg.cpp.
.SH "type * TQPtrList::getFirst () const"
Returns a pointer to the first item in the list, or 0 if the list is empty.
.PP
@ -488,7 +488,7 @@ Makes the succeeding item current. If the current item before this function call
See also first(), last(), prev(), and current().
.PP
Examples:
.)l grapher/grapher.cpp, listviews/listviews.h, and showimg/showimg.cpp.
.)l listviews/listviews.h and showimg/showimg.cpp.
.SH "bool TQPtrList::operator!= ( const TQPtrList<type> & list ) const"
Compares this list with \fIlist\fR. Returns TRUE if the lists contain different data; otherwise returns FALSE.
.SH "TQPtrList<type> & TQPtrList::operator= ( const TQPtrList<type> & list )"
@ -635,7 +635,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp and table/bigtable/main.cpp.
.SH "void TQPtrList::sort ()"
Sorts the list by the result of the virtual compareItems() function.
.PP

@ -299,7 +299,7 @@ Note that the auto-delete setting may also affect other functions in subclasses.
See also autoDelete().
.PP
Examples:
.)l grapher/grapher.cpp, scribble/scribble.cpp, and table/bigtable/main.cpp.
.)l scribble/scribble.cpp and table/bigtable/main.cpp.
.SH "uint TQPtrVector::size () const"
Returns the size of the vector, i.e. the number of vector positions. This is also the maximum number of items the vector can hold.
.PP

@ -324,7 +324,7 @@ Returns TRUE if the IO device has reached the end position (end of the stream or
See also TQIODevice::atEnd().
.PP
Examples:
.)l addressbook/centralwidget.cpp and grapher/grapher.cpp.
.)l addressbook/centralwidget.cpp.
.SH "TQTextCodec * TQTextStream::codec ()"
Returns the codec actually used for this stream.
.PP

@ -13,7 +13,7 @@ TQWidget \- The base class of all user interface objects
.PP
Inherits TQObject and TQPaintDevice.
.PP
Inherited by TQButton, TQFrame, TQDialog, TQComboBox, TQDataBrowser, TQDataView, TQDateTimeEditBase, TQDateTimeEdit, TQDesktopWidget, TQDial, TQDockArea, TQGLWidget, TQHeader, TQMainWindow, TQMotifWidget, TQNPWidget, TQScrollBar, TQSizeGrip, TQSlider, TQSpinBox, TQSplashScreen, TQStatusBar, TQTabBar, TQTabWidget, TQWorkspace, and QXtWidget.
Inherited by TQButton, TQFrame, TQDialog, TQComboBox, TQDataBrowser, TQDataView, TQDateTimeEditBase, TQDateTimeEdit, TQDesktopWidget, TQDial, TQDockArea, TQGLWidget, TQHeader, TQMainWindow, TQMotifWidget, TQScrollBar, TQSizeGrip, TQSlider, TQSpinBox, TQSplashScreen, TQStatusBar, TQTabBar, TQTabWidget, TQWorkspace, and QXtWidget.
.PP
.SS "Public Members"
.in +1c
@ -2206,7 +2206,7 @@ Setting a widget's style has no effect on existing or future child widgets.
See also style(), TQStyle, QApplication::style(), and QApplication::setStyle().
.PP
Examples:
.)l grapher/grapher.cpp and progressbar/progressbar.cpp.
.)l progressbar/progressbar.cpp.
.SH "TQStyle * TQWidget::setStyle ( const TQString & style )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP

@ -61,7 +61,6 @@ with each Edition.
\i \link workspace.html Workspace (MDI) Module\endlink
\i \link xml.html XML Module\endlink
\i \link motif-extension.html TQMotif Extension\endlink
\i \link netscape-plugin.html Netscape Plugin Extension\endlink
\endlist
*/

@ -94,7 +94,6 @@
\i \link eventsandfilters.html Events and Event Filters \endlink
\i \link focus.html Keyboard Focus Overview \endlink
\i \link accelerators.html Standard Accelerators \endlink
\i \link netscape-plugin.html Qt-based LiveConnect Plugins \endlink
\i \link motif-extension.html Motif Support Extension \endlink
\i \link opengl-x11-overlays.html OpenGL Overlays (X11)\endlink
\i \link appicon.html Setting the Application Icon \endlink

@ -1,5 +0,0 @@
TEMPLATE = subdirs
contains( QT_PRODUCT, qt-(enterprise|internal|eval) ) {
x11: SUBDIRS = motif
}

@ -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
*/

@ -1,7 +0,0 @@
#!/bin/sh
echo "Content-type: application/x-graphable"
echo
cat graph.g1n
# ./slowcat < graph.g1n

@ -1,8 +0,0 @@
num label
10 A
24 B
12 C
7 D
34 E
15 F
19 G

@ -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"

@ -1,9 +0,0 @@
LIBRARY npgrapher.dll
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD SINGLE
EXPORTS
NP_GetEntryPoints @1
NP_Initialize @2
NP_Shutdown @3

@ -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
*/

@ -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

@ -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

@ -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"

@ -1,9 +0,0 @@
LIBRARY nptrivial.dll
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD SINGLE
EXPORTS
NP_GetEntryPoints @1
NP_Initialize @2
NP_Shutdown @3

@ -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
*/

@ -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

@ -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

@ -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 */
/******************************************************************************/

@ -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? (warren@netscape.com)
# 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 */
/******************************************************************************/

@ -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 */
/******************************************************************************/

@ -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_ */

@ -1,407 +0,0 @@
/*
* npunix.c
*
* Netscape Client Plugin API
* - Wrapper function to interface with the Netscape Navigator
*
* dp Suresh <dp@netscape.com>
*
*----------------------------------------------------------------------
* 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;
}

@ -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_ */

@ -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);
}

File diff suppressed because it is too large Load Diff

@ -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 sales@trolltech.com.
**
** 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

@ -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
Loading…
Cancel
Save