This checkin enables the KeyListener feature.

A webclient/test/automated/src/classes/org/mozilla/webclient/KeyListenerTest.java
A webclient/test/automated/src/test/KeyListenerTest1.html
M webclient/build-tests.xml

- add new testcase

M webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
M webclient/classes_spec/org/mozilla/webclient/EventRegistration2.java

- allow KeyListeners to be added and removed.

M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java

- Lazily create listener lists.

- Change the contract of queueEvent() to discard null events silently.

- Add createKeyEvent() method.

M webclient/src_moz/EmbedEventListener.cpp

- new mask names and values, DOMDOMKeyListener_maskNames,
  DOMKeyListener_maskValues.

- flesh out Key*() events.

- add addKeyEventDataToProperties.

- use eventType to discern how to populate the properties, with either key or
  mouse data.

M webclient/src_moz/EmbedEventListener.h

- key event includes and support methods.

M webclient/src_moz/EmbedProgress.cpp

- honor new last argument to util_InitializeEventMaskValuesFromClass().

M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h

- new constants

+jobject CHAR_CODE;
+jobject KEY_CODE;
+jstring KEY_LISTENER_CLASSNAME;
+char *DOMKeyListener_maskNames[] = {

M webclient/src_share/jni_util_export.cpp
M webclient/src_share/jni_util_export.h

- new last argument to

 util_InitializeEventMaskValuesFromClass(const char *className,
                                         char *maskNames[],
-                                        jlong maskValues[])
+                                        jlong maskValuesLong[],
+                                        jint maskValuesInt[])

  Used when the maskValues are ints, otherwise null.


git-svn-id: svn://10.0.0.236/trunk@166003 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
edburns%acm.org
2004-12-01 03:21:23 +00:00
parent 8bbaa8a03e
commit 90fb2a4018
13 changed files with 655 additions and 61 deletions

View File

@@ -55,6 +55,8 @@ jobject SCREEN_X_KEY;
jobject SCREEN_Y_KEY;
jobject CLIENT_X_KEY;
jobject CLIENT_Y_KEY;
jobject CHAR_CODE;
jobject KEY_CODE;
jobject ALT_KEY;
jobject CTRL_KEY;
jobject SHIFT_KEY;
@@ -85,6 +87,7 @@ jobject BM_IS_FOLDER_VALUE;
jstring DOCUMENT_LOAD_LISTENER_CLASSNAME;
jstring MOUSE_LISTENER_CLASSNAME;
jstring KEY_LISTENER_CLASSNAME;
jstring NEW_WINDOW_LISTENER_CLASSNAME;
jlong DocumentLoader_maskValues[] = { -1L };
@@ -111,6 +114,14 @@ char *DOMMouseListener_maskNames[] = {
nsnull
};
jint DOMKeyListener_maskValues[] = { -1 };
char *DOMKeyListener_maskNames[] = {
KEY_PRESSED_EVENT_MASK_VALUE,
KEY_RELEASED_EVENT_MASK_VALUE,
KEY_TYPED_EVENT_MASK_VALUE,
nsnull
};
void util_InitializeShareInitContext(JNIEnv *env,
void *yourInitContext)
{
@@ -152,6 +163,16 @@ jboolean util_InitStringConstants()
::util_NewStringUTF(env, "ClientY")))) {
return JNI_FALSE;
}
if (nsnull == (CHAR_CODE =
::util_NewGlobalRef(env, (jobject)
::util_NewStringUTF(env, "KeyCode")))) {
return JNI_FALSE;
}
if (nsnull == (KEY_CODE =
::util_NewGlobalRef(env, (jobject)
::util_NewStringUTF(env, "KeyChar")))) {
return JNI_FALSE;
}
if (nsnull == (ALT_KEY =
::util_NewGlobalRef(env, (jobject)
::util_NewStringUTF(env, "Alt")))) {
@@ -308,6 +329,12 @@ jboolean util_InitStringConstants()
MOUSE_LISTENER_CLASSNAME_VALUE)))) {
return JNI_FALSE;
}
if (nsnull == (KEY_LISTENER_CLASSNAME = (jstring)
::util_NewGlobalRef(env, (jobject)
::util_NewStringUTF(env,
KEY_LISTENER_CLASSNAME_VALUE)))) {
return JNI_FALSE;
}
if (nsnull == (NEW_WINDOW_LISTENER_CLASSNAME = (jstring)
::util_NewGlobalRef(env, (jobject)
::util_NewStringUTF(env,
@@ -537,6 +564,17 @@ jlong util_GetStaticLongField(JNIEnv *env, jclass clazz, jfieldID id)
return result;
}
jint util_GetStaticIntField(JNIEnv *env, jclass clazz, jfieldID id)
{
jint result = -1;
#ifdef BAL_INTERFACE
#else
result = env->GetStaticIntField(clazz, id);
#endif
return result;
}
jboolean util_IsInstanceOf(JNIEnv *env, jobject obj, jclass clazz)
{
jboolean result = JNI_FALSE;