gecko-dev/java/pluggable-jvm/wf_moz6/public/nsIJavaHTMLObject.idl

130 строки
3.8 KiB
Plaintext

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is The Waterfall Java Plugin Module
*
* The Initial Developer of the Original Code is Sun Microsystems Inc
* Portions created by Sun Microsystems Inc are Copyright (C) 2001
* All Rights Reserved.
*
* $Id: nsIJavaHTMLObject.idl,v 1.1 2001/05/10 18:12:41 edburns%acm.org Exp $
*
*
* Contributor(s):
*
* Nikolay N. Igotti <inn@sparc.spb.su>
*/
#include "nsoji2.idl"
#include "nsIPluggableJVM.idl"
%{C++
#include "nsIDOMElement.h"
%}
native nsIDOMElement(nsIDOMElement*);
/**
* this is instance of visible object on browser's page controlled by
* Java code, like <APPLET> or <OBJECT> tag content.
*/
[scriptable, uuid(d0bc700b-aadb-417f-b584-5d644bb3432f)]
interface nsIJavaHTMLObject : nsISupports {
/**
* Initialization stuff. Used by browser when it wishes to create
* Java-driven object on page. Argument is nsISupports
* to simplify using new OJI module - it can be nsIPluginInstancePeer
* for older cases and smth else in the future.
* Second one argument is JVM which should be responsible for this object.
*/
void Initialize(in nsISupports peer, in nsIPluggableJVM jvm);
/**
* Starts/resumes this object's operations.
*/
void Start();
/**
* Stops/suspends this object's operations
*/
void Stop();
/**
* Die!
*/
void Destroy();
/**
* Method to set drawing window.
* I intentionally will not allow generic Java object here to
* avoid mess. Register window in nsIPluggableJVM first (from C++) or
* in Plugin class (from Java).
*/
[noscript] void SetWindow(in jp_jint ID);
/**
* Get object peer in browser/host application.
*/
void GetPeer(out nsISupports peer);
/**
* Set type of this Java object
*/
[noscript] void SetType(in jp_jint type);
/**
* Get Java JSObject for this object.
*/
[noscript] void GetJavaPeer(out jp_jobject ID);
// can ask owner document from this guy
[noscript] void GetDOMElement(out nsIDOMElement result);
/**
* Methods called by Java side
*/
[noscript] void PostEvent(in jp_jint event, in jp_jlong data);
[noscript] void SendEvent(in jp_jint event, in jp_jlong data);
// peer event types, synchronize with HostObjectPeer.java
const long PE_NOPE = 0;
const long PE_CREATE = 1;
const long PE_SETWINDOW = 2;
const long PE_DESTROY = 3;
const long PE_START = 4;
const long PE_STOP = 5;
const long PE_NEWPARAMS = 6;
const long PE_SETTYPE = 7;
// generic event sent by browser
const long PE_PEEREVENT = 8;
const long PE_GETPEER = 9;
// java event types
const long JE_NOPE = 0;
const long JE_SHOWSTATUS = 1;
const long JE_SHOWDOCUMENT = 2;
// generic event sent by applet
const long JE_APPLETEVENT = 3;
// error requiring browser's attention happened in applet
const long JE_APPLETERROR = 4;
// error requiring browser's attention happened in JVM
const long JE_JVMERROR = 5;
// peer's host applications
const long PV_UNKNOWN = 0;
const long PV_MOZILLA6 = 1;
// peer's types
const long PT_UNKNOWN = 0;
const long PT_EMBED = 1;
const long PT_OBJECT = 2;
const long PT_APPLET = 3;
const long PT_PLUGLET = 4;
};