FreeWRL/FreeX3D  3.0.0
nsIPluginInstance.idl
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  * http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * The Original Code is mozilla.org code.
16  *
17  * The Initial Developer of the Original Code is
18  * Netscape Communications Corporation.
19  * Portions created by the Initial Developer are Copyright (C) 1998
20  * the Initial Developer. All Rights Reserved.
21  *
22  * Contributor(s):
23  *
24  * Alternatively, the contents of this file may be used under the terms of
25  * either the GNU General Public License Version 2 or later (the "GPL"), or
26  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27  * in which case the provisions of the GPL or the LGPL are applicable instead
28  * of those above. If you wish to allow use of your version of this file only
29  * under the terms of either the GPL or the LGPL, and not to allow others to
30  * use your version of this file under the terms of the MPL, indicate your
31  * decision by deleting the provisions above and replace them with the notice
32  * and other provisions required by the GPL or the LGPL. If you do not delete
33  * the provisions above, a recipient may use your version of this file under
34  * the terms of any one of the MPL, the GPL or the LGPL.
35  *
36  * ***** END LICENSE BLOCK ***** */
37 
38 #include "nsISupports.idl"
39 #include "nsIPluginStreamListener.idl"
40 
41 interface nsIPluginInstanceOwner;
42 interface nsIOutputStream;
43 
44 %{C++
45 #include "nsplugindefs.h"
46 #include "nsStringGlue.h"
47 struct JSContext;
48 struct JSObject;
49 
50 #define NPRUNTIME_JSCLASS_NAME "NPObject JS wrapper class"
51 %}
52 
53 [ptr] native JSContextPtr(JSContext);
54 [ptr] native JSObjectPtr(JSObject);
55 
56 [uuid(67D606F4-1D6D-4FE2-A2D6-10BDA65788E1)]
57 interface nsIPluginInstance : nsISupports
58 {
66  void initialize(in nsIPluginInstanceOwner aOwner, in string aMIMEType);
67 
77  void start();
78 
87  void stop();
88 
97  void setWindow(in nsPluginWindowPtr aWindow);
98 
108  void newStreamToPlugin(out nsIPluginStreamListener aListener);
109 
123  void newStreamFromPlugin(in string aType, in string aTarget, out nsIOutputStream aResult);
124 
133  void print(in nsPluginPrintPtr aPlatformPrint);
134 
142  void getValue(in nsPluginInstanceVariable aVariable, in voidPtr aValue);
143 
159  void handleEvent(in nsPluginEventPtr aEvent, out boolean aHandled);
160 
164  void invalidateRect(in nsPluginRectPtr aRect);
165 
169  void invalidateRegion(in nsPluginRegion aRegion);
170 
174  void forceRedraw();
175 
184  void getMIMEType([const, shared] out string aValue);
185 
192  readonly attribute JSContextPtr JSContext;
193 
194  attribute nsIPluginInstanceOwner owner;
195 
205  void showStatus(in string aMessage);
206 
210  void invalidateOwner();
211 
212  JSObjectPtr GetJSObject(in JSContextPtr cx);
213 
214  readonly attribute AString formValue;
215 
216  void pushPopupsEnabledState(in boolean aEnabled);
217  void popPopupsEnabledState();
218 
219  readonly attribute PRUint16 pluginAPIVersion;
220 
221  void defineJavaProperties();
222 };
void initialize(in nsIPluginInstanceOwner aOwner, in string aMIMEType)
Initializes a newly created plugin instance.
void forceRedraw()
Corresponds to NPN_ForceRedraw.
void getMIMEType([const, shared] out string aValue)
Returns the MIME type of the plugin instance.
void invalidateOwner()
Drop our reference to our owner.
void invalidateRect(in nsPluginRectPtr aRect)
Corresponds to NPN_InvalidateRect.
void start()
Called to instruct the plugin instance to start.
void handleEvent(in nsPluginEventPtr aEvent, out boolean aHandled)
Handles an event.
void invalidateRegion(in nsPluginRegion aRegion)
Corresponds to NPN_InvalidateRegion.
void setWindow(in nsPluginWindowPtr aWindow)
Called when the window containing the plugin instance changes.
void print(in nsPluginPrintPtr aPlatformPrint)
Called to instruct the plugin instance to print itself to a printer.
void showStatus(in string aMessage)
This operation causes status information to be displayed on the window associated with the plugin ins...
readonly attribute JSContextPtr JSContext
Get the JavaScript context to this plugin instance.
void newStreamToPlugin(out nsIPluginStreamListener aListener)
Called to tell the plugin that the initial src/data stream is ready.
void newStreamFromPlugin(in string aType, in string aTarget, out nsIOutputStream aResult)
This operation is called by the plugin instance when it wishes to send a stream of data to the browse...
void stop()
Called to instruct the plugin instance to stop, thereby suspending its state.
void getValue(in nsPluginInstanceVariable aVariable, in voidPtr aValue)
Returns the value of a variable associated with the plugin instance.
nsIPluginStreamListener