--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/javalegacyutils/javasrc/com/nokia/mj/impl/rt/legacy/ToolkitInvoker.java Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+package com.nokia.mj.impl.rt.legacy;
+
+import java.util.Hashtable;
+
+public abstract class ToolkitInvoker
+{
+ private static ToolkitInvoker sInvoker;
+
+ protected static synchronized void setInvoker(ToolkitInvoker aInvoker)
+ {
+ if (null != sInvoker)
+ {
+ throw new RuntimeException("Toolkit invoker already exists");
+ }
+ sInvoker = aInvoker;
+ }
+
+ public static synchronized ToolkitInvoker getToolkitInvoker()
+ {
+ if (sInvoker == null)
+ {
+ try
+ {
+ // It's a static initializer of this class that installs
+ // the concrete invoker object by calling setInvoker()
+ Class.forName("javax.microedition.lcdui.ToolkitInvoker");
+ }
+ catch (ClassNotFoundException x)
+ {
+ throw new Error("Failed to load the toolkit class: " + x);
+ }
+ }
+ return sInvoker;
+ }
+
+ public abstract void createToolkit(Hashtable args, boolean startInBackGround);
+
+ /**
+ * MIDP 2.0 Game support
+ */
+
+ //
+ // Toolkit access
+ //
+ public abstract Object getToolkit();
+
+ /**
+ * unsafe
+ */
+ public abstract int toolkitGetHandle(Object aToolkit);
+
+ public abstract void toolkitDisposeObject(Object aToolkit,int aHandle);
+
+ public abstract void toolkitSync(Object aToolkit);
+
+ /**
+ * NGA specific change.
+ * New variant for synchronization initiated from M3G
+ * @param aToolkit -
+ * @param aObject -
+ * @since S60 9.2
+ */
+ public abstract void toolkitSync(Object aToolkit, Object aObject);
+
+ /**
+ * NGA specific change.
+ * Checks if the NGA flag is set
+ * @return true if the NGA flag is set
+ * @since S60 9.2
+ */
+ public abstract boolean isNgaEnabled();
+
+ //
+ // Image access
+ //
+ public abstract int imageGetHandle(Object aImage);
+ public abstract boolean imageIsMutable(Object aImage);
+ public abstract boolean imageHasTransparency(Object aImage);
+
+ /**
+ Detect pixel level collision between two Images.
+ @param aImage1 sprite1 raw frame image
+ @param aS1X1,aS1Y1,aS1X2,aS1Y2 sprite1 collision rect (clipped to frame rect) in sprite1 raw frame image co-ordinates
+ @param aTransform1 sprite1 transform
+ @param aD1X1, aD1Y1 position of sprite1 transformed collision rect (clipped to frame rect) in painter's co-ordinates
+ @param aImage2 sprite2\image\tiledlayer image
+ @param aS2X1,aS2Y1,aS2X2,aS2Y2 sprite2\image\tiledlayer collision rect in image co-ordinates
+ @param aTransform2 sprite2 transform. 0 if image\tiledlayer
+ @param aD2X1, aD2Y1 position of collision rect in painter's coordinates
+ */
+ public abstract boolean imageCollision(Object aImage1,
+ int aS1X1,int aS1Y1,int aS1X2,int aS1Y2,
+ int aTransform1,
+ int aD1X1, int aD1Y1,
+ Object aImage2,
+ int aS2X1,int aS2Y1,int aS2X2,int aS2Y2,
+ int aTransform2,
+ int aD2X1, int aD2Y1
+ );
+
+ //
+ // Game Canvas support
+ //
+ public abstract Object canvasInitGameCanvas(Object aCanvas, boolean aSuppressKeys);
+ public abstract Object canvasGetBufferGraphics(Object aCanvas);
+ public abstract int canvasGetKeyStates(Object aCanvas);
+ public abstract int canvasGetHandle(Object aCanvas);
+ public abstract void canvasRenderGraphics(Object aCanvas, Object aGraphics);
+ public abstract void canvasFlushGraphics(Object aCanvas, int aX, int aY, int aW, int aH);
+
+ // Graphics
+ /**
+ * @return the MMIDGraphics handle for a graphics instance.
+ *
+ * WARNING: Unsupported. The validity of the return handle cannot be guaranteed. It should not be
+ * dereferenced on anythread other than the UI thread on which the native graphics peer was instantiated.
+ *
+ */
+ public abstract int graphicsGetHandle(Object aGraphics);
+
+ /**
+ * @return the MMIDImage handle for a mutable image that is the target surface of
+ * a graphics instance.
+ *
+ * WARNING: Unsupported. The validity of the return handle cannot be guaranteed. It should not be
+ * dereferenced on anythread other than the UI thread on which the native graphics peer was instantiated.
+ *
+ */
+ public abstract int graphicsGetMutableImageHandle(Object aGraphics);
+
+ /**
+ * JSR 135 support
+ */
+ public abstract int getUIEventServerHandle();
+ public abstract int itemGetHandle(Object aItem);
+ public abstract void addObserver(Object aToolkit,ToolkitObserver aObserver);
+ public abstract void removeObserver(Object aToolkit,ToolkitObserver aObserver);
+
+ /** S60 AddOn for JSR135
+ * Getter for Displayable's native handle.
+ * Object parameter is used because runtime package
+ * don't know Displayable class.
+ * @param aDisplayable Displayable which handle is returned.
+ * @return Native handle for displayable.
+ */
+ public abstract int getDisplayableHandle(Object aDisplayable);
+
+ /**
+ * Getter for Item's native handle.
+ * Object parameter is used because runtime package
+ * don't know Item class.
+ * @param aItem Item which handle is returned.
+ * @return Native handle for item.
+ */
+ public abstract int getItemHandle(Object aItem);
+
+}