diff options
-rw-r--r-- | SConstruct | 2 | ||||
-rw-r--r-- | SwifTools/Idle/PlatformIdleQuerier.cpp | 4 | ||||
-rw-r--r-- | SwifTools/Idle/WindowsIdleQuerier.cpp | 21 | ||||
-rw-r--r-- | SwifTools/Idle/WindowsIdleQuerier.h | 12 | ||||
-rw-r--r-- | SwifTools/SConscript | 2 |
5 files changed, 39 insertions, 2 deletions
@@ -89,7 +89,7 @@ if env.get("coverage", 0) : env.Append(LINKFLAGS = ["-fprofile-arcs", "-ftest-coverage"]) if env["PLATFORM"] == "win32" : - env.Append(LIBS = ["dnsapi", "ws2_32", "wsock32"]) + env.Append(LIBS = ["user32", "dnsapi", "ws2_32", "wsock32"]) env.Append(CCFLAGS = ["/EHsc", "/nologo"]) env["LINKCOM"] = [env["LINKCOM"], 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;1'] env["SHLINKCOM"] = [env["SHLINKCOM"], 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;2'] diff --git a/SwifTools/Idle/PlatformIdleQuerier.cpp b/SwifTools/Idle/PlatformIdleQuerier.cpp index 80a5da3..fb206b7 100644 --- a/SwifTools/Idle/PlatformIdleQuerier.cpp +++ b/SwifTools/Idle/PlatformIdleQuerier.cpp @@ -3,6 +3,8 @@ #if defined(SWIFTEN_PLATFORM_MACOSX) #include "SwifTools/Idle/MacOSXIdleQuerier.h" +#elif defined(SWIFTEN_PLATFORM_WINDOWS) +#include "SwifTools/Idle/WindowsIdleQuerier.h" #elif defined(HAVE_XSS) #include "SwifTools/Idle/XSSIdleQuerier.h" #else @@ -17,6 +19,8 @@ namespace Swift { PlatformIdleQuerier::PlatformIdleQuerier() : querier(NULL) { #if defined(SWIFTEN_PLATFORM_MACOSX) querier = new MacOSXIdleQuerier(); +#elif defined(SWIFTEN_PLATFORM_WINDOWS) + querier = new WindowsIdleQuerier(); #elif defined(HAVE_XSS) querier = new XSSIdleQuerier(); #else diff --git a/SwifTools/Idle/WindowsIdleQuerier.cpp b/SwifTools/Idle/WindowsIdleQuerier.cpp new file mode 100644 index 0000000..11b1e75 --- /dev/null +++ b/SwifTools/Idle/WindowsIdleQuerier.cpp @@ -0,0 +1,21 @@ +#include "SwifTools/Idle/WindowsIdleQuerier.h" + +#include <windows.h> + +namespace Swift { + +WindowsIdleQuerier::WindowsIdleQuerier() { +} + +int WindowsIdleQuerier::getIdleTimeSeconds() { + LASTINPUTINFO info; + info.cbSize = sizeof(info); + if (GetLastInputInfo(&info)) { + return (GetTickCount() - info.dwTime) / 1000; + } + else { + return 0; + } +} + +} diff --git a/SwifTools/Idle/WindowsIdleQuerier.h b/SwifTools/Idle/WindowsIdleQuerier.h new file mode 100644 index 0000000..0786cbe --- /dev/null +++ b/SwifTools/Idle/WindowsIdleQuerier.h @@ -0,0 +1,12 @@ +#pragma once + +#include "SwifTools/Idle/IdleQuerier.h" + +namespace Swift { + class WindowsIdleQuerier : public IdleQuerier { + public: + WindowsIdleQuerier(); + + virtual int getIdleTimeSeconds(); + }; +} diff --git a/SwifTools/SConscript b/SwifTools/SConscript index a92e0dc..2ae4e4e 100644 --- a/SwifTools/SConscript +++ b/SwifTools/SConscript @@ -17,7 +17,7 @@ sources = [ ] if myenv["PLATFORM"] == "win32" : - pass + sources += ["Idle/WindowsIdleQuerier.cpp"] elif myenv["PLATFORM"] == "darwin" : sources += ["Idle/MacOSXIdleQuerier.cpp"] elif myenv["HAVE_XSS"] : |