summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/JavaApplet.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/JavaApplet.h')
-rw-r--r--common/quicktime_win32/JavaApplet.h423
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