KeyboardButton/JoystickButton use enum class instead of enum
This commit is contained in:
parent
7a5040224a
commit
c1a4276533
@ -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
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user