polytreewm/rust-polytreewm/src/api/geom.rs

88 lines
1.8 KiB
Rust

use crate::*;
use std::os::raw::*;
#[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_sizes().width()
}
#[no_mangle]
unsafe extern "C" fn win_geom_total_height(
win_geom: *const geom::WinGeom,
) -> c_int {
(*win_geom).total_sizes().height()
}