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
|
||||
|
||||
|
||||
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 {
|
||||
extern "C" {
|
||||
typedef struct Hints
|
||||
@ -641,7 +650,52 @@ namespace guiAbstraction {
|
||||
case 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;
|
||||
ewol::eventKbMoveType_te keyInput;
|
||||
switch (event.xkey.keycode) {
|
||||
@ -664,7 +718,16 @@ namespace guiAbstraction {
|
||||
case 78: keyInput = ewol::EVENT_KB_MOVE_TYPE_ARRET_DEFIL; break;
|
||||
case 127: keyInput = ewol::EVENT_KB_MOVE_TYPE_WAIT; break;
|
||||
//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 67: keyInput = ewol::EVENT_KB_MOVE_TYPE_F1; 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 KeyboardHide(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