use crate::core::units::Twip;
use super::document::BlockElement;
#[derive(Debug, Clone, Default)]
pub struct SectionProperties {
pub page_size: Option<PageSize>,
pub margins: Option<PageMargins>,
pub header_refs: Vec<HeaderFooterRef>,
pub footer_refs: Vec<HeaderFooterRef>,
pub columns: Option<u32>,
}
#[derive(Debug, Clone)]
pub struct PageSize {
pub width: Twip,
pub height: Twip,
pub orient: Option<PageOrientation>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PageOrientation {
Portrait,
Landscape,
}
#[derive(Debug, Clone)]
pub struct PageMargins {
pub top: Twip,
pub bottom: Twip,
pub left: Twip,
pub right: Twip,
pub header: Option<Twip>,
pub footer: Option<Twip>,
pub gutter: Option<Twip>,
}
#[derive(Debug, Clone)]
pub struct HeaderFooterRef {
pub hf_type: HeaderFooterType,
pub relationship_id: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum HeaderFooterType {
Default,
First,
Even,
}
#[derive(Debug, Clone)]
pub struct HeaderFooter {
pub hf_type: HeaderFooterType,
pub content: Vec<BlockElement>,
}