wlroots-hyprland/include/wlr/types/wlr_output_layout.h

50 lines
1.5 KiB
C
Raw Normal View History

#ifndef _WLR_TYPES_OUTPUT_LAYOUT_H
#define _WLR_TYPES_OUTPUT_LAYOUT_H
#include <wlr/types/wlr_output.h>
#include <wayland-util.h>
#include <stdbool.h>
struct wlr_output_layout {
struct wl_list outputs;
};
struct wlr_output_layout_output {
struct wlr_output *output;
int x, y;
struct wl_list link;
};
struct wlr_output_layout *wlr_output_layout_init();
void wlr_output_layout_destroy(struct wlr_output_layout *layout);
struct wlr_output_layout_output *wlr_output_layout_get(
struct wlr_output_layout *layout, struct wlr_output *reference);
struct wlr_output *wlr_output_layout_output_at(struct wlr_output_layout *layout,
2017-08-18 03:04:05 +02:00
double x, double y);
void wlr_output_layout_add(struct wlr_output_layout *layout,
2017-08-18 03:04:05 +02:00
struct wlr_output *output, int x, int y);
void wlr_output_layout_move(struct wlr_output_layout *layout,
2017-08-18 03:04:05 +02:00
struct wlr_output *output, int x, int y);
void wlr_output_layout_remove(struct wlr_output_layout *layout,
2017-08-18 03:04:05 +02:00
struct wlr_output *output);
/**
* Given x and y as pointers to global coordinates, adjusts them to local output
* coordinates relative to the given reference output.
*/
void wlr_output_layout_output_coords(struct wlr_output_layout *layout,
2017-08-18 03:04:05 +02:00
struct wlr_output *reference, int *x, int *y);
2017-08-17 16:12:36 +02:00
bool wlr_output_layout_contains_point(struct wlr_output_layout *layout,
2017-08-18 03:04:05 +02:00
struct wlr_output *reference, int x, int y);
2017-08-17 16:12:36 +02:00
bool wlr_output_layout_intersects(struct wlr_output_layout *layout,
2017-08-18 03:04:05 +02:00
struct wlr_output *reference, int x1, int y1, int x2, int y2);
2017-08-17 16:12:36 +02:00
#endif