aboutsummaryrefslogtreecommitdiff
path: root/include/WindowUtils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/WindowUtils.hpp')
-rw-r--r--include/WindowUtils.hpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/WindowUtils.hpp b/include/WindowUtils.hpp
new file mode 100644
index 0000000..99b45e9
--- /dev/null
+++ b/include/WindowUtils.hpp
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <mglpp/system/vec.hpp>
+#include <string>
+#include <vector>
+#include <optional>
+#include <X11/Xlib.h>
+
+namespace gsr {
+ enum class WindowCaptureType {
+ FOCUSED,
+ CURSOR
+ };
+
+ struct Monitor {
+ mgl::vec2i position;
+ mgl::vec2i size;
+ };
+
+ std::optional<std::string> get_window_title(Display *dpy, Window window);
+ Window get_focused_window(Display *dpy, WindowCaptureType cap_type);
+ std::string get_focused_window_name(Display *dpy, WindowCaptureType window_capture_type);
+ std::string get_window_name_at_position(Display *dpy, mgl::vec2i position, Window ignore_window);
+ std::string get_window_name_at_cursor_position(Display *dpy, Window ignore_window);
+ mgl::vec2i get_cursor_position(Display *dpy, Window *window);
+ mgl::vec2i create_window_get_center_position(Display *display);
+ std::string get_window_manager_name(Display *display);
+ bool is_compositor_running(Display *dpy, int screen);
+ std::vector<Monitor> get_monitors(Display *dpy);
+} \ No newline at end of file