diff --git a/Makefile b/Makefile index c7a604c..5ce972a 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,6 @@ CONFIGMKS = \ MODULES_SRC = \ src/atoms.c \ - src/constraints.c \ src/drw.c \ src/dwm.c \ src/geom.c \ @@ -43,7 +42,7 @@ TEST_SRC = \ MAIN_SRC = $(MODULES_SRC) src/main.c -MODULES_HDR = $(MODULES_SRC:.c=.h) +MODULES_HDR = $(MODULES_SRC:.c=.h) src/constraints.h DWM_HDR = $(DWM_SRC:.c=.h) MAIN_HDR = $(MODULES_HDR) src/main.h diff --git a/src/constraints.c b/src/constraints.c deleted file mode 100644 index bfcd615..0000000 --- a/src/constraints.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "constraints.h" - -#define MIN_MASTER_AREA_FACTOR 0.05 -#define MAX_MASTER_AREA_FACTOR 0.95 - -float constraints_default_master_area_factor(const float default_master_area_factor) -{ - return constraints_master_area_factor(default_master_area_factor); -} - -float constraints_master_area_factor(const float master_area_factor) -{ - if (master_area_factor < MIN_MASTER_AREA_FACTOR) return MIN_MASTER_AREA_FACTOR; - if (master_area_factor > MAX_MASTER_AREA_FACTOR) return MAX_MASTER_AREA_FACTOR; - return master_area_factor; -} diff --git a/src/constraints.rs b/src/constraints.rs index c8602ef..2debba9 100644 --- a/src/constraints.rs +++ b/src/constraints.rs @@ -6,6 +6,8 @@ const MIN_DEFAULT_CLIENTS_IN_MASTER: c_int = 1; const MAX_DEFAULT_CLIENTS_IN_MASTER: c_int = 10000; const MIN_GAP_SIZE: c_int = 0; const MAX_GAP_SIZE: c_int = 10000; +const MIN_MASTER_AREA_FACTOR: c_float = 0.05; +const MAX_MASTER_AREA_FACTOR: c_float = 0.95; const MIN_MAX_CLIENTS_IN_MASTER: c_int = 1; const MAX_MAX_CLIENTS_IN_MASTER: c_int = 10000; const MIN_SNAP_DISTANCE: c_uint = 1; @@ -27,12 +29,22 @@ pub fn default_clients_in_master(default_clients_in_master: c_int) -> c_int { default_clients_in_master } +pub fn default_master_area_factor(default_master_area_factor: c_float) -> c_float { + master_area_factor(default_master_area_factor) +} + pub fn gap_size(gap_size: c_int) -> c_int { if gap_size < MIN_GAP_SIZE { return MIN_GAP_SIZE } if gap_size > MAX_GAP_SIZE { return MAX_GAP_SIZE } gap_size } +pub fn master_area_factor(master_area_factor: c_float) -> c_float { + if master_area_factor < MIN_MASTER_AREA_FACTOR { return MIN_MASTER_AREA_FACTOR } + if master_area_factor > MAX_MASTER_AREA_FACTOR { return MAX_MASTER_AREA_FACTOR } + master_area_factor +} + pub fn max_clients_in_master(max_clients_in_master: c_int) -> c_int { if max_clients_in_master < MIN_MAX_CLIENTS_IN_MASTER { return MIN_MAX_CLIENTS_IN_MASTER diff --git a/src/lib.rs b/src/lib.rs index 58546ca..2d23a73 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,11 +12,21 @@ extern "C" fn constraints_default_clients_in_master(default_clients_in_master: c constraints::default_clients_in_master(default_clients_in_master) } +#[no_mangle] +extern "C" fn constraints_default_master_area_factor(default_master_area_factor: c_float) -> c_float { + constraints::default_master_area_factor(default_master_area_factor) +} + #[no_mangle] extern "C" fn constraints_gap_size(gap_size: c_int) -> c_int { constraints::gap_size(gap_size) } +#[no_mangle] +extern "C" fn constraints_master_area_factor(master_area_factor: c_float) -> c_float { + constraints::master_area_factor(master_area_factor) +} + #[no_mangle] extern "C" fn constraints_max_clients_in_master(max_clients_in_master: c_int) -> c_int { constraints::max_clients_in_master(max_clients_in_master)