summaryrefslogtreecommitdiffhomepage
path: root/opentrack/is-window-visible.hpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2016-07-21 20:06:22 +0200
committerStanislaw Halik <sthalik@misaki.pl>2016-07-23 11:05:33 +0200
commitd613381a46c281d6f96c5b6079b625e85d450ab4 (patch)
tree44258a8bc831cef3a3a16985c1e67717c26f0cc6 /opentrack/is-window-visible.hpp
parent717b39e9bfddd6799318fc1fe2b59abd33825db3 (diff)
api/is-window-visible: move from header
Diffstat (limited to 'opentrack/is-window-visible.hpp')
-rw-r--r--opentrack/is-window-visible.hpp38
1 files changed, 3 insertions, 35 deletions
diff --git a/opentrack/is-window-visible.hpp b/opentrack/is-window-visible.hpp
index fa6aeb53..18c9251a 100644
--- a/opentrack/is-window-visible.hpp
+++ b/opentrack/is-window-visible.hpp
@@ -1,39 +1,7 @@
-#ifdef _WIN32
+#pragma once
-#include <windows.h>
#include <QWidget>
-#include <QRect>
-#include <QDebug>
-#include <QPoint>
-#include <initializer_list>
+#include "export.hpp"
-template<typename=void>
-bool is_window_visible(const QWidget* widget)
-{
- const QWidget* window = widget->window();
+OPENTRACK_API_EXPORT bool is_window_visible(const QWidget* widget);
- if (!window)
- return true;
-
- const QPoint p = widget->mapToGlobal(QPoint(0, 0));
- const QSize s = widget->size();
-
- const std::initializer_list<POINT> points =
- {
- { p.x(), p.y() },
- { p.x() + s.width(), p.y() },
- { p.x() + s.width(), p.y() + s.height() },
- { p.x(), p.y() + s.height() },
- { p.x() + s.width()/2, p.y() + s.height()/2 },
- };
-
- for (const POINT& pt : points)
- if (WindowFromPoint(pt) == (HWND) widget->winId())
- return true;
- return false;
-}
-
-#else
-template<typename=void>
-bool is_window_visible(const QWidget* widget) { return true; }
-#endif