Better organize "src/state.c"

This commit is contained in:
Alex Kotov 2021-11-21 05:32:59 +05:00
parent 3ca919241b
commit 8d42a95604
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
3 changed files with 53 additions and 21 deletions

View File

@ -1269,7 +1269,7 @@ void resizeclient(Client *c, const struct ClientGeometry client_geometry)
c->state.geometry = client_geometry;
XWindowChanges wc = { 0 };
client_geometry_to_x_window_changes(&client_geometry, &wc);
client_geometry_convert_to_x_window_changes(&client_geometry, &wc);
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
configure(c);

View File

@ -2,6 +2,10 @@
#include <string.h>
/**************************
* Default init functions *
**************************/
void position_init(const Position position)
{
position->x = 0;
@ -51,6 +55,10 @@ void client_state_init(const ClientState client_state)
client_state->is_fullscreen = false;
}
/***************************
* Argument init functions *
***************************/
void position_init_from_args(const Position position, const int x, const int y)
{
position->x = x;
@ -76,6 +84,25 @@ void client_geometry_init_from_args(
client_geometry->border_width = border_width;
}
/************************
* Conversion functions *
************************/
void client_geometry_convert_to_x_window_changes(
const struct ClientGeometry *const client_geometry,
XWindowChanges *const x_window_changes
) {
x_window_changes->x = client_geometry->basic.position.x;
x_window_changes->y = client_geometry->basic.position.y;
x_window_changes->width = client_geometry->basic.sizes.w;
x_window_changes->height = client_geometry->basic.sizes.h;
x_window_changes->border_width = client_geometry->border_width;
}
/**********************
* Constant functions *
**********************/
int client_geometry_total_width(
const struct ClientGeometry *const client_geometry
) {
@ -88,16 +115,9 @@ int client_geometry_total_height(
return client_geometry->basic.sizes.h + 2 * client_geometry->border_width;
}
void client_geometry_to_x_window_changes(
const struct ClientGeometry *const client_geometry,
XWindowChanges *const x_window_changes
) {
x_window_changes->x = client_geometry->basic.position.x;
x_window_changes->y = client_geometry->basic.position.y;
x_window_changes->width = client_geometry->basic.sizes.w;
x_window_changes->height = client_geometry->basic.sizes.h;
x_window_changes->border_width = client_geometry->border_width;
}
/***********************
* Modifying functions *
***********************/
void client_geometry_adjust_to_boundary(
const ClientGeometry client_geometry,

View File

@ -48,9 +48,9 @@ struct ClientState {
bool is_fixed, is_floating, is_urgent, never_focus, is_fullscreen;
};
/******************
* Init functions *
******************/
/**************************
* Default init functions *
**************************/
void position_init(Position position);
void sizes_init(Sizes sizes);
@ -59,6 +59,10 @@ void client_geometry_init(ClientGeometry client_geometry);
void client_size_hints_init(ClientSizeHints client_size_hints);
void client_state_init(ClientState client_state);
/***************************
* Argument init functions *
***************************/
void position_init_from_args(Position position, int x, int y);
void sizes_init_from_args(Sizes sizes, int width, int height);
@ -71,17 +75,25 @@ void client_geometry_init_from_args(
int border_width
);
/*************
* Functions *
*************/
/************************
* Conversion functions *
************************/
void client_geometry_convert_to_x_window_changes(
const struct ClientGeometry *client_geometry,
XWindowChanges *x_window_changes
);
/**********************
* Constant functions *
**********************/
int client_geometry_total_width(const struct ClientGeometry *client_geometry);
int client_geometry_total_height(const struct ClientGeometry *client_geometry);
void client_geometry_to_x_window_changes(
const struct ClientGeometry *client_geometry,
XWindowChanges *x_window_changes
);
/***********************
* Modifying functions *
***********************/
void client_geometry_adjust_to_boundary(
ClientGeometry client_geometry,