diff options
author | dec05eba <dec05eba@protonmail.com> | 2025-05-31 22:54:14 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2025-05-31 23:00:42 +0200 |
commit | 4d7526d21ed78f61eefcb88631762127fb0d4e97 (patch) | |
tree | 0d0121c5acee59813eb66b8eb7ba0b095a8060f5 /include/WindowSelector.hpp | |
parent | fded9b8d57facde1a01e9456d9fd9c3b6955dd23 (diff) |
Add x11 window capture (video and screenshot)
Diffstat (limited to 'include/WindowSelector.hpp')
-rw-r--r-- | include/WindowSelector.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/WindowSelector.hpp b/include/WindowSelector.hpp new file mode 100644 index 0000000..ab4a85d --- /dev/null +++ b/include/WindowSelector.hpp @@ -0,0 +1,33 @@ +#pragma once + +#include <X11/Xlib.h> + +#include <mglpp/graphics/Color.hpp> + +namespace gsr { + class WindowSelector { + public: + WindowSelector(); + WindowSelector(const WindowSelector&) = delete; + WindowSelector& operator=(const WindowSelector&) = delete; + ~WindowSelector(); + + bool start(mgl::Color border_color); + void stop(); + bool is_started() const; + + bool failed() const; + bool poll_events(); + bool take_selection(); + bool take_canceled(); + Window get_selection() const; + private: + Display *dpy = nullptr; + Cursor crosshair_cursor = None; + Colormap border_window_colormap = None; + Window border_window = None; + Window selected_window = None; + bool selected = false; + bool canceled = false; + }; +}
\ No newline at end of file |