X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Finput%2Fwindows%2Ftouchscreen.cpp;h=d6e76e023c44174fa89eecb730130c64adf13fa6;hb=2310eed6d8a73af7dd380eefb3ee7a30d277909a;hp=180f1c04f568816bb9fc8de1ce7ed383c156173e;hpb=1d7113259625a91f5f6d2f53365aad22ae744689;p=libs%2Fgui.git diff --git a/source/input/windows/touchscreen.cpp b/source/input/windows/touchscreen.cpp index 180f1c0..d6e76e0 100644 --- a/source/input/windows/touchscreen.cpp +++ b/source/input/windows/touchscreen.cpp @@ -8,6 +8,28 @@ using namespace std; namespace Msp { namespace Input { +bool Touchscreen::is_available() +{ + // Must have at least Windows 7 (WinNT 6.1) for WM_TOUCHMOVE + 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)