KeyboardButton/JoystickButton use enum class instead of enum

This commit is contained in:
hyzboy 2021-09-15 19:15:08 +08:00
parent 7a5040224a
commit c1a4276533
4 changed files with 265 additions and 258 deletions

View File

@ -1,6 +1,7 @@
#ifndef HGL_INPUT_DEVICE_INCLUDE
#define HGL_INPUT_DEVICE_INCLUDE
#include<hgl/TypeFunc.h>
namespace hgl
{
/**
@ -24,184 +25,190 @@ namespace hgl
/**
*
*/
enum KeyboardButton
enum class KeyboardButton
{
kbBeginRange=0,
NONE=0,
//主键盘区
kbEsc, ///<ESC
Esc, ///<ESC
//F功能键
kbF1, ///<F1
kbF2, ///<F2
kbF3, ///<F3
kbF4, ///<F4
kbF5, ///<F5
kbF6, ///<F6
kbF7, ///<F7
kbF8, ///<F8
kbF9, ///<F9
kbF10, ///<F10
kbF11, ///<F11
kbF12, ///<F12
F1, ///<F1
F2, ///<F2
F3, ///<F3
F4, ///<F4
F5, ///<F5
F6, ///<F6
F7, ///<F7
F8, ///<F8
F9, ///<F9
F10, ///<F10
F11, ///<F11
F12, ///<F12
kbGrave, //<`号(主键盘数字键1左边的按钮)
Grave, //<`号(主键盘数字键1左边的按钮)
//10个数字
kb0, ///<数字键0
kb1, ///<数字键1
kb2, ///<数字键2
kb3, ///<数字键3
kb4, ///<数字键4
kb5, ///<数字键5
kb6, ///<数字键6
kb7, ///<数字键7
kb8, ///<数字键8
kb9, ///<数字键9
_0, ///<数字键0
_1, ///<数字键1
_2, ///<数字键2
_3, ///<数字键3
_4, ///<数字键4
_5, ///<数字键5
_6, ///<数字键6
_7, ///<数字键7
_8, ///<数字键8
_9, ///<数字键9
kbMinus, ///< - (减号)
kbEquals, ///< = (等号)
kbBackSlash, ///< \ (反斜杠)
kbBackSpace, ///< 退格键
Minus, ///< - (减号)
Equals, ///< = (等号)
BackSlash, ///< \ (反斜杠)
BackSpace, ///< 退格键
kbTab, ///<Tab键
Tab, ///<Tab键
kbA, ///<A
kbB, ///<B
kbC, ///<C
kbD, ///<D
kbE, ///<E
kbF, ///<F
kbG, ///<G
kbH, ///<H
kbI, ///<I
kbJ, ///<J
kbK, ///<K
kbL, ///<L
kbM, ///<M
kbN, ///<N
kbO, ///<O
kbP, ///<P
kbQ, ///<Q
kbR, ///<R
kbS, ///<S
kbT, ///<T
kbU, ///<U
kbV, ///<V
kbW, ///<W
kbX, ///<X
kbY, ///<Y
kbZ, ///<Z
A, ///<A
B, ///<B
C, ///<C
D, ///<D
E, ///<E
F, ///<F
G, ///<G
H, ///<H
I, ///<I
J, ///<J
K, ///<K
L, ///<L
M, ///<M
N, ///<N
O, ///<O
P, ///<P
Q, ///<Q
R, ///<R
S, ///<S
T, ///<T
U, ///<U
V, ///<V
W, ///<W
X, ///<X
Y, ///<Y
Z, ///<Z
kbLeftBracket, ///<[
kbRightBracket, ///<]
LeftBracket, ///<[
RightBracket, ///<]
kbCapsLock, ///<大写锁定键
CapsLock, ///<大写锁定键
kbSemicolon, ///<; (分号)
kbApostrophe, ///<' (单引号)
kbEnter, ///<回车键
Semicolon, ///<; (分号)
Apostrophe, ///<' (单引号)
Enter, ///<回车键
kbLeftShift, ///<左边的Shift键
LeftShift, ///<左边的Shift键
kbComma, ///<, (逗号)
kbPeriod, ///<. (句号)
kbSlash, ///</ (除号)
kbRightShift, ///<右边的Shift键
Comma, ///<, (逗号)
Period, ///<. (句号)
Slash, ///</ (除号)
RightShift, ///<右边的Shift键
kbLeftCtrl, ///<左边的Ctrl键
kbLeftOS, ///<左边的OS键(Win/Apple键)
kbLeftAlt, ///<左边的Alt键
kbSpace, ///<空格键
kbRightAlt, ///<右边的Alt键
kbRightOS, ///<右边的OS键(Win/Apple键)
kbRightMenu, ///<右边的Menu键
kbRightCtrl, ///<右边的Ctrl键
LeftCtrl, ///<左边的Ctrl键
LeftOS, ///<左边的OS键(Win/Apple键)
LeftAlt, ///<左边的Alt键
Space, ///<空格键
RightAlt, ///<右边的Alt键
RightOS, ///<右边的OS键(Win/Apple键)
RightMenu, ///<右边的Menu键
RightCtrl, ///<右边的Ctrl键
//中键盘区
kbPrintScreen, ///<打印屏幕键
kbScrollLock, ///<滚动锁定键
kbPause, ///<暂停键
PrintScreen, ///<打印屏幕键
ScrollLock, ///<滚动锁定键
Pause, ///<暂停键
kbInsert, ///<插入键
kbDelete, ///<删除键
kbHome, ///<行首键
kbEnd, ///<行尾键
kbPageUp, ///<向前翻页键
kbPageDown, ///<向后翻页键
Insert, ///<插入键
Delete, ///<删除键
Home, ///<行首键
End, ///<行尾键
PageUp, ///<向前翻页键
PageDown, ///<向后翻页键
kbUp, ///<↑光标键
kbDown, ///<↓光标键
kbLeft, ///<←光标键
kbRight, ///<→光标键
Up, ///<↑光标键
Down, ///<↓光标键
Left, ///<←光标键
Right, ///<→光标键
//小键盘区
kbNumLock, ///<小键盘 数字锁定键
NumLock, ///<小键盘 数字锁定键
kbNumAdd, ///<小键盘 +
kbNumSubtract, ///<小键盘 -
kbNumMultiply, ///<小键盘 *
kbNumDivide, ///<小键盘 /
NumAdd, ///<小键盘 +
NumSubtract, ///<小键盘 -
NumMultiply, ///<小键盘 *
NumDivide, ///<小键盘 /
kbNum0, ///<小键盘 0
kbNum1, ///<小键盘 1
kbNum2, ///<小键盘 2
kbNum3, ///<小键盘 3
kbNum4, ///<小键盘 4
kbNum5, ///<小键盘 5
kbNum6, ///<小键盘 6
kbNum7, ///<小键盘 7
kbNum8, ///<小键盘 8
kbNum9, ///<小键盘 9
Num0, ///<小键盘 0
Num1, ///<小键盘 1
Num2, ///<小键盘 2
Num3, ///<小键盘 3
Num4, ///<小键盘 4
Num5, ///<小键盘 5
Num6, ///<小键盘 6
Num7, ///<小键盘 7
Num8, ///<小键盘 8
Num9, ///<小键盘 9
kbNumDecimal, ///<小键盘 . (小数点/删除键)
kbNumEnter, ///<小键盘 回车键
NumDecimal, ///<小键盘 . (小数点/删除键)
NumEnter, ///<小键盘 回车键
kbEndRange,
kbRangeSize=kbEndRange-kbBeginRange+1
ENUM_CLASS_RANGE(NONE,NumEnter)
};//enum KeyboardButton
/**
*
*/
enum JoystickButton
enum class JoystickButton
{
jbBeginRange=0,
NONE=0,
jbUp,
jbDown,
jbLeft,
jbRight,
Up,
Down,
Left,
Right,
jb0, jb1, jb2, jb3, jb4, jb5, jb6, jb7,
jb8, jb9, jb10, jb11, jb12, jb13, jb14, jb15,
jb16, jb17, jb18, jb19, jb20, jb21, jb22, jb23,
jb24, jb25, jb26, jb27, jb28, jb29, jb30, jb31,
_0, _1, _2, _3, _4, _5, _6, _7,
_8, _9, _10, _11, _12, _13, _14, _15,
_16, _17, _18, _19, _20, _21, _22, _23,
_24, _25, _26, _27, _28, _29, _30, _31,
jbEnd,
//DreamCast/XBOX
/* jbX=jb2,
jbY=jb3,
jbA=jb0,
jbB=jb1,
jbL=jb4,
jbR=jb5,*/
//PlayStation
jbTriangle =jb0, // 三角
jbCircle =jb1, // 圆
jbFork =jb2, // 叉
jbRectangle =jb3, // 方
jbL1 =jb6, jbL2 =jb4,
jbR1 =jb7, jbR2 =jb5,
jbSelect =jb8, jbStart =jb9,
//XBOX/XBOX360
jbXBOX, //西瓜键
jbEndRange,
jbRangeSize=jbEndRange-jbBeginRange+1
ENUM_CLASS_RANGE(NONE,_31)
};
enum class PlayStationButton
{
Up =JoystickButton::Up,
Down =JoystickButton::Down,
Left =JoystickButton::Left,
Right =JoystickButton::Right,
Fork =JoystickButton::_0, // 叉
Circle =JoystickButton::_1, // 圆
Square =JoystickButton::_2, // 方
Triangle =JoystickButton::_3, // 三角
L1 =JoystickButton::_6, L2 =JoystickButton::_4,
R1 =JoystickButton::_7, R2 =JoystickButton::_5,
Select =JoystickButton::_8, Start =JoystickButton::_9,
};
//enum class XBoxButton
//{
// //DreamCast/XBOX
// X=JoystickButton::_2,
// Y=JoystickButton::_3,
// A=JoystickButton::_0,
// B=JoystickButton::_1,
// L=JoystickButton::_4,
// R=JoystickButton::_5,
// //XBOX/XBOX360
// //XBOX, //西瓜键
//};
}//namespace hgl
#endif//HGL_INPUT_DEVICE_INCLUDE

View File

@ -19,7 +19,7 @@ namespace hgl
bool is_close;
bool is_min;
bool key_push[kbRangeSize];
bool key_push[size_t(KeyboardButton::RANGE_SIZE)];
protected:

View File

@ -36,147 +36,147 @@ namespace hgl
memset(KeyConvert,0,sizeof(KeyConvert));
KeyConvert[VK_ESCAPE ]=kbEsc;
for(i=VK_F1;i<=VK_F12;i++)KeyConvert[i]=(KeyboardButton)(kbF1+i-VK_F1);
KeyConvert[VK_ESCAPE ]=KeyboardButton::Esc;
for(i=VK_F1;i<=VK_F12;i++)KeyConvert[i]=(KeyboardButton)(int(KeyboardButton::F1)+i-VK_F1);
KeyConvert['`' ]=kbGrave;
for(i='0';i<='9';i++)KeyConvert[i]=(KeyboardButton)(kb0+i-'0');
KeyConvert['-' ]=kbMinus;
KeyConvert['=' ]=kbEquals;
KeyConvert['\\' ]=kbBackSlash;
KeyConvert[VK_BACK ]=kbBackSpace;
KeyConvert['`' ]=KeyboardButton::Grave;
for(i='0';i<='9';i++)KeyConvert[i]=KeyboardButton(int(KeyboardButton::_0)+i-'0');
KeyConvert['-' ]=KeyboardButton::Minus;
KeyConvert['=' ]=KeyboardButton::Equals;
KeyConvert['\\' ]=KeyboardButton::BackSlash;
KeyConvert[VK_BACK ]=KeyboardButton::BackSpace;
KeyConvert[VK_TAB ]=kbTab;
KeyConvert['Q' ]=kbQ;
KeyConvert['W' ]=kbW;
KeyConvert['E' ]=kbE;
KeyConvert['R' ]=kbR;
KeyConvert['T' ]=kbT;
KeyConvert['Y' ]=kbY;
KeyConvert['U' ]=kbU;
KeyConvert['I' ]=kbI;
KeyConvert['O' ]=kbO;
KeyConvert['P' ]=kbP;
KeyConvert['[' ]=kbLeftBracket;
KeyConvert[']' ]=kbRightBracket;
KeyConvert[VK_TAB ]=KeyboardButton::Tab;
KeyConvert['Q' ]=KeyboardButton::Q;
KeyConvert['W' ]=KeyboardButton::W;
KeyConvert['E' ]=KeyboardButton::E;
KeyConvert['R' ]=KeyboardButton::R;
KeyConvert['T' ]=KeyboardButton::T;
KeyConvert['Y' ]=KeyboardButton::Y;
KeyConvert['U' ]=KeyboardButton::U;
KeyConvert['I' ]=KeyboardButton::I;
KeyConvert['O' ]=KeyboardButton::O;
KeyConvert['P' ]=KeyboardButton::P;
KeyConvert['[' ]=KeyboardButton::LeftBracket;
KeyConvert[']' ]=KeyboardButton::RightBracket;
KeyConvert[VK_CAPITAL ]=kbCapsLock;
KeyConvert['A' ]=kbA;
KeyConvert['S' ]=kbS;
KeyConvert['D' ]=kbD;
KeyConvert['F' ]=kbF;
KeyConvert['G' ]=kbG;
KeyConvert['H' ]=kbH;
KeyConvert['J' ]=kbJ;
KeyConvert['K' ]=kbK;
KeyConvert['L' ]=kbL;
KeyConvert[';' ]=kbSemicolon;
KeyConvert['\'' ]=kbApostrophe;
KeyConvert[VK_RETURN ]=kbEnter;
KeyConvert[VK_CAPITAL ]=KeyboardButton::CapsLock;
KeyConvert['A' ]=KeyboardButton::A;
KeyConvert['S' ]=KeyboardButton::S;
KeyConvert['D' ]=KeyboardButton::D;
KeyConvert['F' ]=KeyboardButton::F;
KeyConvert['G' ]=KeyboardButton::G;
KeyConvert['H' ]=KeyboardButton::H;
KeyConvert['J' ]=KeyboardButton::J;
KeyConvert['K' ]=KeyboardButton::K;
KeyConvert['L' ]=KeyboardButton::L;
KeyConvert[';' ]=KeyboardButton::Semicolon;
KeyConvert['\'' ]=KeyboardButton::Apostrophe;
KeyConvert[VK_RETURN ]=KeyboardButton::Enter;
KeyConvert[VK_LSHIFT ]=kbLeftShift;
KeyConvert['Z' ]=kbZ;
KeyConvert['X' ]=kbX;
KeyConvert['C' ]=kbC;
KeyConvert['V' ]=kbV;
KeyConvert['B' ]=kbB;
KeyConvert['N' ]=kbN;
KeyConvert['M' ]=kbM;
KeyConvert[',' ]=kbComma;
KeyConvert['.' ]=kbPeriod;
KeyConvert['/' ]=kbSlash;
KeyConvert[VK_RSHIFT ]=kbRightShift;
KeyConvert[VK_LSHIFT ]=KeyboardButton::LeftShift;
KeyConvert['Z' ]=KeyboardButton::Z;
KeyConvert['X' ]=KeyboardButton::X;
KeyConvert['C' ]=KeyboardButton::C;
KeyConvert['V' ]=KeyboardButton::V;
KeyConvert['B' ]=KeyboardButton::B;
KeyConvert['N' ]=KeyboardButton::N;
KeyConvert['M' ]=KeyboardButton::M;
KeyConvert[',' ]=KeyboardButton::Comma;
KeyConvert['.' ]=KeyboardButton::Period;
KeyConvert['/' ]=KeyboardButton::Slash;
KeyConvert[VK_RSHIFT ]=KeyboardButton::RightShift;
KeyConvert[VK_LCONTROL ]=kbLeftCtrl;
KeyConvert[VK_LWIN ]=kbLeftOS;
KeyConvert[VK_LMENU ]=kbLeftAlt;
KeyConvert[VK_SPACE ]=kbSpace;
KeyConvert[VK_RMENU ]=kbRightAlt;
KeyConvert[VK_RWIN ]=kbRightOS;
KeyConvert[VK_RCONTROL ]=kbRightCtrl;
KeyConvert[VK_LCONTROL ]=KeyboardButton::LeftCtrl;
KeyConvert[VK_LWIN ]=KeyboardButton::LeftOS;
KeyConvert[VK_LMENU ]=KeyboardButton::LeftAlt;
KeyConvert[VK_SPACE ]=KeyboardButton::Space;
KeyConvert[VK_RMENU ]=KeyboardButton::RightAlt;
KeyConvert[VK_RWIN ]=KeyboardButton::RightOS;
KeyConvert[VK_RCONTROL ]=KeyboardButton::RightCtrl;
KeyConvert[VK_PAUSE ]=kbPause;
// KeyConvert[VK_CLEAR ]=kbClear;
KeyConvert[VK_PAUSE ]=KeyboardButton::Pause;
// KeyConvert[VK_CLEAR ]=KeyboardButton::Clear;
KeyConvert[VK_NUMPAD0 ]=kbNum0;
KeyConvert[VK_NUMPAD1 ]=kbNum1;
KeyConvert[VK_NUMPAD2 ]=kbNum2;
KeyConvert[VK_NUMPAD3 ]=kbNum3;
KeyConvert[VK_NUMPAD4 ]=kbNum4;
KeyConvert[VK_NUMPAD5 ]=kbNum5;
KeyConvert[VK_NUMPAD6 ]=kbNum6;
KeyConvert[VK_NUMPAD7 ]=kbNum7;
KeyConvert[VK_NUMPAD8 ]=kbNum8;
KeyConvert[VK_NUMPAD9 ]=kbNum9;
KeyConvert[VK_NUMPAD0 ]=KeyboardButton::Num0;
KeyConvert[VK_NUMPAD1 ]=KeyboardButton::Num1;
KeyConvert[VK_NUMPAD2 ]=KeyboardButton::Num2;
KeyConvert[VK_NUMPAD3 ]=KeyboardButton::Num3;
KeyConvert[VK_NUMPAD4 ]=KeyboardButton::Num4;
KeyConvert[VK_NUMPAD5 ]=KeyboardButton::Num5;
KeyConvert[VK_NUMPAD6 ]=KeyboardButton::Num6;
KeyConvert[VK_NUMPAD7 ]=KeyboardButton::Num7;
KeyConvert[VK_NUMPAD8 ]=KeyboardButton::Num8;
KeyConvert[VK_NUMPAD9 ]=KeyboardButton::Num9;
KeyConvert[VK_DECIMAL ]=kbNumDecimal;
KeyConvert[VK_DIVIDE ]=kbNumDivide;
KeyConvert[VK_MULTIPLY ]=kbNumMultiply;
KeyConvert[VK_SUBTRACT ]=kbNumSubtract;
KeyConvert[VK_ADD ]=kbNumAdd;
KeyConvert[VK_DECIMAL ]=KeyboardButton::NumDecimal;
KeyConvert[VK_DIVIDE ]=KeyboardButton::NumDivide;
KeyConvert[VK_MULTIPLY ]=KeyboardButton::NumMultiply;
KeyConvert[VK_SUBTRACT ]=KeyboardButton::NumSubtract;
KeyConvert[VK_ADD ]=KeyboardButton::NumAdd;
KeyConvert[VK_UP ]=kbUp;
KeyConvert[VK_DOWN ]=kbDown;
KeyConvert[VK_LEFT ]=kbLeft;
KeyConvert[VK_RIGHT ]=kbRight;
KeyConvert[VK_UP ]=KeyboardButton::Up;
KeyConvert[VK_DOWN ]=KeyboardButton::Down;
KeyConvert[VK_LEFT ]=KeyboardButton::Left;
KeyConvert[VK_RIGHT ]=KeyboardButton::Right;
KeyConvert[VK_INSERT ]=kbInsert;
KeyConvert[VK_DELETE ]=kbDelete;
KeyConvert[VK_HOME ]=kbHome;
KeyConvert[VK_END ]=kbEnd;
KeyConvert[VK_PRIOR ]=kbPageUp;
KeyConvert[VK_NEXT ]=kbPageDown;
KeyConvert[VK_INSERT ]=KeyboardButton::Insert;
KeyConvert[VK_DELETE ]=KeyboardButton::Delete;
KeyConvert[VK_HOME ]=KeyboardButton::Home;
KeyConvert[VK_END ]=KeyboardButton::End;
KeyConvert[VK_PRIOR ]=KeyboardButton::PageUp;
KeyConvert[VK_NEXT ]=KeyboardButton::PageDown;
KeyConvert[VK_NUMLOCK ]=kbNumLock;
KeyConvert[VK_SCROLL ]=kbScrollLock;
KeyConvert[VK_NUMLOCK ]=KeyboardButton::NumLock;
KeyConvert[VK_SCROLL ]=KeyboardButton::ScrollLock;
//KeyConvert[VK_SHIFT ]=kbLeftShift;
//KeyConvert[VK_CONTROL ]=kbLeftCtrl;
//KeyConvert[VK_MENU ]=kbLeftAlt;
KeyConvert[VK_OEM_1 ]=kbSemicolon;
KeyConvert[VK_OEM_PLUS ]=kbEquals;
KeyConvert[VK_OEM_COMMA ]=kbComma;
KeyConvert[VK_OEM_MINUS ]=kbMinus;
KeyConvert[VK_OEM_PERIOD]=kbPeriod;
KeyConvert[VK_OEM_2 ]=kbSlash;
KeyConvert[VK_OEM_3 ]=kbGrave;
KeyConvert[VK_OEM_4 ]=kbLeftBracket;
KeyConvert[VK_OEM_5 ]=kbBackSlash;
KeyConvert[VK_OEM_6 ]=kbRightBracket;
KeyConvert[VK_OEM_7 ]=kbApostrophe;
KeyConvert[VK_OEM_1 ]=KeyboardButton::Semicolon;
KeyConvert[VK_OEM_PLUS ]=KeyboardButton::Equals;
KeyConvert[VK_OEM_COMMA ]=KeyboardButton::Comma;
KeyConvert[VK_OEM_MINUS ]=KeyboardButton::Minus;
KeyConvert[VK_OEM_PERIOD]=KeyboardButton::Period;
KeyConvert[VK_OEM_2 ]=KeyboardButton::Slash;
KeyConvert[VK_OEM_3 ]=KeyboardButton::Grave;
KeyConvert[VK_OEM_4 ]=KeyboardButton::LeftBracket;
KeyConvert[VK_OEM_5 ]=KeyboardButton::BackSlash;
KeyConvert[VK_OEM_6 ]=KeyboardButton::RightBracket;
KeyConvert[VK_OEM_7 ]=KeyboardButton::Apostrophe;
}
KeyboardButton ConvertOSKey(uint key)
{
if(key>=256)return(kbBeginRange);
if(KeyConvert[key]==0)return(kbBeginRange);
if(key>=256)return(KeyboardButton::NONE);
if(KeyConvert[key]==KeyboardButton::NONE)return(KeyboardButton::NONE);
if(key==VK_SHIFT)
{
if((GetAsyncKeyState(VK_LSHIFT)>>15)&1)
return kbLeftShift;
return KeyboardButton::LeftShift;
else
return kbRightShift;
return KeyboardButton::RightShift;
}
else
if(key==VK_CONTROL)
{
if((GetAsyncKeyState(VK_LCONTROL)>>15)&1)
return kbLeftCtrl;
return KeyboardButton::LeftCtrl;
else
return kbRightCtrl;
return KeyboardButton::RightCtrl;
}
if(key==VK_MENU)
{
if((GetAsyncKeyState(VK_LMENU)>>15)&1)
return kbLeftAlt;
return KeyboardButton::LeftAlt;
else
return kbRightAlt;
return KeyboardButton::RightAlt;
}
#ifdef _DEBUG
if(KeyConvert[key]==0)
if(KeyConvert[key]==KeyboardButton::NONE)
{
wchar_t name[64];
@ -226,16 +226,16 @@ namespace hgl
#define WMEF2(name) void name(WinWindow *win,uint32 wParam,uint32 lParam)
WMEF2(WMProcMouseWheel)
{
int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
const int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
const uint key=(uint)ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
win->ProcMouseWheel(zDelta,0,key);
}
WMEF2(WMProcMouseHWheel)
{
int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
const int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
const uint key=(uint)ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
win->ProcMouseWheel(0,zDelta,key);
}

View File

@ -4,17 +4,17 @@ namespace hgl
{
void Window::ProcKeyPressed(KeyboardButton kb)
{
if(key_push[kb])
if(key_push[size_t(kb)])
ProcKeyRepeat(kb);
else
key_push[kb]=true;
key_push[size_t(kb)]=true;
SafeCallEvent(OnKeyPressed,(kb));
}
void Window::ProcKeyReleased(KeyboardButton kb)
{
key_push[kb]=false;
key_push[size_t(kb)]=false;
SafeCallEvent(OnKeyReleased,(kb));
}