Add common/edge.c
Some checks failed
labwc.github.io / notify (push) Has been cancelled

This commit is contained in:
tokyo4j 2025-08-21 17:57:29 +09:00 committed by Johan Malm
parent 1b575ce816
commit 48ba23fc8d
9 changed files with 105 additions and 96 deletions

View file

@ -3,7 +3,7 @@
#define LABWC_DIRECTION_H
#include <wlr/types/wlr_output_layout.h>
#include "config/types.h"
#include "common/edge.h"
bool direction_from_edge(enum lab_edge edge, enum wlr_direction *direction);
enum wlr_direction direction_get_opposite(enum wlr_direction direction);

38
include/common/edge.h Normal file
View file

@ -0,0 +1,38 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_EDGE_H
#define LABWC_EDGE_H
#include <wayland-server-core.h>
/**
* Represents an edge or direction (e.g. window tiling, window motion)
*/
enum lab_edge {
LAB_EDGE_INVALID = 0,
LAB_EDGE_LEFT = (1 << 0),
LAB_EDGE_RIGHT = (1 << 1),
LAB_EDGE_UP = (1 << 2),
LAB_EDGE_DOWN = (1 << 3),
LAB_EDGE_CENTER = (1 << 4), /* for window tiling */
LAB_EDGE_ANY = (1 << 5), /* for window rules */
/* for window tiling */
LAB_EDGE_UPLEFT = (LAB_EDGE_UP | LAB_EDGE_LEFT),
LAB_EDGE_UPRIGHT = (LAB_EDGE_UP | LAB_EDGE_RIGHT),
LAB_EDGE_DOWNLEFT = (LAB_EDGE_DOWN | LAB_EDGE_LEFT),
LAB_EDGE_DOWNRIGHT = (LAB_EDGE_DOWN | LAB_EDGE_RIGHT),
};
enum lab_edge lab_edge_parse(const char *direction, bool tiled, bool any);
/**
* lab_edge_invert() - select the opposite of a provided edge
*
* Returns LAB_EDGE_INVALID for edges other than UP/DOWN/LEFT/RIGHT.
*
* @edge: edge to be inverted
*/
enum lab_edge lab_edge_invert(enum lab_edge edge);
#endif /* LABWC_EDGE_H */