Add special key remembering in the ewol external access
This commit is contained in:
parent
8fdb228ce9
commit
fed2eda030
@ -94,6 +94,15 @@ static int VisualData[] = {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
extern bool guiKeyBoardMode_CapLock;
|
||||||
|
extern bool guiKeyBoardMode_Shift;
|
||||||
|
extern bool guiKeyBoardMode_Ctrl;
|
||||||
|
extern bool guiKeyBoardMode_Meta;
|
||||||
|
extern bool guiKeyBoardMode_Alt;
|
||||||
|
extern bool guiKeyBoardMode_AltGr;
|
||||||
|
extern bool guiKeyBoardMode_VerNum;
|
||||||
|
extern bool guiKeyBoardMode_Insert;
|
||||||
|
|
||||||
namespace guiAbstraction {
|
namespace guiAbstraction {
|
||||||
extern "C" {
|
extern "C" {
|
||||||
typedef struct Hints
|
typedef struct Hints
|
||||||
@ -641,7 +650,52 @@ namespace guiAbstraction {
|
|||||||
case KeyRelease:
|
case KeyRelease:
|
||||||
//EWOL_DEBUG("X11 event : " << event.type << " = \"KeyPress/KeyRelease\" ");
|
//EWOL_DEBUG("X11 event : " << event.type << " = \"KeyPress/KeyRelease\" ");
|
||||||
{
|
{
|
||||||
EWOL_DEBUG("eventKey : " << event.xkey.keycode);
|
EWOL_DEBUG("eventKey : " << event.xkey.keycode << " state : " << event.xkey.state);
|
||||||
|
if (event.xkey.state & (1<<0) ) {
|
||||||
|
//EWOL_DEBUG(" Special Key : SHIFT");
|
||||||
|
guiKeyBoardMode_Shift = true;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_Shift = false;
|
||||||
|
}
|
||||||
|
if (event.xkey.state & (1<<1) ) {
|
||||||
|
//EWOL_DEBUG(" Special Key : CAPS_LOCK");
|
||||||
|
guiKeyBoardMode_CapLock = true;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_CapLock = false;
|
||||||
|
}
|
||||||
|
if (event.xkey.state & (1<<2) ) {
|
||||||
|
//EWOL_DEBUG(" Special Key : Ctrl");
|
||||||
|
guiKeyBoardMode_Ctrl = true;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_Ctrl = false;
|
||||||
|
}
|
||||||
|
if (event.xkey.state & (1<<3) ) {
|
||||||
|
//EWOL_DEBUG(" Special Key : Alt");
|
||||||
|
guiKeyBoardMode_Alt = true;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_Alt = false;
|
||||||
|
}
|
||||||
|
if (event.xkey.state & (1<<4) ) {
|
||||||
|
//EWOL_DEBUG(" Special Key : VER_num");
|
||||||
|
guiKeyBoardMode_VerNum = true;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_VerNum = false;
|
||||||
|
}
|
||||||
|
if (event.xkey.state & (1<<5) ) {
|
||||||
|
EWOL_DEBUG(" Special Key : MOD");
|
||||||
|
}
|
||||||
|
if (event.xkey.state & (1<<6) ) {
|
||||||
|
//EWOL_DEBUG(" Special Key : META");
|
||||||
|
guiKeyBoardMode_Meta = true;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_Meta = false;
|
||||||
|
}
|
||||||
|
if (event.xkey.state & (1<<7) ) {
|
||||||
|
//EWOL_DEBUG(" Special Key : ALT_GR");
|
||||||
|
guiKeyBoardMode_AltGr = true;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_AltGr = false;
|
||||||
|
}
|
||||||
bool find = true;
|
bool find = true;
|
||||||
ewol::eventKbMoveType_te keyInput;
|
ewol::eventKbMoveType_te keyInput;
|
||||||
switch (event.xkey.keycode) {
|
switch (event.xkey.keycode) {
|
||||||
@ -664,7 +718,16 @@ namespace guiAbstraction {
|
|||||||
case 78: keyInput = ewol::EVENT_KB_MOVE_TYPE_ARRET_DEFIL; break;
|
case 78: keyInput = ewol::EVENT_KB_MOVE_TYPE_ARRET_DEFIL; break;
|
||||||
case 127: keyInput = ewol::EVENT_KB_MOVE_TYPE_WAIT; break;
|
case 127: keyInput = ewol::EVENT_KB_MOVE_TYPE_WAIT; break;
|
||||||
//case 90: // keypad
|
//case 90: // keypad
|
||||||
case 118: keyInput = ewol::EVENT_KB_MOVE_TYPE_INSERT; break;
|
case 118:
|
||||||
|
keyInput = ewol::EVENT_KB_MOVE_TYPE_INSERT;
|
||||||
|
if(event.type == KeyRelease) {
|
||||||
|
if (true == guiKeyBoardMode_Insert) {
|
||||||
|
guiKeyBoardMode_Insert = false;
|
||||||
|
} else {
|
||||||
|
guiKeyBoardMode_Insert = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
//case 84: keyInput = ewol::EVENT_KB_MOVE_TYPE_CENTER; break; // Keypad
|
//case 84: keyInput = ewol::EVENT_KB_MOVE_TYPE_CENTER; break; // Keypad
|
||||||
case 67: keyInput = ewol::EVENT_KB_MOVE_TYPE_F1; break;
|
case 67: keyInput = ewol::EVENT_KB_MOVE_TYPE_F1; break;
|
||||||
case 68: keyInput = ewol::EVENT_KB_MOVE_TYPE_F2; break;
|
case 68: keyInput = ewol::EVENT_KB_MOVE_TYPE_F2; break;
|
||||||
|
@ -86,3 +86,53 @@ void ewol::ForceRedrawAll(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_CapLock = false;
|
||||||
|
bool ewol::IsSetCapsLock(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_CapLock;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_Shift = false;
|
||||||
|
bool ewol::IsSetShift(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_Shift;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_Ctrl = false;
|
||||||
|
bool ewol::IsSetCtrl(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_Ctrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_Meta = false;
|
||||||
|
bool ewol::IsSetMeta(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_Meta;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_Alt = false;
|
||||||
|
bool ewol::IsSetAlt(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_Alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_AltGr = false;
|
||||||
|
bool ewol::IsSetAltGr(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_AltGr;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_VerNum = false;
|
||||||
|
bool ewol::IsSetVerNum(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_VerNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool guiKeyBoardMode_Insert = false;
|
||||||
|
bool ewol::IsSetInsert(void)
|
||||||
|
{
|
||||||
|
return guiKeyBoardMode_Insert;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,6 +43,15 @@ namespace ewol {
|
|||||||
void KeyboardShow(ewol::keyboardMode_te mode);
|
void KeyboardShow(ewol::keyboardMode_te mode);
|
||||||
void KeyboardHide(void);
|
void KeyboardHide(void);
|
||||||
void ForceRedrawAll(void);
|
void ForceRedrawAll(void);
|
||||||
|
|
||||||
|
bool IsSetCapsLock(void);
|
||||||
|
bool IsSetShift(void);
|
||||||
|
bool IsSetCtrl(void);
|
||||||
|
bool IsSetMeta(void);
|
||||||
|
bool IsSetAlt(void);
|
||||||
|
bool IsSetAltGr(void);
|
||||||
|
bool IsSetVerNum(void);
|
||||||
|
bool IsSetInsert(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user