X-Git-Url: http://git.tdb.fi/?p=libs%2Fgui.git;a=blobdiff_plain;f=source%2Finput%2Fwindows%2Ftouchscreen.cpp;h=7e314ca98d39f99ab4eb2cdbc5d1942292ae7d08;hp=180f1c04f568816bb9fc8de1ce7ed383c156173e;hb=49e19af2c599e7316b5a01983adc040421429f86;hpb=917222bae696465f99024e0e15f73ba1058add44 diff --git a/source/input/windows/touchscreen.cpp b/source/input/windows/touchscreen.cpp index 180f1c0..7e314ca 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.dwServicePackMajor = 0; + version.dwServicePackMinor = 0; + DWORD mask = VER_MAJORVERSION|VER_MINORVERSION|VER_SERVICEPACKMAJOR|VER_SERVICEPACKMINOR; + DWORDLONG cond = VerSetConditionMask(0, mask, VER_GREATER_EQUAL); + if(!VerifyVersionInfo(&version, type, 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)