140 lines
3.0 KiB
Rust
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()
|
|
}
|