use crate::docx::props::Border;
use super::env::TextEnv;
#[derive(Clone, Debug, Default, PartialEq)]
pub struct ShapeSpace {
pub fields: Vec<Option<String>>,
pub notes: Vec<String>,
pub balance: bool,
pub compress: bool,
}
pub type BorderKey = Option<std::rc::Rc<[Option<Border>; 5]>>;
#[derive(Clone, Debug, PartialEq)]
pub struct ParaSpace {
pub width: f64,
pub start: usize,
pub borders: (BorderKey, BorderKey),
pub x0: f64,
pub env: TextEnv,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct ColumnSpace {
pub x: f64,
pub width: f64,
pub top: f64,
pub bottom: f64,
pub balance: bool,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct BodyArea {
pub left: f64,
pub width: f64,
pub top: f64,
pub bottom: f64,
}
#[derive(Clone, Debug, PartialEq)]
pub struct BodySpace {
pub section: usize,
pub page_w: f64,
pub page_h: f64,
pub margins: (f64, f64, f64),
pub area: BodyArea,
pub columns: Vec<ColumnSpace>,
pub mid_page: bool,
pub balance: bool,
pub next_continuous: bool,
pub hf: HfHeights,
}
pub type HfHeights = [Option<f64>; 2];
pub type BodyFields = super::text::FieldValues;