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,457 @@
|
||||
/*
|
||||
File: JavaControl.h
|
||||
|
||||
Contains: interface to embedding Java code 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 __CONTROLS__
|
||||
#include <Controls.h>
|
||||
#endif
|
||||
|
||||
#ifndef __MACWINDOWS__
|
||||
#include <MacWindows.h>
|
||||
#endif
|
||||
|
||||
#include <JavaVM/jni.h>
|
||||
|
||||
|
||||
#if PRAGMA_ONCE
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if PRAGMA_IMPORT
|
||||
#pragma import on
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Summary:
|
||||
* JavaControl Embedding errors
|
||||
*
|
||||
* Discussion:
|
||||
* The following are all errors which can be returned from the
|
||||
* routines contained in this file. Most are self explanatory.
|
||||
*/
|
||||
enum {
|
||||
errJavaEmbeddingNotYetImplemented = -9950,
|
||||
errJavaEmbeddingIntializationFailed = -9962, /* previously errClassConstructorNotFound, errClassNotFound, and errMethodNotFound*/
|
||||
errJavaEmbeddingMissingURL = -9955, /* previously errMissingURL*/
|
||||
errJavaEmbeddingCouldNotCreateApplet = -9956, /* previously errCouldNotCreateApplet*/
|
||||
errJavaEmbeddingCouldNotEmbedFrame = -9957, /* previously errCouldNotEmbedFrame */
|
||||
errJavaEmbeddingCouldNotConvertURL = -9958, /* previously errCouldNotConvertURL*/
|
||||
errJavaEmbeddingNotAFrame = -9959, /* previously errNotAFrame*/
|
||||
errJavaEmbeddingControlNotEmbedded = -9960, /* previously errControlNotEmbedded*/
|
||||
errJavaEmbeddingExceptionThrown = -9961, /* previously errExceptionThrown*/
|
||||
errJavaEmbeddingJavaDisabled = -9963
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* MoveAndClipJavaControl()
|
||||
*
|
||||
* Summary:
|
||||
* Positions the control in the containing window, and sets the clip
|
||||
* bounds for drawing.
|
||||
*
|
||||
* Discussion:
|
||||
* All coordinates are local to the host window, and 0,0 is the top
|
||||
* left corner of the content area of the host window - just below
|
||||
* the title bar.
|
||||
* Usually a call to MoveAndClipJavaControl is followed by a call to
|
||||
* DrawJavaControl.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* theControl:
|
||||
* The Java control (applet).
|
||||
*
|
||||
* posX:
|
||||
* The x position of the control.
|
||||
*
|
||||
* posY:
|
||||
* The y position of the control.
|
||||
*
|
||||
* clipX:
|
||||
* The left of the clip region.
|
||||
*
|
||||
* clipY:
|
||||
* The top of the clip region.
|
||||
*
|
||||
* clipWidth:
|
||||
* The width of the clip region. (Notice this is not right, but
|
||||
* width)
|
||||
*
|
||||
* clipHeight:
|
||||
* The height of the clip region. (Notice this is not bottom, but
|
||||
* height)
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
MoveAndClipJavaControl(
|
||||
JNIEnv * env,
|
||||
ControlRef theControl,
|
||||
int posX,
|
||||
int posY,
|
||||
int clipX,
|
||||
int clipY,
|
||||
int clipWidth,
|
||||
int clipHeight);
|
||||
|
||||
|
||||
/*
|
||||
* SizeJavaControl()
|
||||
*
|
||||
* Summary:
|
||||
* Sets the size of the Java control.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
SizeJavaControl(
|
||||
JNIEnv * env,
|
||||
ControlRef theControl,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
|
||||
/*
|
||||
* ShowHideJavaControl()
|
||||
*
|
||||
* Summary:
|
||||
* Makes a Java control visible or invisible.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* theControl:
|
||||
* The Java control (applet).
|
||||
*
|
||||
* visible:
|
||||
* True shows the control.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
ShowHideJavaControl(
|
||||
JNIEnv * env,
|
||||
ControlRef theControl,
|
||||
Boolean visible);
|
||||
|
||||
|
||||
/*
|
||||
* StopJavaControlAsyncDrawing()
|
||||
*
|
||||
* Summary:
|
||||
* Stops a Java applet from drawing asynchonously.
|
||||
*
|
||||
* Discussion:
|
||||
* Many applets are used for animation and they draw themselves at
|
||||
* times other than when the control is drawn. In order to handle
|
||||
* things like live resize and scrolling a host app must be able to
|
||||
* suspend asynchronous drawing otherwise a draw may occur before
|
||||
* the host app is able to reposition/reclip the control thus
|
||||
* causing drawing in the wrong location. When async drawing is off
|
||||
* normal paint events in an applet are ignored. Only
|
||||
* DrawJavaControl events are allowed to paint. This allows
|
||||
* temporary fine grained control of when an applet can paint, and
|
||||
* should only be used when needed.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* theControl:
|
||||
* The Java control (applet).
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
StopJavaControlAsyncDrawing(
|
||||
JNIEnv * env,
|
||||
ControlRef theControl);
|
||||
|
||||
|
||||
/*
|
||||
* RestartJavaControlAsyncDrawing()
|
||||
*
|
||||
* Summary:
|
||||
* Allows a Java applet to draw asynchonously.
|
||||
*
|
||||
* Discussion:
|
||||
* This should be called when it is safe again for an applet to draw
|
||||
* asynchronously. See StopJavaControlAsyncDrawing.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* theControl:
|
||||
* The Java control (applet).
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
RestartJavaControlAsyncDrawing(
|
||||
JNIEnv * env,
|
||||
ControlRef theControl);
|
||||
|
||||
|
||||
/*
|
||||
* DrawJavaControl()
|
||||
*
|
||||
* Summary:
|
||||
* Causes a Java control that to be drawn.
|
||||
*
|
||||
* Discussion:
|
||||
* This should be called whenever the host app needs the
|
||||
* applet/control to be redrawn. In the case where Async drawing is
|
||||
* paused, DrawJavaControl will still cause the applet to draw. So
|
||||
* if the host app is stopping async drawing for something like live
|
||||
* scrolling, if there are convenient times the host app should call
|
||||
* DrawJavaControl (usually after a call to MoveAndClipJavaControl)
|
||||
* to provide some feedback to the user.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* theControl:
|
||||
* The corresponding Java control (applet) that is to be drawn.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
DrawJavaControl(
|
||||
JNIEnv * env,
|
||||
ControlRef theControl);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
========================================================================================
|
||||
UTILITY API - functions to determine the status of a window or control
|
||||
========================================================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
* GetJavaWindowFromWindow()
|
||||
*
|
||||
* Discussion:
|
||||
* Given a native Carbon window this returns the corresponding Java
|
||||
* window.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* inMacWindow:
|
||||
* A reference to a native window.
|
||||
*
|
||||
* outJavaWindow:
|
||||
* Returns a JNI global ref. 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 )
|
||||
GetJavaWindowFromWindow(
|
||||
JNIEnv * env,
|
||||
WindowRef inMacWindow,
|
||||
jobject * outJavaWindow);
|
||||
|
||||
|
||||
/*
|
||||
* GetWindowFromJavaWindow()
|
||||
*
|
||||
* Discussion:
|
||||
* Given a Java window this returns the corresponding native Carbon
|
||||
* window.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* inJavaWindow:
|
||||
* A reference to a Java window.
|
||||
*
|
||||
* outMacWindow:
|
||||
* The corresponding native window.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
GetWindowFromJavaWindow(
|
||||
JNIEnv * env,
|
||||
jobject inJavaWindow,
|
||||
WindowRef * outMacWindow);
|
||||
|
||||
|
||||
/*
|
||||
* GetJavaFrameFromControl()
|
||||
*
|
||||
* Discussion:
|
||||
* Given an embedded control this returns the corresponding Java
|
||||
* applet frame.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* inMacControl:
|
||||
* A reference to the control for the applet.
|
||||
*
|
||||
* outJavaFrame:
|
||||
* Returns a JNI global ref. 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 )
|
||||
GetJavaFrameFromControl(
|
||||
JNIEnv * env,
|
||||
ControlRef inMacControl,
|
||||
jobject * outJavaFrame);
|
||||
|
||||
|
||||
/*
|
||||
* GetControlFromJavaFrame()
|
||||
*
|
||||
* Discussion:
|
||||
* Given a Java applet frame reference this returns the embedded
|
||||
* control.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* inJavaFrame:
|
||||
* The applet reference obtained from CreateJavaApplet.
|
||||
*
|
||||
* outMacControl:
|
||||
* A reference to the control for the applet.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
GetControlFromJavaFrame(
|
||||
JNIEnv * env,
|
||||
jobject inJavaFrame,
|
||||
ControlRef * outMacControl);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* CreateJavaControl()
|
||||
*
|
||||
* Discussion:
|
||||
* Creates a control for the specified applet whose content is drawn
|
||||
* and events processed by java.
|
||||
* All communication to this control should be through the APIs
|
||||
* specified here in JavaControl.h.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* env:
|
||||
* The JNI Environment for the current thread.
|
||||
*
|
||||
* inNativeWindow:
|
||||
* The carbon window that will host the applet.
|
||||
*
|
||||
* inBounds:
|
||||
* The starting location for the applet.
|
||||
*
|
||||
* inAppletFrame:
|
||||
* The applet reference obtained from CreateJavaApplet.
|
||||
*
|
||||
* inVisible:
|
||||
* True if the applet should start out hidden.
|
||||
*
|
||||
* outControl:
|
||||
* A reference to the control that is created for the applet.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
CreateJavaControl(
|
||||
JNIEnv * env,
|
||||
WindowRef inNativeWindow,
|
||||
const Rect * inBounds,
|
||||
jobject inAppletFrame,
|
||||
Boolean inVisible,
|
||||
ControlRef * outControl);
|
||||
|
||||
|
||||
|
||||
#ifdef PRAGMA_IMPORT_OFF
|
||||
#pragma import off
|
||||
#elif PRAGMA_IMPORT
|
||||
#pragma import reset
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user