polytreewm/src/lib.rs

140 lines
3.0 KiB
Rust

mod constraints;
pub mod geom;
use std::os::raw::*;
/***************
* Constraints *
***************/
#[no_mangle]
extern "C" fn constraints_border_width(border_width: c_int) -> c_int {
constraints::border_width(border_width)
}
#[no_mangle]
extern "C" fn constraints_default_clients_in_master(
default_clients_in_master: c_int,
) -> c_int {
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)
}
#[no_mangle]
extern "C" fn constraints_snap_distance(snap_distance: c_uint) -> c_uint {
constraints::snap_distance(snap_distance)
}
/********
* Geom *
********/
#[no_mangle]
unsafe extern "C" fn position_init(position: *mut geom::Position) {
*position = Default::default();
}
#[no_mangle]
unsafe extern "C" fn sizes_init(sizes: &mut geom::Sizes) {
*sizes = Default::default();
}
#[no_mangle]
unsafe extern "C" fn basic_geom_init(basic_geom: &mut geom::BasicGeom) {
*basic_geom = Default::default();
}
#[no_mangle]
unsafe extern "C" fn win_geom_init(win_geom: &mut geom::WinGeom) {
*win_geom = Default::default();
}
#[no_mangle]
unsafe extern "C" fn position_init_from_args(
position: *mut geom::Position,
x: c_int,
y: c_int,
) {
*position = geom::Position::new(x, y);
}
#[no_mangle]
unsafe extern "C" fn sizes_init_from_args(
sizes: *mut geom::Sizes,
width: c_int,
height: c_int,
) {
*sizes = geom::Sizes::new(width, height);
}
#[no_mangle]
unsafe extern "C" fn basic_geom_init_from_args(
basic_geom: *mut geom::BasicGeom,
x: c_int,
y: c_int,
width: c_int,
height: c_int,
) {
*basic_geom = geom::BasicGeom::new(
geom::Position::new(x, y),
geom::Sizes::new(width, height),
);
}
#[no_mangle]
unsafe extern "C" fn win_geom_init_from_args(
win_geom: *mut geom::WinGeom,
x: c_int,
y: c_int,
width: c_int,
height: c_int,
border_width: c_int,
) {
*win_geom = geom::WinGeom::new(
geom::BasicGeom::new(
geom::Position::new(x, y),
geom::Sizes::new(width, height),
),
border_width,
);
}
#[no_mangle]
unsafe extern "C" fn win_geom_total_width(
win_geom: *const geom::WinGeom,
) -> c_int {
(*win_geom).total_width()
}
#[no_mangle]
unsafe extern "C" fn win_geom_total_height(
win_geom: *const geom::WinGeom,
) -> c_int {
(*win_geom).total_height()
}