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 #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

View File

@ -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:

View File

@ -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);
} }

View File

@ -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));
} }