diff options
| author | srdusr <[email protected]> | 2024-03-25 20:09:00 +0200 |
|---|---|---|
| committer | srdusr <[email protected]> | 2024-03-25 20:09:00 +0200 |
| commit | 0ea49730db789f60349d49187fee2896a947646d (patch) | |
| tree | ff1309a93bfc9f7a0440aff4dfcee088d1009433 /src/layouts/layout.h | |
| parent | 1e1dc93c21a0ba994830bc463c3af1d3ac169fbb (diff) | |
| download | srdwm-0ea49730db789f60349d49187fee2896a947646d.tar.gz srdwm-0ea49730db789f60349d49187fee2896a947646d.zip | |
Initial Commit
Diffstat (limited to 'src/layouts/layout.h')
| -rw-r--r-- | src/layouts/layout.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/layouts/layout.h b/src/layouts/layout.h new file mode 100644 index 0000000..00c002f --- /dev/null +++ b/src/layouts/layout.h @@ -0,0 +1,33 @@ +#ifndef SRDWM_LAYOUT_H +#define SRDWM_LAYOUT_H + +#include <vector> +#include "../core/window.h" + +struct Monitor { + int id; + int x; + int y; + int width; + int height; + std::string name; + int refresh_rate; + + Monitor() : id(0), x(0), y(0), width(0), height(0), refresh_rate(60) {} + Monitor(int id, int x, int y, int width, int height, const std::string& name = "", int refresh = 60) + : id(id), x(x), y(y), width(width), height(height), name(name), refresh_rate(refresh) {} +}; + +class Layout { +public: + virtual ~Layout() = default; + + // Pure virtual method to arrange windows on a given monitor + virtual void arrange_windows(const std::vector<SRDWindow*>& windows, const Monitor& monitor) = 0; + + // You might add other common layout methods here later, e.g.: + // virtual void add_window(SRDWindow* window) = 0; + // virtual void remove_window(SRDWindow* window) = 0; +}; + +#endif // SRDWM_LAYOUT_H |