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
|
#ifndef HGL_INPUT_DEVICE_INCLUDE
|
||||||
#define HGL_INPUT_DEVICE_INCLUDE
|
#define HGL_INPUT_DEVICE_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/TypeFunc.h>
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -24,184 +25,190 @@ namespace hgl
|
|||||||
/**
|
/**
|
||||||
* 按键枚举定义
|
* 按键枚举定义
|
||||||
*/
|
*/
|
||||||
enum KeyboardButton
|
enum class KeyboardButton
|
||||||
{
|
{
|
||||||
kbBeginRange=0,
|
NONE=0,
|
||||||
|
|
||||||
//主键盘区
|
//主键盘区
|
||||||
kbEsc, ///<ESC
|
Esc, ///<ESC
|
||||||
|
|
||||||
//F功能键
|
//F功能键
|
||||||
kbF1, ///<F1
|
F1, ///<F1
|
||||||
kbF2, ///<F2
|
F2, ///<F2
|
||||||
kbF3, ///<F3
|
F3, ///<F3
|
||||||
kbF4, ///<F4
|
F4, ///<F4
|
||||||
kbF5, ///<F5
|
F5, ///<F5
|
||||||
kbF6, ///<F6
|
F6, ///<F6
|
||||||
kbF7, ///<F7
|
F7, ///<F7
|
||||||
kbF8, ///<F8
|
F8, ///<F8
|
||||||
kbF9, ///<F9
|
F9, ///<F9
|
||||||
kbF10, ///<F10
|
F10, ///<F10
|
||||||
kbF11, ///<F11
|
F11, ///<F11
|
||||||
kbF12, ///<F12
|
F12, ///<F12
|
||||||
|
|
||||||
kbGrave, //<`号(主键盘数字键1左边的按钮)
|
Grave, //<`号(主键盘数字键1左边的按钮)
|
||||||
|
|
||||||
//10个数字
|
//10个数字
|
||||||
kb0, ///<数字键0
|
_0, ///<数字键0
|
||||||
kb1, ///<数字键1
|
_1, ///<数字键1
|
||||||
kb2, ///<数字键2
|
_2, ///<数字键2
|
||||||
kb3, ///<数字键3
|
_3, ///<数字键3
|
||||||
kb4, ///<数字键4
|
_4, ///<数字键4
|
||||||
kb5, ///<数字键5
|
_5, ///<数字键5
|
||||||
kb6, ///<数字键6
|
_6, ///<数字键6
|
||||||
kb7, ///<数字键7
|
_7, ///<数字键7
|
||||||
kb8, ///<数字键8
|
_8, ///<数字键8
|
||||||
kb9, ///<数字键9
|
_9, ///<数字键9
|
||||||
|
|
||||||
kbMinus, ///< - (减号)
|
Minus, ///< - (减号)
|
||||||
kbEquals, ///< = (等号)
|
Equals, ///< = (等号)
|
||||||
kbBackSlash, ///< \ (反斜杠)
|
BackSlash, ///< \ (反斜杠)
|
||||||
kbBackSpace, ///< 退格键
|
BackSpace, ///< 退格键
|
||||||
|
|
||||||
kbTab, ///<Tab键
|
Tab, ///<Tab键
|
||||||
|
|
||||||
kbA, ///<A
|
A, ///<A
|
||||||
kbB, ///<B
|
B, ///<B
|
||||||
kbC, ///<C
|
C, ///<C
|
||||||
kbD, ///<D
|
D, ///<D
|
||||||
kbE, ///<E
|
E, ///<E
|
||||||
kbF, ///<F
|
F, ///<F
|
||||||
kbG, ///<G
|
G, ///<G
|
||||||
kbH, ///<H
|
H, ///<H
|
||||||
kbI, ///<I
|
I, ///<I
|
||||||
kbJ, ///<J
|
J, ///<J
|
||||||
kbK, ///<K
|
K, ///<K
|
||||||
kbL, ///<L
|
L, ///<L
|
||||||
kbM, ///<M
|
M, ///<M
|
||||||
kbN, ///<N
|
N, ///<N
|
||||||
kbO, ///<O
|
O, ///<O
|
||||||
kbP, ///<P
|
P, ///<P
|
||||||
kbQ, ///<Q
|
Q, ///<Q
|
||||||
kbR, ///<R
|
R, ///<R
|
||||||
kbS, ///<S
|
S, ///<S
|
||||||
kbT, ///<T
|
T, ///<T
|
||||||
kbU, ///<U
|
U, ///<U
|
||||||
kbV, ///<V
|
V, ///<V
|
||||||
kbW, ///<W
|
W, ///<W
|
||||||
kbX, ///<X
|
X, ///<X
|
||||||
kbY, ///<Y
|
Y, ///<Y
|
||||||
kbZ, ///<Z
|
Z, ///<Z
|
||||||
|
|
||||||
kbLeftBracket, ///<[
|
LeftBracket, ///<[
|
||||||
kbRightBracket, ///<]
|
RightBracket, ///<]
|
||||||
|
|
||||||
kbCapsLock, ///<大写锁定键
|
CapsLock, ///<大写锁定键
|
||||||
|
|
||||||
kbSemicolon, ///<; (分号)
|
Semicolon, ///<; (分号)
|
||||||
kbApostrophe, ///<' (单引号)
|
Apostrophe, ///<' (单引号)
|
||||||
kbEnter, ///<回车键
|
Enter, ///<回车键
|
||||||
|
|
||||||
kbLeftShift, ///<左边的Shift键
|
LeftShift, ///<左边的Shift键
|
||||||
|
|
||||||
kbComma, ///<, (逗号)
|
Comma, ///<, (逗号)
|
||||||
kbPeriod, ///<. (句号)
|
Period, ///<. (句号)
|
||||||
kbSlash, ///</ (除号)
|
Slash, ///</ (除号)
|
||||||
kbRightShift, ///<右边的Shift键
|
RightShift, ///<右边的Shift键
|
||||||
|
|
||||||
kbLeftCtrl, ///<左边的Ctrl键
|
LeftCtrl, ///<左边的Ctrl键
|
||||||
kbLeftOS, ///<左边的OS键(Win/Apple键)
|
LeftOS, ///<左边的OS键(Win/Apple键)
|
||||||
kbLeftAlt, ///<左边的Alt键
|
LeftAlt, ///<左边的Alt键
|
||||||
kbSpace, ///<空格键
|
Space, ///<空格键
|
||||||
kbRightAlt, ///<右边的Alt键
|
RightAlt, ///<右边的Alt键
|
||||||
kbRightOS, ///<右边的OS键(Win/Apple键)
|
RightOS, ///<右边的OS键(Win/Apple键)
|
||||||
kbRightMenu, ///<右边的Menu键
|
RightMenu, ///<右边的Menu键
|
||||||
kbRightCtrl, ///<右边的Ctrl键
|
RightCtrl, ///<右边的Ctrl键
|
||||||
|
|
||||||
//中键盘区
|
//中键盘区
|
||||||
kbPrintScreen, ///<打印屏幕键
|
PrintScreen, ///<打印屏幕键
|
||||||
kbScrollLock, ///<滚动锁定键
|
ScrollLock, ///<滚动锁定键
|
||||||
kbPause, ///<暂停键
|
Pause, ///<暂停键
|
||||||
|
|
||||||
kbInsert, ///<插入键
|
Insert, ///<插入键
|
||||||
kbDelete, ///<删除键
|
Delete, ///<删除键
|
||||||
kbHome, ///<行首键
|
Home, ///<行首键
|
||||||
kbEnd, ///<行尾键
|
End, ///<行尾键
|
||||||
kbPageUp, ///<向前翻页键
|
PageUp, ///<向前翻页键
|
||||||
kbPageDown, ///<向后翻页键
|
PageDown, ///<向后翻页键
|
||||||
|
|
||||||
kbUp, ///<↑光标键
|
Up, ///<↑光标键
|
||||||
kbDown, ///<↓光标键
|
Down, ///<↓光标键
|
||||||
kbLeft, ///<←光标键
|
Left, ///<←光标键
|
||||||
kbRight, ///<→光标键
|
Right, ///<→光标键
|
||||||
|
|
||||||
//小键盘区
|
//小键盘区
|
||||||
kbNumLock, ///<小键盘 数字锁定键
|
NumLock, ///<小键盘 数字锁定键
|
||||||
|
|
||||||
kbNumAdd, ///<小键盘 +
|
NumAdd, ///<小键盘 +
|
||||||
kbNumSubtract, ///<小键盘 -
|
NumSubtract, ///<小键盘 -
|
||||||
kbNumMultiply, ///<小键盘 *
|
NumMultiply, ///<小键盘 *
|
||||||
kbNumDivide, ///<小键盘 /
|
NumDivide, ///<小键盘 /
|
||||||
|
|
||||||
kbNum0, ///<小键盘 0
|
Num0, ///<小键盘 0
|
||||||
kbNum1, ///<小键盘 1
|
Num1, ///<小键盘 1
|
||||||
kbNum2, ///<小键盘 2
|
Num2, ///<小键盘 2
|
||||||
kbNum3, ///<小键盘 3
|
Num3, ///<小键盘 3
|
||||||
kbNum4, ///<小键盘 4
|
Num4, ///<小键盘 4
|
||||||
kbNum5, ///<小键盘 5
|
Num5, ///<小键盘 5
|
||||||
kbNum6, ///<小键盘 6
|
Num6, ///<小键盘 6
|
||||||
kbNum7, ///<小键盘 7
|
Num7, ///<小键盘 7
|
||||||
kbNum8, ///<小键盘 8
|
Num8, ///<小键盘 8
|
||||||
kbNum9, ///<小键盘 9
|
Num9, ///<小键盘 9
|
||||||
|
|
||||||
kbNumDecimal, ///<小键盘 . (小数点/删除键)
|
NumDecimal, ///<小键盘 . (小数点/删除键)
|
||||||
kbNumEnter, ///<小键盘 回车键
|
NumEnter, ///<小键盘 回车键
|
||||||
|
|
||||||
kbEndRange,
|
ENUM_CLASS_RANGE(NONE,NumEnter)
|
||||||
kbRangeSize=kbEndRange-kbBeginRange+1
|
|
||||||
};//enum KeyboardButton
|
};//enum KeyboardButton
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 手柄按键枚举
|
* 手柄按键枚举
|
||||||
*/
|
*/
|
||||||
enum JoystickButton
|
enum class JoystickButton
|
||||||
{
|
{
|
||||||
jbBeginRange=0,
|
NONE=0,
|
||||||
|
|
||||||
jbUp,
|
Up,
|
||||||
jbDown,
|
Down,
|
||||||
jbLeft,
|
Left,
|
||||||
jbRight,
|
Right,
|
||||||
|
|
||||||
jb0, jb1, jb2, jb3, jb4, jb5, jb6, jb7,
|
_0, _1, _2, _3, _4, _5, _6, _7,
|
||||||
jb8, jb9, jb10, jb11, jb12, jb13, jb14, jb15,
|
_8, _9, _10, _11, _12, _13, _14, _15,
|
||||||
jb16, jb17, jb18, jb19, jb20, jb21, jb22, jb23,
|
_16, _17, _18, _19, _20, _21, _22, _23,
|
||||||
jb24, jb25, jb26, jb27, jb28, jb29, jb30, jb31,
|
_24, _25, _26, _27, _28, _29, _30, _31,
|
||||||
|
|
||||||
jbEnd,
|
ENUM_CLASS_RANGE(NONE,_31)
|
||||||
|
|
||||||
//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 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
|
}//namespace hgl
|
||||||
#endif//HGL_INPUT_DEVICE_INCLUDE
|
#endif//HGL_INPUT_DEVICE_INCLUDE
|
||||||
|
@ -19,7 +19,7 @@ namespace hgl
|
|||||||
bool is_close;
|
bool is_close;
|
||||||
bool is_min;
|
bool is_min;
|
||||||
|
|
||||||
bool key_push[kbRangeSize];
|
bool key_push[size_t(KeyboardButton::RANGE_SIZE)];
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -36,147 +36,147 @@ namespace hgl
|
|||||||
|
|
||||||
memset(KeyConvert,0,sizeof(KeyConvert));
|
memset(KeyConvert,0,sizeof(KeyConvert));
|
||||||
|
|
||||||
KeyConvert[VK_ESCAPE ]=kbEsc;
|
KeyConvert[VK_ESCAPE ]=KeyboardButton::Esc;
|
||||||
for(i=VK_F1;i<=VK_F12;i++)KeyConvert[i]=(KeyboardButton)(kbF1+i-VK_F1);
|
for(i=VK_F1;i<=VK_F12;i++)KeyConvert[i]=(KeyboardButton)(int(KeyboardButton::F1)+i-VK_F1);
|
||||||
|
|
||||||
KeyConvert['`' ]=kbGrave;
|
KeyConvert['`' ]=KeyboardButton::Grave;
|
||||||
for(i='0';i<='9';i++)KeyConvert[i]=(KeyboardButton)(kb0+i-'0');
|
for(i='0';i<='9';i++)KeyConvert[i]=KeyboardButton(int(KeyboardButton::_0)+i-'0');
|
||||||
KeyConvert['-' ]=kbMinus;
|
KeyConvert['-' ]=KeyboardButton::Minus;
|
||||||
KeyConvert['=' ]=kbEquals;
|
KeyConvert['=' ]=KeyboardButton::Equals;
|
||||||
KeyConvert['\\' ]=kbBackSlash;
|
KeyConvert['\\' ]=KeyboardButton::BackSlash;
|
||||||
KeyConvert[VK_BACK ]=kbBackSpace;
|
KeyConvert[VK_BACK ]=KeyboardButton::BackSpace;
|
||||||
|
|
||||||
KeyConvert[VK_TAB ]=kbTab;
|
KeyConvert[VK_TAB ]=KeyboardButton::Tab;
|
||||||
KeyConvert['Q' ]=kbQ;
|
KeyConvert['Q' ]=KeyboardButton::Q;
|
||||||
KeyConvert['W' ]=kbW;
|
KeyConvert['W' ]=KeyboardButton::W;
|
||||||
KeyConvert['E' ]=kbE;
|
KeyConvert['E' ]=KeyboardButton::E;
|
||||||
KeyConvert['R' ]=kbR;
|
KeyConvert['R' ]=KeyboardButton::R;
|
||||||
KeyConvert['T' ]=kbT;
|
KeyConvert['T' ]=KeyboardButton::T;
|
||||||
KeyConvert['Y' ]=kbY;
|
KeyConvert['Y' ]=KeyboardButton::Y;
|
||||||
KeyConvert['U' ]=kbU;
|
KeyConvert['U' ]=KeyboardButton::U;
|
||||||
KeyConvert['I' ]=kbI;
|
KeyConvert['I' ]=KeyboardButton::I;
|
||||||
KeyConvert['O' ]=kbO;
|
KeyConvert['O' ]=KeyboardButton::O;
|
||||||
KeyConvert['P' ]=kbP;
|
KeyConvert['P' ]=KeyboardButton::P;
|
||||||
KeyConvert['[' ]=kbLeftBracket;
|
KeyConvert['[' ]=KeyboardButton::LeftBracket;
|
||||||
KeyConvert[']' ]=kbRightBracket;
|
KeyConvert[']' ]=KeyboardButton::RightBracket;
|
||||||
|
|
||||||
KeyConvert[VK_CAPITAL ]=kbCapsLock;
|
KeyConvert[VK_CAPITAL ]=KeyboardButton::CapsLock;
|
||||||
KeyConvert['A' ]=kbA;
|
KeyConvert['A' ]=KeyboardButton::A;
|
||||||
KeyConvert['S' ]=kbS;
|
KeyConvert['S' ]=KeyboardButton::S;
|
||||||
KeyConvert['D' ]=kbD;
|
KeyConvert['D' ]=KeyboardButton::D;
|
||||||
KeyConvert['F' ]=kbF;
|
KeyConvert['F' ]=KeyboardButton::F;
|
||||||
KeyConvert['G' ]=kbG;
|
KeyConvert['G' ]=KeyboardButton::G;
|
||||||
KeyConvert['H' ]=kbH;
|
KeyConvert['H' ]=KeyboardButton::H;
|
||||||
KeyConvert['J' ]=kbJ;
|
KeyConvert['J' ]=KeyboardButton::J;
|
||||||
KeyConvert['K' ]=kbK;
|
KeyConvert['K' ]=KeyboardButton::K;
|
||||||
KeyConvert['L' ]=kbL;
|
KeyConvert['L' ]=KeyboardButton::L;
|
||||||
KeyConvert[';' ]=kbSemicolon;
|
KeyConvert[';' ]=KeyboardButton::Semicolon;
|
||||||
KeyConvert['\'' ]=kbApostrophe;
|
KeyConvert['\'' ]=KeyboardButton::Apostrophe;
|
||||||
KeyConvert[VK_RETURN ]=kbEnter;
|
KeyConvert[VK_RETURN ]=KeyboardButton::Enter;
|
||||||
|
|
||||||
KeyConvert[VK_LSHIFT ]=kbLeftShift;
|
KeyConvert[VK_LSHIFT ]=KeyboardButton::LeftShift;
|
||||||
KeyConvert['Z' ]=kbZ;
|
KeyConvert['Z' ]=KeyboardButton::Z;
|
||||||
KeyConvert['X' ]=kbX;
|
KeyConvert['X' ]=KeyboardButton::X;
|
||||||
KeyConvert['C' ]=kbC;
|
KeyConvert['C' ]=KeyboardButton::C;
|
||||||
KeyConvert['V' ]=kbV;
|
KeyConvert['V' ]=KeyboardButton::V;
|
||||||
KeyConvert['B' ]=kbB;
|
KeyConvert['B' ]=KeyboardButton::B;
|
||||||
KeyConvert['N' ]=kbN;
|
KeyConvert['N' ]=KeyboardButton::N;
|
||||||
KeyConvert['M' ]=kbM;
|
KeyConvert['M' ]=KeyboardButton::M;
|
||||||
KeyConvert[',' ]=kbComma;
|
KeyConvert[',' ]=KeyboardButton::Comma;
|
||||||
KeyConvert['.' ]=kbPeriod;
|
KeyConvert['.' ]=KeyboardButton::Period;
|
||||||
KeyConvert['/' ]=kbSlash;
|
KeyConvert['/' ]=KeyboardButton::Slash;
|
||||||
KeyConvert[VK_RSHIFT ]=kbRightShift;
|
KeyConvert[VK_RSHIFT ]=KeyboardButton::RightShift;
|
||||||
|
|
||||||
KeyConvert[VK_LCONTROL ]=kbLeftCtrl;
|
KeyConvert[VK_LCONTROL ]=KeyboardButton::LeftCtrl;
|
||||||
KeyConvert[VK_LWIN ]=kbLeftOS;
|
KeyConvert[VK_LWIN ]=KeyboardButton::LeftOS;
|
||||||
KeyConvert[VK_LMENU ]=kbLeftAlt;
|
KeyConvert[VK_LMENU ]=KeyboardButton::LeftAlt;
|
||||||
KeyConvert[VK_SPACE ]=kbSpace;
|
KeyConvert[VK_SPACE ]=KeyboardButton::Space;
|
||||||
KeyConvert[VK_RMENU ]=kbRightAlt;
|
KeyConvert[VK_RMENU ]=KeyboardButton::RightAlt;
|
||||||
KeyConvert[VK_RWIN ]=kbRightOS;
|
KeyConvert[VK_RWIN ]=KeyboardButton::RightOS;
|
||||||
KeyConvert[VK_RCONTROL ]=kbRightCtrl;
|
KeyConvert[VK_RCONTROL ]=KeyboardButton::RightCtrl;
|
||||||
|
|
||||||
KeyConvert[VK_PAUSE ]=kbPause;
|
KeyConvert[VK_PAUSE ]=KeyboardButton::Pause;
|
||||||
// KeyConvert[VK_CLEAR ]=kbClear;
|
// KeyConvert[VK_CLEAR ]=KeyboardButton::Clear;
|
||||||
|
|
||||||
KeyConvert[VK_NUMPAD0 ]=kbNum0;
|
KeyConvert[VK_NUMPAD0 ]=KeyboardButton::Num0;
|
||||||
KeyConvert[VK_NUMPAD1 ]=kbNum1;
|
KeyConvert[VK_NUMPAD1 ]=KeyboardButton::Num1;
|
||||||
KeyConvert[VK_NUMPAD2 ]=kbNum2;
|
KeyConvert[VK_NUMPAD2 ]=KeyboardButton::Num2;
|
||||||
KeyConvert[VK_NUMPAD3 ]=kbNum3;
|
KeyConvert[VK_NUMPAD3 ]=KeyboardButton::Num3;
|
||||||
KeyConvert[VK_NUMPAD4 ]=kbNum4;
|
KeyConvert[VK_NUMPAD4 ]=KeyboardButton::Num4;
|
||||||
KeyConvert[VK_NUMPAD5 ]=kbNum5;
|
KeyConvert[VK_NUMPAD5 ]=KeyboardButton::Num5;
|
||||||
KeyConvert[VK_NUMPAD6 ]=kbNum6;
|
KeyConvert[VK_NUMPAD6 ]=KeyboardButton::Num6;
|
||||||
KeyConvert[VK_NUMPAD7 ]=kbNum7;
|
KeyConvert[VK_NUMPAD7 ]=KeyboardButton::Num7;
|
||||||
KeyConvert[VK_NUMPAD8 ]=kbNum8;
|
KeyConvert[VK_NUMPAD8 ]=KeyboardButton::Num8;
|
||||||
KeyConvert[VK_NUMPAD9 ]=kbNum9;
|
KeyConvert[VK_NUMPAD9 ]=KeyboardButton::Num9;
|
||||||
|
|
||||||
KeyConvert[VK_DECIMAL ]=kbNumDecimal;
|
KeyConvert[VK_DECIMAL ]=KeyboardButton::NumDecimal;
|
||||||
KeyConvert[VK_DIVIDE ]=kbNumDivide;
|
KeyConvert[VK_DIVIDE ]=KeyboardButton::NumDivide;
|
||||||
KeyConvert[VK_MULTIPLY ]=kbNumMultiply;
|
KeyConvert[VK_MULTIPLY ]=KeyboardButton::NumMultiply;
|
||||||
KeyConvert[VK_SUBTRACT ]=kbNumSubtract;
|
KeyConvert[VK_SUBTRACT ]=KeyboardButton::NumSubtract;
|
||||||
KeyConvert[VK_ADD ]=kbNumAdd;
|
KeyConvert[VK_ADD ]=KeyboardButton::NumAdd;
|
||||||
|
|
||||||
KeyConvert[VK_UP ]=kbUp;
|
KeyConvert[VK_UP ]=KeyboardButton::Up;
|
||||||
KeyConvert[VK_DOWN ]=kbDown;
|
KeyConvert[VK_DOWN ]=KeyboardButton::Down;
|
||||||
KeyConvert[VK_LEFT ]=kbLeft;
|
KeyConvert[VK_LEFT ]=KeyboardButton::Left;
|
||||||
KeyConvert[VK_RIGHT ]=kbRight;
|
KeyConvert[VK_RIGHT ]=KeyboardButton::Right;
|
||||||
|
|
||||||
KeyConvert[VK_INSERT ]=kbInsert;
|
KeyConvert[VK_INSERT ]=KeyboardButton::Insert;
|
||||||
KeyConvert[VK_DELETE ]=kbDelete;
|
KeyConvert[VK_DELETE ]=KeyboardButton::Delete;
|
||||||
KeyConvert[VK_HOME ]=kbHome;
|
KeyConvert[VK_HOME ]=KeyboardButton::Home;
|
||||||
KeyConvert[VK_END ]=kbEnd;
|
KeyConvert[VK_END ]=KeyboardButton::End;
|
||||||
KeyConvert[VK_PRIOR ]=kbPageUp;
|
KeyConvert[VK_PRIOR ]=KeyboardButton::PageUp;
|
||||||
KeyConvert[VK_NEXT ]=kbPageDown;
|
KeyConvert[VK_NEXT ]=KeyboardButton::PageDown;
|
||||||
|
|
||||||
KeyConvert[VK_NUMLOCK ]=kbNumLock;
|
KeyConvert[VK_NUMLOCK ]=KeyboardButton::NumLock;
|
||||||
KeyConvert[VK_SCROLL ]=kbScrollLock;
|
KeyConvert[VK_SCROLL ]=KeyboardButton::ScrollLock;
|
||||||
|
|
||||||
//KeyConvert[VK_SHIFT ]=kbLeftShift;
|
//KeyConvert[VK_SHIFT ]=kbLeftShift;
|
||||||
//KeyConvert[VK_CONTROL ]=kbLeftCtrl;
|
//KeyConvert[VK_CONTROL ]=kbLeftCtrl;
|
||||||
//KeyConvert[VK_MENU ]=kbLeftAlt;
|
//KeyConvert[VK_MENU ]=kbLeftAlt;
|
||||||
|
|
||||||
KeyConvert[VK_OEM_1 ]=kbSemicolon;
|
KeyConvert[VK_OEM_1 ]=KeyboardButton::Semicolon;
|
||||||
KeyConvert[VK_OEM_PLUS ]=kbEquals;
|
KeyConvert[VK_OEM_PLUS ]=KeyboardButton::Equals;
|
||||||
KeyConvert[VK_OEM_COMMA ]=kbComma;
|
KeyConvert[VK_OEM_COMMA ]=KeyboardButton::Comma;
|
||||||
KeyConvert[VK_OEM_MINUS ]=kbMinus;
|
KeyConvert[VK_OEM_MINUS ]=KeyboardButton::Minus;
|
||||||
KeyConvert[VK_OEM_PERIOD]=kbPeriod;
|
KeyConvert[VK_OEM_PERIOD]=KeyboardButton::Period;
|
||||||
KeyConvert[VK_OEM_2 ]=kbSlash;
|
KeyConvert[VK_OEM_2 ]=KeyboardButton::Slash;
|
||||||
KeyConvert[VK_OEM_3 ]=kbGrave;
|
KeyConvert[VK_OEM_3 ]=KeyboardButton::Grave;
|
||||||
KeyConvert[VK_OEM_4 ]=kbLeftBracket;
|
KeyConvert[VK_OEM_4 ]=KeyboardButton::LeftBracket;
|
||||||
KeyConvert[VK_OEM_5 ]=kbBackSlash;
|
KeyConvert[VK_OEM_5 ]=KeyboardButton::BackSlash;
|
||||||
KeyConvert[VK_OEM_6 ]=kbRightBracket;
|
KeyConvert[VK_OEM_6 ]=KeyboardButton::RightBracket;
|
||||||
KeyConvert[VK_OEM_7 ]=kbApostrophe;
|
KeyConvert[VK_OEM_7 ]=KeyboardButton::Apostrophe;
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyboardButton ConvertOSKey(uint key)
|
KeyboardButton ConvertOSKey(uint key)
|
||||||
{
|
{
|
||||||
if(key>=256)return(kbBeginRange);
|
if(key>=256)return(KeyboardButton::NONE);
|
||||||
if(KeyConvert[key]==0)return(kbBeginRange);
|
if(KeyConvert[key]==KeyboardButton::NONE)return(KeyboardButton::NONE);
|
||||||
|
|
||||||
if(key==VK_SHIFT)
|
if(key==VK_SHIFT)
|
||||||
{
|
{
|
||||||
if((GetAsyncKeyState(VK_LSHIFT)>>15)&1)
|
if((GetAsyncKeyState(VK_LSHIFT)>>15)&1)
|
||||||
return kbLeftShift;
|
return KeyboardButton::LeftShift;
|
||||||
else
|
else
|
||||||
return kbRightShift;
|
return KeyboardButton::RightShift;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if(key==VK_CONTROL)
|
if(key==VK_CONTROL)
|
||||||
{
|
{
|
||||||
if((GetAsyncKeyState(VK_LCONTROL)>>15)&1)
|
if((GetAsyncKeyState(VK_LCONTROL)>>15)&1)
|
||||||
return kbLeftCtrl;
|
return KeyboardButton::LeftCtrl;
|
||||||
else
|
else
|
||||||
return kbRightCtrl;
|
return KeyboardButton::RightCtrl;
|
||||||
}
|
}
|
||||||
if(key==VK_MENU)
|
if(key==VK_MENU)
|
||||||
{
|
{
|
||||||
if((GetAsyncKeyState(VK_LMENU)>>15)&1)
|
if((GetAsyncKeyState(VK_LMENU)>>15)&1)
|
||||||
return kbLeftAlt;
|
return KeyboardButton::LeftAlt;
|
||||||
else
|
else
|
||||||
return kbRightAlt;
|
return KeyboardButton::RightAlt;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if(KeyConvert[key]==0)
|
if(KeyConvert[key]==KeyboardButton::NONE)
|
||||||
{
|
{
|
||||||
wchar_t name[64];
|
wchar_t name[64];
|
||||||
|
|
||||||
@ -226,16 +226,16 @@ namespace hgl
|
|||||||
#define WMEF2(name) void name(WinWindow *win,uint32 wParam,uint32 lParam)
|
#define WMEF2(name) void name(WinWindow *win,uint32 wParam,uint32 lParam)
|
||||||
WMEF2(WMProcMouseWheel)
|
WMEF2(WMProcMouseWheel)
|
||||||
{
|
{
|
||||||
int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
|
const int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
|
||||||
uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
|
const uint key=(uint)ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
|
||||||
|
|
||||||
win->ProcMouseWheel(zDelta,0,key);
|
win->ProcMouseWheel(zDelta,0,key);
|
||||||
}
|
}
|
||||||
|
|
||||||
WMEF2(WMProcMouseHWheel)
|
WMEF2(WMProcMouseHWheel)
|
||||||
{
|
{
|
||||||
int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
|
const int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
|
||||||
uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
|
const uint key=(uint)ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
|
||||||
|
|
||||||
win->ProcMouseWheel(0,zDelta,key);
|
win->ProcMouseWheel(0,zDelta,key);
|
||||||
}
|
}
|
||||||
|
@ -4,17 +4,17 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
void Window::ProcKeyPressed(KeyboardButton kb)
|
void Window::ProcKeyPressed(KeyboardButton kb)
|
||||||
{
|
{
|
||||||
if(key_push[kb])
|
if(key_push[size_t(kb)])
|
||||||
ProcKeyRepeat(kb);
|
ProcKeyRepeat(kb);
|
||||||
else
|
else
|
||||||
key_push[kb]=true;
|
key_push[size_t(kb)]=true;
|
||||||
|
|
||||||
SafeCallEvent(OnKeyPressed,(kb));
|
SafeCallEvent(OnKeyPressed,(kb));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::ProcKeyReleased(KeyboardButton kb)
|
void Window::ProcKeyReleased(KeyboardButton kb)
|
||||||
{
|
{
|
||||||
key_push[kb]=false;
|
key_push[size_t(kb)]=false;
|
||||||
|
|
||||||
SafeCallEvent(OnKeyReleased,(kb));
|
SafeCallEvent(OnKeyReleased,(kb));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user