Merge pull request #91 from lpmitchell/master
Added keyboard events for Tizen
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#include "platform/tizen/TizenApplication.h"
|
||||
|
||||
#include <KeyCodes.h>
|
||||
|
||||
namespace lime {
|
||||
|
||||
@@ -236,22 +236,112 @@ namespace lime {
|
||||
|
||||
void TizenApplication::OnKeyLongPressed (const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode) {}
|
||||
|
||||
#define TIZEN_TRANS(x) case Tizen::Ui::KEY_##x: return key##x;
|
||||
#define TIZEN_TRANS_TO(x,y) case Tizen::Ui::KEY_##x: return key##y;
|
||||
#define TIZEN_KEY(x) Tizen::Ui::KEY_##x
|
||||
|
||||
int TizenKeyToFlash(int inKey, bool &outRight) {
|
||||
|
||||
outRight = (inKey == TIZEN_KEY(RIGHT_SHIFT) || inKey == TIZEN_KEY(RIGHT_CTRL) ||
|
||||
inKey == TIZEN_KEY(RIGHT_ALT) || inKey == TIZEN_KEY(RIGHT_WIN));
|
||||
|
||||
|
||||
if (inKey >= TIZEN_KEY(A) && inKey <= TIZEN_KEY(Z))
|
||||
return inKey - TIZEN_KEY(A) + keyA;
|
||||
|
||||
if (inKey >= TIZEN_KEY(0) && inKey <= TIZEN_KEY(9))
|
||||
return inKey - TIZEN_KEY(0) + keyNUMBER_0;
|
||||
|
||||
if (inKey >= TIZEN_KEY(NUMPAD_0) && inKey <= TIZEN_KEY(NUMPAD_9))
|
||||
return inKey - TIZEN_KEY(NUMPAD_0) + keyNUMPAD_0;
|
||||
|
||||
if (inKey >= TIZEN_KEY(FN_1) && inKey <= TIZEN_KEY(FN_5))
|
||||
return inKey - TIZEN_KEY(FN_1) + keyF1;
|
||||
|
||||
// Fun, There are some random key mappings between F5 and F6
|
||||
if (inKey >= TIZEN_KEY(FN_6) && inKey <= TIZEN_KEY(FN_12))
|
||||
return inKey - TIZEN_KEY(FN_6) + keyF6;
|
||||
|
||||
|
||||
switch (inKey)
|
||||
{
|
||||
case TIZEN_KEY(RIGHT_ALT):
|
||||
case TIZEN_KEY(LEFT_ALT):
|
||||
return keyALTERNATE;
|
||||
case TIZEN_KEY(RIGHT_SHIFT):
|
||||
case TIZEN_KEY(LEFT_SHIFT):
|
||||
return keySHIFT;
|
||||
case TIZEN_KEY(RIGHT_CTRL):
|
||||
case TIZEN_KEY(LEFT_CTRL):
|
||||
return keyCONTROL;
|
||||
case TIZEN_KEY(RIGHT_WIN):
|
||||
case TIZEN_KEY(LEFT_WIN):
|
||||
return keyCOMMAND;
|
||||
|
||||
TIZEN_TRANS_TO(LEFT_BRACKET, LEFTBRACKET)
|
||||
TIZEN_TRANS_TO(RIGHT_BRACKET, RIGHTBRACKET)
|
||||
TIZEN_TRANS_TO(APOSTROPHE, QUOTE)
|
||||
TIZEN_TRANS_TO(GRAVE, BACKQUOTE)
|
||||
TIZEN_TRANS_TO(CAPSLOCK, CAPS_LOCK)
|
||||
TIZEN_TRANS_TO(MOVE_END, END)
|
||||
TIZEN_TRANS_TO(ESC, ESCAPE)
|
||||
TIZEN_TRANS_TO(MOVE_HOME, HOME)
|
||||
TIZEN_TRANS_TO(DOT, PERIOD)
|
||||
TIZEN_TRANS_TO(NUMPAD_DOT, NUMPAD_DECIMAL)
|
||||
|
||||
TIZEN_TRANS(BACKSLASH)
|
||||
TIZEN_TRANS(BACKSPACE)
|
||||
TIZEN_TRANS(COMMA)
|
||||
TIZEN_TRANS(DELETE)
|
||||
TIZEN_TRANS(ENTER)
|
||||
TIZEN_TRANS(INSERT)
|
||||
TIZEN_TRANS(DOWN)
|
||||
TIZEN_TRANS(LEFT)
|
||||
TIZEN_TRANS(RIGHT)
|
||||
TIZEN_TRANS(UP)
|
||||
TIZEN_TRANS(MINUS)
|
||||
TIZEN_TRANS(PAGE_UP)
|
||||
TIZEN_TRANS(PAGE_DOWN)
|
||||
TIZEN_TRANS(SEMICOLON)
|
||||
TIZEN_TRANS(SLASH)
|
||||
TIZEN_TRANS(SPACE)
|
||||
TIZEN_TRANS(TAB)
|
||||
|
||||
TIZEN_TRANS(NUMPAD_ADD)
|
||||
TIZEN_TRANS(NUMPAD_DIVIDE)
|
||||
TIZEN_TRANS(NUMPAD_ENTER)
|
||||
TIZEN_TRANS(NUMPAD_MULTIPLY)
|
||||
TIZEN_TRANS(NUMPAD_SUBTRACT)
|
||||
}
|
||||
|
||||
return inKey;
|
||||
}
|
||||
|
||||
void TizenApplication::OnKeyPressed (const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode) {
|
||||
Event key(etKeyDown);
|
||||
key.code = keyCode;
|
||||
|
||||
bool right;
|
||||
key.value = TizenKeyToFlash(keyCode, right);
|
||||
|
||||
if (right)
|
||||
key.flags |= efLocationRight;
|
||||
|
||||
sgTizenFrame->HandleEvent(key);
|
||||
}
|
||||
|
||||
|
||||
void TizenApplication::OnKeyReleased (const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode) {
|
||||
Event key(etKeyUp);
|
||||
key.code = keyCode;
|
||||
|
||||
if (keyCode == Tizen::Ui::KEY_BACK || keyCode == Tizen::Ui::KEY_ESC) {
|
||||
bool right;
|
||||
key.value = TizenKeyToFlash(keyCode, right);
|
||||
|
||||
Terminate ();
|
||||
|
||||
}
|
||||
if (right)
|
||||
key.flags |= efLocationRight;
|
||||
|
||||
sgTizenFrame->HandleEvent(key);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -129,80 +129,7 @@ namespace lime {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*#define TIZEN_TRANS(x) case TIZEN_KEY_##x: return key##x;
|
||||
|
||||
|
||||
int TizenKeyToFlash(int inKey, bool &outRight) {
|
||||
|
||||
outRight = (inKey == GLFW_KEY_RIGHT_SHIFT || inKey == GLFW_KEY_RIGHT_CONTROL ||
|
||||
inKey == GLFW_KEY_RIGHT_ALT || inKey == GLFW_KEY_RIGHT_SUPER);
|
||||
if (inKey >= keyA && inKey <= keyZ)
|
||||
return inKey;
|
||||
if (inKey >= GLFW_KEY_0 && inKey <= GLFW_KEY_9)
|
||||
return inKey - GLFW_KEY_0 + keyNUMBER_0;
|
||||
if (inKey >= GLFW_KEY_KP_0 && inKey <= GLFW_KEY_KP_9)
|
||||
return inKey - GLFW_KEY_KP_0 + keyNUMPAD_0;
|
||||
|
||||
if (inKey >= GLFW_KEY_F1 && inKey <= GLFW_KEY_F15)
|
||||
return inKey - GLFW_KEY_F1 + keyF1;
|
||||
|
||||
switch (inKey)
|
||||
{
|
||||
case GLFW_KEY_RIGHT_ALT:
|
||||
case GLFW_KEY_LEFT_ALT:
|
||||
return keyALTERNATE;
|
||||
case GLFW_KEY_RIGHT_SHIFT:
|
||||
case GLFW_KEY_LEFT_SHIFT:
|
||||
return keySHIFT;
|
||||
case GLFW_KEY_RIGHT_CONTROL:
|
||||
case GLFW_KEY_LEFT_CONTROL:
|
||||
return keyCONTROL;
|
||||
case GLFW_KEY_RIGHT_SUPER:
|
||||
case GLFW_KEY_LEFT_SUPER:
|
||||
return keyCOMMAND;
|
||||
|
||||
case GLFW_KEY_LEFT_BRACKET: return keyLEFTBRACKET;
|
||||
case GLFW_KEY_RIGHT_BRACKET: return keyRIGHTBRACKET;
|
||||
case GLFW_KEY_APOSTROPHE: return keyQUOTE;
|
||||
case GLFW_KEY_GRAVE_ACCENT: return keyBACKQUOTE;
|
||||
|
||||
GLFW_TRANS(BACKSLASH)
|
||||
GLFW_TRANS(BACKSPACE)
|
||||
GLFW_TRANS(CAPS_LOCK)
|
||||
GLFW_TRANS(COMMA)
|
||||
GLFW_TRANS(DELETE)
|
||||
GLFW_TRANS(DOWN)
|
||||
GLFW_TRANS(END)
|
||||
GLFW_TRANS(ENTER)
|
||||
GLFW_TRANS(EQUAL)
|
||||
GLFW_TRANS(ESCAPE)
|
||||
GLFW_TRANS(HOME)
|
||||
GLFW_TRANS(INSERT)
|
||||
GLFW_TRANS(LEFT)
|
||||
GLFW_TRANS(MINUS)
|
||||
GLFW_TRANS(PAGE_UP)
|
||||
GLFW_TRANS(PAGE_DOWN)
|
||||
GLFW_TRANS(PERIOD)
|
||||
GLFW_TRANS(RIGHT)
|
||||
GLFW_TRANS(SEMICOLON)
|
||||
GLFW_TRANS(SLASH)
|
||||
GLFW_TRANS(SPACE)
|
||||
GLFW_TRANS(TAB)
|
||||
GLFW_TRANS(UP)
|
||||
|
||||
case GLFW_KEY_KP_ADD: return keyNUMPAD_ADD;
|
||||
case GLFW_KEY_KP_DECIMAL: return keyNUMPAD_DECIMAL;
|
||||
case GLFW_KEY_KP_DIVIDE: return keyNUMPAD_DIVIDE;
|
||||
case GLFW_KEY_KP_ENTER: return keyNUMPAD_ENTER;
|
||||
case GLFW_KEY_KP_MULTIPLY: return keyNUMPAD_MULTIPLY;
|
||||
case GLFW_KEY_KP_SUBTRACT: return keyNUMPAD_SUBTRACT;
|
||||
}
|
||||
return inKey;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
|
||||
{
|
||||
Event event(action == GLFW_RELEASE ? etKeyUp : etKeyDown);
|
||||
|
||||
Reference in New Issue
Block a user