ns4xPluginInstance.h,1.16 | . | Disk File |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
. |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
* |
. |
* |
* The contents of this file are subject to the Netscape Public |
. |
* The contents of this file are subject to the Netscape Public |
* License Version 1.1 (the "License"); you may not use this file |
. |
* License Version 1.1 (the "License"); you may not use this file |
* except in compliance with the License. You may obtain a copy of |
. |
* except in compliance with the License. You may obtain a copy of |
* the License at http://www.mozilla.org/NPL/ |
. |
* the License at http://www.mozilla.org/NPL/ |
* |
. |
* |
* Software distributed under the License is distributed on an "AS |
. |
* Software distributed under the License is distributed on an "AS |
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
. |
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
* implied. See the License for the specific language governing |
. |
* implied. See the License for the specific language governing |
* rights and limitations under the License. |
. |
* rights and limitations under the License. |
* |
. |
* |
* The Original Code is mozilla.org code. |
. |
* The Original Code is mozilla.org code. |
* |
. |
* |
* The Initial Developer of the Original Code is Netscape |
. |
* The Initial Developer of the Original Code is Netscape |
* Communications Corporation. Portions created by Netscape are |
. |
* Communications Corporation. Portions created by Netscape are |
* Copyright (C) 1998 Netscape Communications Corporation. All |
. |
* Copyright (C) 1998 Netscape Communications Corporation. All |
* Rights Reserved. |
. |
* Rights Reserved. |
* |
. |
* |
* Contributor(s): |
. |
* Contributor(s): |
*/ |
. |
*/ |
|
. |
|
#ifndef ns4xPluginInstance_h__ |
. |
#ifndef ns4xPluginInstance_h__ |
#define ns4xPluginInstance_h__ |
. |
#define ns4xPluginInstance_h__ |
|
. |
|
#define _UINT32 |
. |
#define _UINT32 |
|
. |
|
/* On HPUX, int32 is already defined in /usr/include/moduel.h */ |
. |
/* On HPUX, int32 is already defined in /usr/include/moduel.h */ |
/* #ifndef hpux */ |
. |
/* #ifndef hpux */ |
#ifndef HPUX11 |
. |
#ifndef HPUX11 |
#define _INT32 |
. |
#define _INT32 |
#endif /* HPUX11 */ |
. |
#endif /* HPUX11 */ |
|
. |
|
#include "nsplugin.h" |
. |
#include "nsplugin.h" |
#include "npupp.h" |
. |
#include "npupp.h" |
#include "jri.h" |
. |
#include "jri.h" |
#include "prlink.h" // for PRLibrary |
. |
#include "prlink.h" // for PRLibrary |
#include "nsIScriptablePlugin.h" |
. |
#include "nsIScriptablePlugin.h" |
|
. |
|
#ifdef MOZ_WIDGET_GTK |
. |
#ifdef MOZ_WIDGET_GTK |
#include <gtk/gtk.h> |
. |
#include <gtk/gtk.h> |
#endif |
. |
#endif |
|
. |
|
//////////////////////////////////////////////////////////////////////// |
. |
//////////////////////////////////////////////////////////////////////// |
|
. |
|
class ns4xPluginInstance : public nsIPluginInstance, |
. |
class ns4xPluginInstance : public nsIPluginInstance, |
public nsIScriptablePlugin |
. |
public nsIScriptablePlugin |
{ |
. |
{ |
public: |
. |
public: |
|
. |
|
NS_DECL_ISUPPORTS |
. |
NS_DECL_ISUPPORTS |
|
. |
|
//////////////////////////////////////////////////////////////////////// |
. |
//////////////////////////////////////////////////////////////////////// |
// nsIPluginInstance methods |
. |
// nsIPluginInstance methods |
|
. |
|
/** |
. |
/** |
* Actually initialize the plugin instance. This calls the 4.x <b>newp</b> |
. |
* Actually initialize the plugin instance. This calls the 4.x <b>newp</b> |
* callback, and may return an error (which is why it is distinct from the |
. |
* callback, and may return an error (which is why it is distinct from the |
* constructor.) If an error is returned, the caller should <i>not</i> |
. |
* constructor.) If an error is returned, the caller should <i>not</i> |
* continue to use the <b>ns4xPluginInstance</b> object. |
. |
* continue to use the <b>ns4xPluginInstance</b> object. |
*/ |
. |
*/ |
NS_METHOD Initialize(nsIPluginInstancePeer* peer); |
. |
NS_METHOD Initialize(nsIPluginInstancePeer* peer); |
|
. |
|
NS_IMETHOD GetPeer(nsIPluginInstancePeer* *resultingPeer); |
. |
NS_IMETHOD GetPeer(nsIPluginInstancePeer* *resultingPeer); |
|
. |
|
NS_IMETHOD Start(void); |
. |
NS_IMETHOD Start(void); |
|
. |
|
NS_IMETHOD Stop(void); |
. |
NS_IMETHOD Stop(void); |
|
. |
|
NS_IMETHOD Destroy(void); |
. |
NS_IMETHOD Destroy(void); |
|
. |
|
NS_IMETHOD SetWindow(nsPluginWindow* window); |
. |
NS_IMETHOD SetWindow(nsPluginWindow* window); |
|
. |
|
NS_IMETHOD NewStream(nsIPluginStreamListener** listener); |
. |
NS_IMETHOD NewStream(nsIPluginStreamListener** listener); |
|
. |
|
NS_IMETHOD Print(nsPluginPrint* platformPrint); |
. |
NS_IMETHOD Print(nsPluginPrint* platformPrint); |
|
. |
|
NS_IMETHOD GetValue(nsPluginInstanceVariable variable, void *value); |
. |
NS_IMETHOD GetValue(nsPluginInstanceVariable variable, void *value); |
|
. |
|
NS_IMETHOD HandleEvent(nsPluginEvent* event, PRBool* handled); |
. |
NS_IMETHOD HandleEvent(nsPluginEvent* event, PRBool* handled); |
|
. |
|
//////////////////////////////////////////////////////////////////////// |
. |
//////////////////////////////////////////////////////////////////////// |
// nsIScriptablePlugin methods |
. |
// nsIScriptablePlugin methods |
|
. |
|
NS_IMETHOD GetScriptablePeer(void * *aScriptablePeer); |
. |
NS_IMETHOD GetScriptablePeer(void * *aScriptablePeer); |
|
. |
|
NS_IMETHOD GetScriptableInterface(nsIID * *aScriptableInterface); |
. |
NS_IMETHOD GetScriptableInterface(nsIID * *aScriptableInterface); |
|
. |
|
//////////////////////////////////////////////////////////////////////// |
. |
//////////////////////////////////////////////////////////////////////// |
// ns4xPluginInstance-specific methods |
. |
// ns4xPluginInstance-specific methods |
|
. |
|
/** |
. |
/** |
* Return the 4.x-style interface object. |
. |
* Return the 4.x-style interface object. |
*/ |
. |
*/ |
nsresult GetNPP(NPP * aNPP); |
. |
nsresult GetNPP(NPP * aNPP); |
|
. |
|
/** |
. |
/** |
* Return the callbacks for the plugin instance. |
. |
* Return the callbacks for the plugin instance. |
*/ |
. |
*/ |
nsresult GetCallbacks(const NPPluginFuncs ** aCallbacks); |
. |
nsresult GetCallbacks(const NPPluginFuncs ** aCallbacks); |
|
. |
|
nsresult SetWindowless(PRBool aWindowless); |
. |
nsresult SetWindowless(PRBool aWindowless); |
|
. |
|
nsresult SetTransparent(PRBool aTransparent); |
. |
nsresult SetTransparent(PRBool aTransparent); |
|
. |
|
nsresult NewNotifyStream(nsIPluginStreamListener** listener, void* notifyD
ata); |
. |
nsresult NewNotifyStream(nsIPluginStreamListener** listener, void* notifyD
ata); |
|
. |
|
/** |
. |
/** |
* Construct a new 4.x plugin instance with the specified peer |
. |
* Construct a new 4.x plugin instance with the specified peer |
* and callbacks. |
. |
* and callbacks. |
*/ |
. |
*/ |
ns4xPluginInstance(NPPluginFuncs* callbacks, PRLibrary* aLibrary); |
. |
ns4xPluginInstance(NPPluginFuncs* callbacks, PRLibrary* aLibrary); |
|
. |
|
// Use Release() to destroy this |
. |
// Use Release() to destroy this |
virtual ~ns4xPluginInstance(void); |
. |
virtual ~ns4xPluginInstance(void); |
|
. |
|
// returns the state of mStarted |
. |
// returns the state of mStarted |
PRBool IsStarted(void); |
. |
PRBool IsStarted(void); |
|
. |
|
protected: |
. |
protected: |
|
. |
|
nsresult InitializePlugin(nsIPluginInstancePeer* peer); |
. |
nsresult InitializePlugin(nsIPluginInstancePeer* peer); |
|
. |
|
/** |
. |
/** |
* The plugin instance peer for this instance. |
. |
* The plugin instance peer for this instance. |
*/ |
. |
*/ |
nsCOMPtr<nsIPluginInstancePeer> mPeer; |
. |
nsCOMPtr<nsIPluginInstancePeer> mPeer; |
|
. |
|
/** |
. |
/** |
* A pointer to the plugin's callback functions. This information |
. |
* A pointer to the plugin's callback functions. This information |
* is actually stored in the plugin class (<b>nsPluginClass</b>), |
. |
* is actually stored in the plugin class (<b>nsPluginClass</b>), |
* and is common for all plugins of the class. |
. |
* and is common for all plugins of the class. |
*/ |
. |
*/ |
NPPluginFuncs* fCallbacks; |
. |
NPPluginFuncs* fCallbacks; |
|
. |
|
#ifdef MOZ_WIDGET_GTK |
. |
#ifdef MOZ_WIDGET_GTK |
/** |
. |
/** |
* Special GtkXtBin widget that encapsulates the Xt toolkit |
. |
* Special GtkXtBin widget that encapsulates the Xt toolkit |
* within a Gtk Application |
. |
* within a Gtk Application |
*/ |
. |
*/ |
GtkWidget *mXtBin; |
. |
GtkWidget *mXtBin; |
#endif |
. |
#endif |
|
. |
|
/** |
. |
/** |
* The 4.x-style structure used to communicate between the plugin |
. |
* The 4.x-style structure used to communicate between the plugin |
* instance and the browser. |
. |
* instance and the browser. |
*/ |
. |
*/ |
NPP_t fNPP; |
. |
NPP_t fNPP; |
|
. |
|
//these are used to store the windowless properties |
. |
//these are used to store the windowless properties |
//which the browser will later query |
. |
//which the browser will later query |
|
. |
|
PRBool mWindowless; |
. |
PRBool mWindowless; |
PRBool mTransparent; |
. |
PRBool mTransparent; |
PRBool mStarted; |
. |
PRBool mStarted; |
|
. |
|
public: |
. |
public: |
PRLibrary* fLibrary; |
. |
PRLibrary* fLibrary; |
}; |
. |
}; |
|
. |
|
#endif // ns4xPluginInstance_h__ |
. |
#endif // ns4xPluginInstance_h__ |