diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/JavaApplet.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/JavaApplet.h')
| -rw-r--r-- | common/quicktime_win32/JavaApplet.h | 423 |
1 files changed, 423 insertions, 0 deletions
diff --git a/common/quicktime_win32/JavaApplet.h b/common/quicktime_win32/JavaApplet.h new file mode 100644 index 0000000..64d217f --- /dev/null +++ b/common/quicktime_win32/JavaApplet.h @@ -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 |