From 8d42a95604f65eeedaeba5b669bd0f4d7b88d4c5 Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Sun, 21 Nov 2021 05:32:59 +0500 Subject: [PATCH] Better organize "src/state.c" --- src/dwm.c | 2 +- src/state.c | 40 ++++++++++++++++++++++++++++++---------- src/state.h | 32 ++++++++++++++++++++++---------- 3 files changed, 53 insertions(+), 21 deletions(-) diff --git a/src/dwm.c b/src/dwm.c index 282b61c..1ea9c04 100644 --- a/src/dwm.c +++ b/src/dwm.c @@ -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); diff --git a/src/state.c b/src/state.c index 7cc3d9e..9c8faa6 100644 --- a/src/state.c +++ b/src/state.c @@ -2,6 +2,10 @@ #include +/************************** + * 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, diff --git a/src/state.h b/src/state.h index 01eb04b..0a0fd99 100644 --- a/src/state.h +++ b/src/state.h @@ -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,