added isStateKeySet for checking LOCK keys

This commit is contained in:
Brian Matzon 2003-08-19 15:15:00 +00:00
parent caed320677
commit 61305f4107
4 changed files with 45 additions and 1 deletions

View File

@ -397,6 +397,18 @@ public class Keyboard {
assert created : "The keyboard has not been created.";
return keyDownBuffer.get(key) != 0;
}
/**
* Checks whether one of the state keys are "active"
*
* @param key State key to test (KEY_CAPITAL | KEY_NUMLOCK | KEY_SYSRQ)
* @return true if state key is on
*/
public static boolean isStateKeySet(int key) {
assert created : "The keyboard has not been created.";
return nisStateKeySet(key);
}
private static native boolean nisStateKeySet(int key);
/**
* Gets a key's name

View File

@ -133,7 +133,6 @@ public class KeyboardTest {
Keyboard.read();
int count = Keyboard.getNumKeyboardEvents();
System.out.println("Read " + count + " events");
while(Keyboard.next()) {
System.out.println("Checking key:" + Keyboard.getKeyName(Keyboard.key));
if(Keyboard.key == Keyboard.KEY_ESCAPE) {
@ -160,6 +159,17 @@ public class KeyboardTest {
position.y -= 1;
}
if(Keyboard.isStateKeySet(Keyboard.KEY_SCROLL)) {
System.out.println("SCROLL lock on");
}
if(Keyboard.isStateKeySet(Keyboard.KEY_CAPITAL)) {
System.out.println("CAPS lock on");
}
if(Keyboard.isStateKeySet(Keyboard.KEY_NUMLOCK)) {
System.out.println("NUM lock on");
}
}
if (count > 0) {
System.out.println();

View File

@ -323,6 +323,14 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_Keyboard_nEnableTranslation
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_input_Keyboard_nEnableBuffer
(JNIEnv *, jclass);
/*
* Class: org_lwjgl_input_Keyboard
* Method: nisStateKeySet
* Signature: (I)Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_Keyboard_nisStateKeySet
(JNIEnv *, jclass, jint);
#ifdef __cplusplus
}

View File

@ -331,3 +331,17 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_input_Keyboard_nEnableBuffer
env->SetStaticObjectField(clazz, fid_readBuffer, newBuffer);
return KEYBOARD_BUFFER_SIZE;
}
/*
* Class: org_lwjgl_input_Keyboard
* Method: nisStateKeySet
* Signature: (I)Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_Keyboard_nisStateKeySet(JNIEnv *env, jclass clazz, jint key)
{
switch(key) {
case org_lwjgl_input_Keyboard_KEY_CAPITAL: return GetKeyState(VK_CAPITAL);
case org_lwjgl_input_Keyboard_KEY_NUMLOCK: return GetKeyState(VK_NUMLOCK);
case org_lwjgl_input_Keyboard_KEY_SCROLL: return GetKeyState(VK_SCROLL);
}
}