[DEV] add special char interface on android
This commit is contained in:
parent
8fc8738c0f
commit
ae53ab3d79
@ -27,4 +27,42 @@ public interface EwolConstants {
|
||||
|
||||
public static final int EWOL_APPL_TYPE_ACTIVITY = 0;
|
||||
public static final int EWOL_APPL_TYPE_WALLPAPER = 1;
|
||||
|
||||
// Key binding of the element ewol::key::keyboard :
|
||||
public static final int EWOL_MOVE_KEY_LEFT = 2;
|
||||
public static final int EWOL_MOVE_KEY_RIGHT = 3;
|
||||
public static final int EWOL_MOVE_KEY_UP = 4;
|
||||
public static final int EWOL_MOVE_KEY_DOWN = 5;
|
||||
public static final int EWOL_MOVE_KEY_PAGE_UP = 6;
|
||||
public static final int EWOL_MOVE_KEY_PAGE_DOWN = 7;
|
||||
public static final int EWOL_MOVE_KEY_START = 8;
|
||||
public static final int EWOL_MOVE_KEY_END = 9;
|
||||
public static final int EWOL_MOVE_KEY_PRINT = 10;
|
||||
public static final int EWOL_MOVE_KEY_STOP_DEFIL = 11;
|
||||
public static final int EWOL_MOVE_KEY_WAIT = 12;
|
||||
public static final int EWOL_MOVE_KEY_INSERT = 13;
|
||||
public static final int EWOL_MOVE_KEY_F1 = 14;
|
||||
public static final int EWOL_MOVE_KEY_F2 = 15;
|
||||
public static final int EWOL_MOVE_KEY_F3 = 16;
|
||||
public static final int EWOL_MOVE_KEY_F4 = 17;
|
||||
public static final int EWOL_MOVE_KEY_F5 = 18;
|
||||
public static final int EWOL_MOVE_KEY_F6 = 19;
|
||||
public static final int EWOL_MOVE_KEY_F7 = 20;
|
||||
public static final int EWOL_MOVE_KEY_F8 = 21;
|
||||
public static final int EWOL_MOVE_KEY_F9 = 22;
|
||||
public static final int EWOL_MOVE_KEY_F10 = 23;
|
||||
public static final int EWOL_MOVE_KEY_F11 = 24;
|
||||
public static final int EWOL_MOVE_KEY_F12 = 25;
|
||||
public static final int EWOL_MOVE_KEY_CAP_LOCK = 26;
|
||||
public static final int EWOL_MOVE_KEY_SHIFT_LEFT = 27;
|
||||
public static final int EWOL_MOVE_KEY_SHIFT_RIGHT = 28;
|
||||
public static final int EWOL_MOVE_KEY_CTRL_LEFT = 29;
|
||||
public static final int EWOL_MOVE_KEY_CTRL_RIGHT = 30;
|
||||
public static final int EWOL_MOVE_KEY_META_LEFT = 31;
|
||||
public static final int EWOL_MOVE_KEY_META_RIGHT = 32;
|
||||
public static final int EWOL_MOVE_KEY_ALT = 33;
|
||||
public static final int EWOL_MOVE_KEY_ALT_GR = 34;
|
||||
public static final int EWOL_MOVE_KEY_CONTEXT_MENU = 35;
|
||||
public static final int EWOL_MOVE_KEY_NUM_LOCK = 36;
|
||||
|
||||
}
|
||||
|
@ -213,8 +213,8 @@ public class EwolSurfaceViewGL extends GLSurfaceView implements EwolConstants {
|
||||
|
||||
private boolean keyboardEvent(int keyCode, KeyEvent event, boolean isDown) {
|
||||
int actionDone = event.getAction();
|
||||
switch(keyCode)
|
||||
{
|
||||
Log.i("Surface GL", "get event : " + keyCode + " is down : " + isDown);
|
||||
switch(keyCode) {
|
||||
case KeyEvent.KEYCODE_VOLUME_DOWN:
|
||||
EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_VOLUME_DOWN, isDown);
|
||||
return false;
|
||||
@ -240,26 +240,42 @@ public class EwolSurfaceViewGL extends GLSurfaceView implements EwolConstants {
|
||||
case KeyEvent.KEYCODE_DEL:
|
||||
EWOL.keyboardEventKey(EWOL_SYSTEM_KEY_DEL, isDown);
|
||||
return true;
|
||||
case KeyEvent.KEYCODE_ALT_LEFT:
|
||||
// TODO : ...
|
||||
break;
|
||||
case KeyEvent.KEYCODE_SHIFT_LEFT:
|
||||
// TODO : ...
|
||||
break;
|
||||
case KeyEvent.KEYCODE_ENTER:
|
||||
// TODO : ...
|
||||
break;
|
||||
// Joystick event :
|
||||
case KeyEvent.KEYCODE_DPAD_UP:
|
||||
break;
|
||||
case KeyEvent.KEYCODE_DPAD_DOWN:
|
||||
break;
|
||||
case KeyEvent.KEYCODE_DPAD_LEFT:
|
||||
break;
|
||||
case KeyEvent.KEYCODE_DPAD_RIGHT:
|
||||
break;
|
||||
case KeyEvent.KEYCODE_DPAD_CENTER:
|
||||
break;
|
||||
case KeyEvent.KEYCODE_DPAD_UP: EWOL.keyboardEventMove(EWOL_MOVE_KEY_UP, isDown); return true;
|
||||
case KeyEvent.KEYCODE_DPAD_DOWN: EWOL.keyboardEventMove(EWOL_MOVE_KEY_DOWN, isDown); return true;
|
||||
case KeyEvent.KEYCODE_DPAD_LEFT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_LEFT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_DPAD_RIGHT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_RIGHT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_PAGE_UP: EWOL.keyboardEventMove(EWOL_MOVE_KEY_PAGE_UP, isDown); return true;
|
||||
case KeyEvent.KEYCODE_PAGE_DOWN: EWOL.keyboardEventMove(EWOL_MOVE_KEY_PAGE_DOWN, isDown); return true;
|
||||
case KeyEvent.KEYCODE_MOVE_HOME: EWOL.keyboardEventMove(EWOL_MOVE_KEY_START, isDown); return true;
|
||||
case KeyEvent.KEYCODE_MOVE_END: EWOL.keyboardEventMove(EWOL_MOVE_KEY_END, isDown); return true;
|
||||
case KeyEvent.KEYCODE_SYSRQ: EWOL.keyboardEventMove(EWOL_MOVE_KEY_PRINT, isDown); return true;
|
||||
//case KeyEvent.: EWOL.keyboardEventMove(EWOL_MOVE_KEY_STOP_DEFIL, isDown); return true;
|
||||
case KeyEvent.KEYCODE_BREAK: EWOL.keyboardEventMove(EWOL_MOVE_KEY_WAIT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_INSERT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_INSERT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F1: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F1, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F2: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F2, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F3: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F3, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F4: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F4, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F5: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F5, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F6: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F6, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F7: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F7, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F8: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F8, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F9: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F9, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F10: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F10, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F11: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F11, isDown); return true;
|
||||
case KeyEvent.KEYCODE_F12: EWOL.keyboardEventMove(EWOL_MOVE_KEY_F12, isDown); return true;
|
||||
case KeyEvent.KEYCODE_CAPS_LOCK: EWOL.keyboardEventMove(EWOL_MOVE_KEY_CAP_LOCK, isDown); return true;
|
||||
case KeyEvent.KEYCODE_SHIFT_LEFT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_SHIFT_LEFT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_SHIFT_RIGHT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_SHIFT_RIGHT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_CTRL_LEFT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_CTRL_LEFT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_CTRL_RIGHT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_CTRL_RIGHT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_META_LEFT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_META_LEFT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_META_RIGHT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_META_RIGHT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_ALT_LEFT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_ALT, isDown); return true;
|
||||
case KeyEvent.KEYCODE_ALT_RIGHT: EWOL.keyboardEventMove(EWOL_MOVE_KEY_ALT_GR, isDown); return true;
|
||||
//case KeyEvent.KEYCODE_MENU: EWOL.keyboardEventMove(EWOL_MOVE_KEY_CONTEXT_MENU, isDown); return true;
|
||||
case KeyEvent.KEYCODE_NUM_LOCK: EWOL.keyboardEventMove(EWOL_MOVE_KEY_NUM_LOCK, isDown); return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -389,6 +389,13 @@ class AndroidContext : public ewol::Context {
|
||||
OS_SetKeyboard(m_guiKeyBoardSpecialKeyMode, _myChar, _isDown, _isARepeateKey);
|
||||
}
|
||||
|
||||
void ANDROID_SetKeyboardMove(int _move, bool _isDown, bool _isARepeateKey=false) {
|
||||
// direct wrapping :
|
||||
enum ewol::key::keyboard move = (enum ewol::key::keyboard)_move;
|
||||
m_guiKeyBoardSpecialKeyMode.update(move, _isDown);
|
||||
OS_SetKeyboardMove(m_guiKeyBoardSpecialKeyMode, move, _isDown, _isARepeateKey);
|
||||
}
|
||||
|
||||
void OS_Resize(const vec2& _size) {
|
||||
m_currentHeight = _size.y();
|
||||
ewol::Context::OS_Resize(_size);
|
||||
@ -702,6 +709,7 @@ extern "C" {
|
||||
return;
|
||||
}
|
||||
EWOL_DEBUG("IO keyboard Move event : \"" << _type << "\" is down=" << _isdown);
|
||||
s_listInstance[_id]->ANDROID_SetKeyboardMove(_type, _isdown);
|
||||
}
|
||||
|
||||
void Java_org_ewol_Ewol_EWkeyboardEventKey(JNIEnv* _env,
|
||||
|
@ -16,6 +16,7 @@ namespace ewol {
|
||||
namespace key {
|
||||
/**
|
||||
* @brief Keybord event or joystick event
|
||||
* @warning If you modify Id of these element check the java interface file of constant : EwolConstant.java
|
||||
*/
|
||||
enum keyboard {
|
||||
keyboardUnknow = 0, //!< Unknown keyboard key
|
||||
|
Loading…
x
Reference in New Issue
Block a user