namespace Msp {
namespace Input {
+bool Touchscreen::is_available()
+{
+ // Must have at least Windows 7 (WinNT 6.1) for WM_TOUCH
+ OSVERSIONINFOEX version;
+ version.dwOSVersionInfoSize = sizeof(version);
+ version.dwMajorVersion = 6;
+ version.dwMinorVersion = 1;
+ version.wServicePackMajor = 0;
+ version.wServicePackMinor = 0;
+ DWORD mask = VER_MAJORVERSION|VER_MINORVERSION|VER_SERVICEPACKMAJOR|VER_SERVICEPACKMINOR;
+ DWORDLONG cond = VerSetConditionMask(0, mask, VER_GREATER_EQUAL);
+ if(VerifyVersionInfo(&version, mask, cond))
+ return false;
+
+ if(!GetSystemMetrics(SM_TABLETPC))
+ return false;
+ if(!(GetSystemMetrics(SM_DIGITIZER)&NID_READY))
+ return false;
+
+ return true;
+}
+
void Touchscreen::input_event(const Graphics::Window::Event &event)
{
- if(event.msg==WM_TOUCHMOVE)
+ if(event.msg==WM_TOUCH)
{
HTOUCHINPUT handle = reinterpret_cast<HTOUCHINPUT>(event.lparam);
unsigned n_points = LOWORD(event.wparam);
}
}
-
-
} // namespace Input
} // namespace Msp