Introduce direction / orientation / position conversion functions

This commit is contained in:
Orestis Floros 2018-09-14 20:18:04 +03:00 committed by Orestis Floros
parent e5c430e419
commit 1e8e4d3e7f
No known key found for this signature in database
GPG Key ID: A09DBD7D3222C1C3
4 changed files with 34 additions and 3 deletions

View File

@ -59,6 +59,8 @@ typedef enum { D_LEFT,
typedef enum { NO_ORIENTATION = 0,
HORIZ,
VERT } orientation_t;
typedef enum { BEFORE,
AFTER } position_t;
typedef enum { BS_NORMAL = 0,
BS_NONE = 1,
BS_PIXEL = 2 } border_style_t;

View File

@ -17,9 +17,6 @@
*/
void tree_move(Con *con, direction_t direction);
typedef enum { BEFORE,
AFTER } position_t;
/**
* This function detaches 'con' from its parent and inserts it either before or
* after 'target'.

View File

@ -181,3 +181,15 @@ ssize_t slurp(const char *path, char **buf);
*
*/
orientation_t orientation_from_direction(direction_t direction);
/**
* Convert a direction to its corresponding position.
*
*/
position_t position_from_direction(direction_t direction);
/**
* Convert orientation and position to the corresponding direction.
*
*/
direction_t direction_from_orientation_position(orientation_t orientation, position_t position);

View File

@ -518,3 +518,23 @@ ssize_t slurp(const char *path, char **buf) {
orientation_t orientation_from_direction(direction_t direction) {
return (direction == D_LEFT || direction == D_RIGHT) ? HORIZ : VERT;
}
/*
* Convert a direction to its corresponding position.
*
*/
position_t position_from_direction(direction_t direction) {
return (direction == D_LEFT || direction == D_UP) ? BEFORE : AFTER;
}
/*
* Convert orientation and position to the corresponding direction.
*
*/
direction_t direction_from_orientation_position(orientation_t orientation, position_t position) {
if (orientation == HORIZ) {
return position == BEFORE ? D_LEFT : D_RIGHT;
} else {
return position == BEFORE ? D_UP : D_DOWN;
}
}