mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,423 @@
|
||||
/*
|
||||
File: JavaApplet.h
|
||||
|
||||
Contains: interface to embedding a Java Applet in a Carbon Control
|
||||
|
||||
Version: QuickTime 7.3
|
||||
|
||||
Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved.
|
||||
|
||||
Bugs?: For bug reports, consult the following page on
|
||||
the World Wide Web:
|
||||
|
||||
http://developer.apple.com/bugreporter/
|
||||
|
||||
*/
|
||||
#ifndef __MACTYPES__
|
||||
#include <MacTypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CFDICTIONARY__
|
||||
#include <CFDictionary.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CFSTRING__
|
||||
#include <CFString.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CFURL__
|
||||
#include <CFURL.h>
|
||||
#endif
|
||||
|
||||
#ifndef __JAVACONTROL__
|
||||
#include <JavaControl.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#if PRAGMA_ONCE
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if PRAGMA_IMPORT
|
||||
#pragma import on
|
||||
#endif
|
||||
|
||||
#if PRAGMA_STRUCT_ALIGN
|
||||
#pragma options align=mac68k
|
||||
#elif PRAGMA_STRUCT_PACKPUSH
|
||||
#pragma pack(push, 2)
|
||||
#elif PRAGMA_STRUCT_PACK
|
||||
#pragma pack(2)
|
||||
#endif
|
||||
|
||||
#if PRAGMA_ENUM_ALWAYSINT
|
||||
#if defined(__fourbyteints__) && !__fourbyteints__
|
||||
#define __JAVAAPPLET__RESTORE_TWOBYTEINTS
|
||||
#pragma fourbyteints on
|
||||
#endif
|
||||
#pragma enumsalwaysint on
|
||||
#elif PRAGMA_ENUM_OPTIONS
|
||||
#pragma option enum=int
|
||||
#elif PRAGMA_ENUM_PACK
|
||||
#if __option(pack_enums)
|
||||
#define __JAVAAPPLET__RESTORE_PACKED_ENUMS
|
||||
#pragma options(!pack_enums)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* AppletDescriptor
|
||||
*
|
||||
* Discussion:
|
||||
* The structure for describing applet. This is used as the
|
||||
* definition of the applet to create when you call CreateJavaApplet.
|
||||
*/
|
||||
struct AppletDescriptor {
|
||||
CFURLRef docBase;
|
||||
CFURLRef codeBase;
|
||||
|
||||
/*
|
||||
* The attributes found in the <applet ...> tag formatted as a
|
||||
* CFDictionary of CFStrings. For attributes like height and width
|
||||
* they should be in screen coordinates. some Applets define them as
|
||||
* % (for example 90%) and should be converted to pixels before put
|
||||
* into the dictionary.
|
||||
*/
|
||||
CFDictionaryRef htmlAttrs;
|
||||
|
||||
/*
|
||||
* The parameters to the applet formatted as a CFDictionary of
|
||||
* CFStrings. These are typically found in <param ...> tags inside of
|
||||
* the applet tag.
|
||||
*/
|
||||
CFDictionaryRef appletParams;
|
||||
};
|
||||
typedef struct AppletDescriptor AppletDescriptor;
|
||||
|
||||
/*
|
||||
* AppletArena
|
||||
*
|
||||
* Discussion:
|
||||
* This is an opaque type that represents an AppletArena - an applet
|
||||
* arena represents a single classloader, so all applets that share
|
||||
* an arena share a common classloader.
|
||||
*/
|
||||
typedef struct OpaqueAppletArena* AppletArena;
|
||||
/*
|
||||
kUniqueArena is the value to pass to CreateJavaApplet if you want the applet to be created
|
||||
in a unique arena. A unique arena is one which is guaranteed not to be shared with
|
||||
any other applet running in this Java VM. This is the appropriate default value to
|
||||
pass to CreateJavaApplet.
|
||||
*/
|
||||
#define kUniqueArena ((AppletArena)NULL)
|
||||
|
||||
/*
|
||||
* JE_ShowDocumentCallback
|
||||
*
|
||||
* Discussion:
|
||||
* Type of a callback function used for show document (link) message
|
||||
* from an applet.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* applet:
|
||||
* The applet which sent this show document message.
|
||||
*
|
||||
* url:
|
||||
* The url to load.
|
||||
*
|
||||
* windowName:
|
||||
* A string definition of where to open the url. Null means open
|
||||
* in place, other strings are defined in the HTML spec, like
|
||||
* "_top" means the parent window of the applet if it happens to
|
||||
* be in a frame, etc.
|
||||
*
|
||||
* userData:
|
||||
* Data specified when this callback was registered using
|
||||
* RegisterShowDocumentCallback.
|
||||
*/
|
||||
typedef CALLBACK_API_C( void , JE_ShowDocumentCallback )(jobject applet, CFURLRef url, CFStringRef windowName, void *userData);
|
||||
|
||||
/*
|
||||
* JE_SetStatusCallback
|
||||
*
|
||||
* Discussion:
|
||||
* Type of a callback function used for a status message from an
|
||||
* applet.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* applet:
|
||||
* The applet which sent this status message.
|
||||
*
|
||||
* statusMessage:
|
||||
* The message to be displayed.
|
||||
*
|
||||
* userData:
|
||||
* Data specified when this callback was registered using
|
||||
* RegisterStatusCallback.
|
||||
*/
|
||||
typedef CALLBACK_API_C( void , JE_SetStatusCallback )(jobject applet, CFStringRef statusMessage, void *userData);
|
||||
/*
|
||||
* GetEmbeddingVMParams()
|
||||
*
|
||||
* Discussion:
|
||||
* Gets a set of VM params that can be passed to JNI_CreateJavaVM.
|
||||
* These params are optimized for Java embedding, and also contain
|
||||
* all user-specified options.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* ioJavaVMInitArgs:
|
||||
* A Java VM initialization argument structure that you create.
|
||||
* This function will clear any fields set in the structure and
|
||||
* filled in with new data on completion.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
GetEmbeddingVMParams(JavaVMInitArgs * ioJavaVMInitArgs);
|
||||
|
||||
|
||||
/*
|
||||
* CreateAppletArena()
|
||||
*
|
||||
* Discussion:
|
||||
* Create an applet arena. By default each applet you create will
|
||||
* have its own "arena". By creating an applet arena, and passing
|
||||
* that arena into two or more CreateJavaApplet calls, those applets
|
||||
* will share a single classloader and thus be able to communicate
|
||||
* with each other through static objects.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* outNewArena:
|
||||
* The newly created applet arena.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
CreateAppletArena(AppletArena * outNewArena);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* CreateJavaApplet()
|
||||
*
|
||||
* Discussion:
|
||||
* Creates a java applet from a descriptor.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI environment for the current thread.
|
||||
*
|
||||
* applet:
|
||||
* A full descriptor of the applet being loaded. See
|
||||
* AppletDescriptor.
|
||||
*
|
||||
* trusted:
|
||||
* Whether this applet should be loaded as trusted.
|
||||
*
|
||||
* arena:
|
||||
* The arena for this applet. If this is set to null then a new
|
||||
* arena will be created. This is the typcial case for applets.
|
||||
*
|
||||
* outJavaFrame:
|
||||
* Returns JNI global ref. Used for registering callbacks and
|
||||
* creating controls. Call env->DeleteGlobalRef() on it when done.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
CreateJavaApplet(
|
||||
JNIEnv * env,
|
||||
AppletDescriptor applet,
|
||||
Boolean trusted,
|
||||
AppletArena arena, /* can be NULL */
|
||||
jobject * outJavaFrame);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* AppletState
|
||||
*
|
||||
* Summary:
|
||||
* Constants that are passed to SetJavaAppletState.
|
||||
*/
|
||||
enum AppletState {
|
||||
kAppletStart = 1, /* Starts the applet processing 3.*/
|
||||
kAppletStop = 2, /* Halts the applet, but it can be started again.*/
|
||||
kAppletDestroy = 4 /* Tears down the applet.*/
|
||||
};
|
||||
typedef enum AppletState AppletState;
|
||||
|
||||
|
||||
/*
|
||||
* SetJavaAppletState()
|
||||
*
|
||||
* Discussion:
|
||||
* Sets the state of the current applet as defined by the applet
|
||||
* spec. Applets can be started and stopped many times, but
|
||||
* destroying them is final.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI environment for the current VM and thread.
|
||||
*
|
||||
* inAppletFrame:
|
||||
* The applet to register the status callback (from
|
||||
* CreateJavaApplet).
|
||||
*
|
||||
* inNewState:
|
||||
* Host defined data passed into showStatusFunction.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
SetJavaAppletState(
|
||||
JNIEnv * env,
|
||||
jobject inAppletFrame,
|
||||
AppletState inNewState);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* RegisterStatusCallback()
|
||||
*
|
||||
* Discussion:
|
||||
* Registers your function that will be called to update the
|
||||
* applet's status area. Status typically is put in a web browser as
|
||||
* a text area at the bottom of the page.
|
||||
*
|
||||
* Note that this callback will be called from a preemptive thread,
|
||||
* and if the host application is using cooperative threads they
|
||||
* will need to push this into their own event system in order to
|
||||
* handle this correctly.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI environment for the current VM and thread.
|
||||
*
|
||||
* inJavaFrame:
|
||||
* The applet to register the status callback (from
|
||||
* CreateJavaApplet).
|
||||
*
|
||||
* showStatusFunction:
|
||||
* The function that will be called when the applet calls
|
||||
* showStatus(...).
|
||||
*
|
||||
* userData:
|
||||
* Host defined data passed into showStatusFunction.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
RegisterStatusCallback(
|
||||
JNIEnv * env,
|
||||
jobject inJavaFrame,
|
||||
JE_SetStatusCallback showStatusFunction,
|
||||
void * userData);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* RegisterShowDocumentCallback()
|
||||
*
|
||||
* Discussion:
|
||||
* Registers your function that will be called when the applet
|
||||
* behaves like a hyperlink. This will be called to move an
|
||||
* embedding host application to a new URL.
|
||||
*
|
||||
* Note that this callback will be called from a preemptive thread,
|
||||
* and if the host application is using cooperative threads they
|
||||
* will need to push this into their own event system in order to
|
||||
* handle this correctly.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI environment for the current VM and thread.
|
||||
*
|
||||
* inJavaFrame:
|
||||
* The applet to register the show document callback (from
|
||||
* CreateJavaApplet).
|
||||
*
|
||||
* showDocumentFunction:
|
||||
* The function that will be called when the applet calls
|
||||
* showDocument().
|
||||
*
|
||||
* userData:
|
||||
* Host defined data passed into showDocumentFunction.
|
||||
*
|
||||
* Result:
|
||||
* An operating system status code.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
RegisterShowDocumentCallback(
|
||||
JNIEnv * env,
|
||||
jobject inJavaFrame,
|
||||
JE_ShowDocumentCallback showDocumentFunction,
|
||||
void * userData);
|
||||
|
||||
|
||||
|
||||
|
||||
#if PRAGMA_ENUM_ALWAYSINT
|
||||
#pragma enumsalwaysint reset
|
||||
#ifdef __JAVAAPPLET__RESTORE_TWOBYTEINTS
|
||||
#pragma fourbyteints off
|
||||
#endif
|
||||
#elif PRAGMA_ENUM_OPTIONS
|
||||
#pragma option enum=reset
|
||||
#elif defined(__JAVAAPPLET__RESTORE_PACKED_ENUMS)
|
||||
#pragma options(pack_enums)
|
||||
#endif
|
||||
|
||||
#if PRAGMA_STRUCT_ALIGN
|
||||
#pragma options align=reset
|
||||
#elif PRAGMA_STRUCT_PACKPUSH
|
||||
#pragma pack(pop)
|
||||
#elif PRAGMA_STRUCT_PACK
|
||||
#pragma pack()
|
||||
#endif
|
||||
|
||||
#ifdef PRAGMA_IMPORT_OFF
|
||||
#pragma import off
|
||||
#elif PRAGMA_IMPORT
|
||||
#pragma import reset
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user