jmekaelthas 10 years ago
commit d399e0594b
  1. 5
      jme3-android/src/main/java/com/jme3/app/AndroidHarness.java
  2. 4
      jme3-android/src/main/java/com/jme3/input/android/AndroidInput.java
  3. 18
      jme3-android/src/main/java/com/jme3/input/android/AndroidInputHandler.java
  4. 20
      jme3-android/src/main/java/com/jme3/input/android/AndroidKeyHandler.java
  5. 27
      jme3-core/src/main/java/com/jme3/input/InputManager.java
  6. 18
      jme3-core/src/main/java/com/jme3/input/TouchInput.java
  7. 20
      jme3-core/src/main/java/com/jme3/system/AppSettings.java
  8. 4
      jme3-core/src/main/java/com/jme3/system/JmeSystem.java
  9. 14
      jme3-ios/src/main/java/com/jme3/input/ios/IosInputHandler.java

@ -107,6 +107,10 @@ public class AndroidHarness extends Activity implements TouchListener, DialogInt
* JoyAxisTriggers. * JoyAxisTriggers.
*/ */
protected boolean joystickEventsEnabled = false; protected boolean joystickEventsEnabled = false;
/**
* If true KeyEvents are generated from TouchEvents
*/
protected boolean keyEventsEnabled = true;
/** /**
* If true MouseEvents are generated from TouchEvents * If true MouseEvents are generated from TouchEvents
*/ */
@ -224,6 +228,7 @@ public class AndroidHarness extends Activity implements TouchListener, DialogInt
settings.setEmulateMouse(mouseEventsEnabled); settings.setEmulateMouse(mouseEventsEnabled);
settings.setEmulateMouseFlipAxis(mouseEventsInvertX, mouseEventsInvertY); settings.setEmulateMouseFlipAxis(mouseEventsInvertX, mouseEventsInvertY);
settings.setUseJoysticks(joystickEventsEnabled); settings.setUseJoysticks(joystickEventsEnabled);
settings.setEmulateKeyboard(keyEventsEnabled);
settings.setBitsPerPixel(eglBitsPerPixel); settings.setBitsPerPixel(eglBitsPerPixel);
settings.setAlphaBits(eglAlphaBits); settings.setAlphaBits(eglAlphaBits);

@ -679,8 +679,8 @@ public class AndroidInput implements
return mouseEventsEnabled; return mouseEventsEnabled;
} }
public void showVirtualKeyboard(boolean visible) { public boolean isSimulateKeyboard() {
throw new UnsupportedOperationException("Not supported yet."); return keyboardEventsEnabled;
} }
} }

@ -136,8 +136,7 @@ public class AndroidInputHandler implements TouchInput {
} }
public void loadSettings(AppSettings settings) { public void loadSettings(AppSettings settings) {
// TODO: add simulate keyboard to settings keyboardEventsEnabled = settings.isEmulateKeyboard();
// keyboardEventsEnabled = true;
mouseEventsEnabled = settings.isEmulateMouse(); mouseEventsEnabled = settings.isEmulateMouse();
mouseEventsInvertX = settings.isEmulateMouseFlipX(); mouseEventsInvertX = settings.isEmulateMouseFlipX();
mouseEventsInvertY = settings.isEmulateMouseFlipY(); mouseEventsInvertY = settings.isEmulateMouseFlipY();
@ -243,10 +242,6 @@ public class AndroidInputHandler implements TouchInput {
return mouseEventsEnabled; return mouseEventsEnabled;
} }
public boolean getSimulateMouse() {
return mouseEventsEnabled;
}
public boolean isMouseEventsInvertX() { public boolean isMouseEventsInvertX() {
return mouseEventsInvertX; return mouseEventsInvertX;
} }
@ -259,15 +254,12 @@ public class AndroidInputHandler implements TouchInput {
this.keyboardEventsEnabled = simulate; this.keyboardEventsEnabled = simulate;
} }
public void setOmitHistoricEvents(boolean dontSendHistory) { public boolean isSimulateKeyboard() {
this.dontSendHistory = dontSendHistory; return keyboardEventsEnabled;
} }
public void showVirtualKeyboard(boolean visible) { public void setOmitHistoricEvents(boolean dontSendHistory) {
if (keyHandler != null) { this.dontSendHistory = dontSendHistory;
keyHandler.showVirtualKeyboard(visible);
}
} }
} }

@ -108,7 +108,7 @@ public class AndroidKeyHandler implements View.OnKeyListener {
} }
if (androidInput.isSimulateKeyboard()) {
KeyInputEvent kie; KeyInputEvent kie;
char unicodeChar = (char)event.getUnicodeChar(); char unicodeChar = (char)event.getUnicodeChar();
int jmeKeyCode = AndroidKeyMapping.getJmeKey(keyCode); int jmeKeyCode = AndroidKeyMapping.getJmeKey(keyCode);
@ -122,6 +122,7 @@ public class AndroidKeyHandler implements View.OnKeyListener {
// logger.log(Level.FINE, "onKey keyCode: {0}, jmeKeyCode: {1}, pressed: {2}, repeating: {3}", // logger.log(Level.FINE, "onKey keyCode: {0}, jmeKeyCode: {1}, pressed: {2}, repeating: {3}",
// new Object[]{keyCode, jmeKeyCode, pressed, repeating}); // new Object[]{keyCode, jmeKeyCode, pressed, repeating});
// logger.log(Level.FINE, "creating KeyInputEvent: {0}", kie); // logger.log(Level.FINE, "creating KeyInputEvent: {0}", kie);
}
// consume all keys ourself except Volume Up/Down and Menu // consume all keys ourself except Volume Up/Down and Menu
// Don't do Menu so that typical Android Menus can be created and used // Don't do Menu so that typical Android Menus can be created and used
@ -133,24 +134,7 @@ public class AndroidKeyHandler implements View.OnKeyListener {
} else { } else {
return true; return true;
} }
}
public void showVirtualKeyboard (final boolean visible) {
androidInput.getView().getHandler().post(new Runnable() {
public void run() {
InputMethodManager manager =
(InputMethodManager)androidInput.getView().getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (visible) {
manager.showSoftInput(androidInput.getView(), 0);
sendKeyEvents = true;
} else {
manager.hideSoftInputFromWindow(androidInput.getView().getWindowToken(), 0);
sendKeyEvents = false;
}
}
});
} }
} }

@ -764,12 +764,25 @@ public class InputManager implements RawInputListener {
} }
} }
/** /**
* @deprecated Use isSimulateMouse
* Returns state of simulation of mouse events. Used for touchscreen input only. * Returns state of simulation of mouse events. Used for touchscreen input only.
* *
*/ */
public boolean getSimulateMouse() { public boolean getSimulateMouse() {
if (touch != null) { if (touch != null) {
return touch.getSimulateMouse(); return touch.isSimulateMouse();
} else {
return false;
}
}
/**
* Returns state of simulation of mouse events. Used for touchscreen input only.
*
*/
public boolean isSimulateMouse() {
if (touch != null) {
return touch.isSimulateMouse();
} else { } else {
return false; return false;
} }
@ -786,6 +799,18 @@ public class InputManager implements RawInputListener {
} }
} }
/**
* Returns state of simulation of key events. Used for touchscreen input only.
*
*/
public boolean isSimulateKeyboard() {
if (touch != null) {
return touch.isSimulateKeyboard();
} else {
return false;
}
}
private void processQueue() { private void processQueue() {
int queueSize = inputQueue.size(); int queueSize = inputQueue.size();
RawInputListener[] array = getRawListenerArray(); RawInputListener[] array = getRawListenerArray();

@ -73,13 +73,6 @@ public interface TouchInput extends Input {
*/ */
public void setSimulateMouse(boolean simulate); public void setSimulateMouse(boolean simulate);
/**
* Get if mouse events are generated
* @deprecated Use {@link #isSimulateMouse() }.
*/
@Deprecated
public boolean getSimulateMouse();
/** /**
* @return true if mouse event simulation is enabled, false otherwise. * @return true if mouse event simulation is enabled, false otherwise.
*/ */
@ -92,6 +85,11 @@ public interface TouchInput extends Input {
*/ */
public void setSimulateKeyboard(boolean simulate); public void setSimulateKeyboard(boolean simulate);
/**
* @return true if key event simulation is enabled, false otherwise.
*/
public boolean isSimulateKeyboard();
/** /**
* Set if historic android events should be transmitted, can be used to get better performance and less mem * Set if historic android events should be transmitted, can be used to get better performance and less mem
* @see <a href="http://developer.android.com/reference/android/view/MotionEvent.html#getHistoricalX%28int,%20int%29"> * @see <a href="http://developer.android.com/reference/android/view/MotionEvent.html#getHistoricalX%28int,%20int%29">
@ -100,10 +98,4 @@ public interface TouchInput extends Input {
*/ */
public void setOmitHistoricEvents(boolean dontSendHistory); public void setOmitHistoricEvents(boolean dontSendHistory);
/**
* Displays or hides the onscreen soft keyboard
* @param visible
*/
public void showVirtualKeyboard (final boolean visible);
} }

@ -455,6 +455,26 @@ public final class AppSettings extends HashMap<String, Object> {
return getBoolean("TouchEmulateMouseFlipY"); return getBoolean("TouchEmulateMouseFlipY");
} }
/**
* Enable or disable keyboard emulation on touchscreen based devices.
* This will convert soft keyboard key presses on the touchscreen
* into the appropriate key events.
*
* @param emulateKeyboard If soft keyboard emulation should be enabled.
*/
public void setEmulateKeyboard(boolean emulateKeyboard) {
putBoolean("TouchEmulateKeyboard", emulateKeyboard);
}
/**
* Returns true if keyboard emulation is enabled, false otherwise.
*
* @return Soft keyboard emulation mode.
*/
public boolean isEmulateKeyboard() {
return getBoolean("TouchEmulateKeyboard");
}
/** /**
* @param frameRate The frame-rate is the upper limit on how high * @param frameRate The frame-rate is the upper limit on how high
* the application's frames-per-second can go. * the application's frames-per-second can go.

@ -103,6 +103,10 @@ public class JmeSystem {
systemDelegate.setSoftTextDialogInput(input); systemDelegate.setSoftTextDialogInput(input);
} }
/**
* Displays or hides the onscreen soft keyboard
* @param show If true, the keyboard is displayed, if false, the screen is hidden.
*/
public static void showSoftKeyboard(boolean show) { public static void showSoftKeyboard(boolean show) {
checkDelegate(); checkDelegate();
systemDelegate.showSoftKeyboard(show); systemDelegate.showSoftKeyboard(show);

@ -97,11 +97,6 @@ public class IosInputHandler implements TouchInput {
this.mouseEventsEnabled = simulate; this.mouseEventsEnabled = simulate;
} }
@Override
public boolean getSimulateMouse() {
return mouseEventsEnabled;
}
@Override @Override
public boolean isSimulateMouse() { public boolean isSimulateMouse() {
return mouseEventsEnabled; return mouseEventsEnabled;
@ -112,14 +107,13 @@ public class IosInputHandler implements TouchInput {
this.keyboardEventsEnabled = simulate; this.keyboardEventsEnabled = simulate;
} }
@Override public boolean isSimulateKeyboard() {
public void setOmitHistoricEvents(boolean dontSendHistory) { return keyboardEventsEnabled;
this.dontSendHistory = dontSendHistory;
} }
@Override @Override
public void showVirtualKeyboard(boolean visible) { public void setOmitHistoricEvents(boolean dontSendHistory) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. this.dontSendHistory = dontSendHistory;
} }
// ---------------- // ----------------

Loading…
Cancel
Save